区块链技术与应用实验报告(实验三)
关于作者
作者介绍
🍊 博客主页:作者主页
🍊 简介:云计算领域优质创作者🏆、学长IT 公众号创作者🎓、在校期间参与众多计算机相关的省赛、国赛,斩获系列荣誉。考取华为资深工程师、红帽工程师等系列认证。
🍊 关注我:简历模板、学习资料、文档下载、技术支持 都可以私信我哦!
让生命像一团热烈燃烧的火,直到死亡才能使它熄灭
一、实验目的
- 实验目的
# 熟悉区块链浏览器的基本功能 # 掌握使用区块链浏览器进行基本查询操作的方法
二、实验原理简介
- 实验简介
# 区块链浏览器可以向外界提供区块链上的关键信息,包括但不限于:链状态、区块状态、 交易状态、合约状态、账户状态,区块链浏览器还可能额外提供对于测试网络的支持(方便开发者进行测试应用的调试)、数据可视化服务(方便用户对区块链状态进行宏观认识)、钱包服务(方便用户管理数字资产)和开放 API(方便用户精确、批量地获取数据)。 #一些主流且稳定的区块链浏览器包括:Blockstream、Blockchain、BTC、Blockcypher、Etherchain。 Blockstream: https:/blockstream.info Blockchain: https://blockchain.com BTC: https://btc.com Blockcypher: https://live.blockcypher.com Etherchain: https://www.etherchain.org
三、实验环境
- 实验环境
# 实验环境 本实验在 PC机上即可进行,操作系统不限。 # 这里使用 windows 平台做演示 windows 10 专业版
四、实验步骤
1.链状态
- 每条链的链状态以其链名作为唯一标识。例如,通过 blockchain.com进行查询,其区块链浏览器的显示
- 可以访问 Bitcoin、Ethereum、Bitcoin Cash三条链的状态,其主要特征包括:链的最新区块、最新确认交易池、平均交易费用、平均交易价值、实时挖矿难度、全网节点总算力、待确认交易池、代币价值、每日交易频率及积压的交易总数目。由此我们可以初步判断这条链的价值、效率、安全性及交易的活跃度。
2.区块状态
区块状态以区块地址和区块高度作为标识。例如,通过blockstream.info进行查询,以区块
- 000000000000000000136cf467d4d9ae8af79441d049d06b3e2ea03a83126ed1为例,结果如图
- 其主要特征包括:状态(有无分叉,确认深度),时间戳(并非一个精确的值,仅仅具有参考意义),实际数据大小,可见大小(一般为Bitcoin规定的 1 MB,节约的数据量由账本层隔离见证机制的施行带来,在 3.2 节着重解析),由隔离见证带来的额外数据(以 KWU 为单位,采用独特的换算标准),矿工节点版本号,区块的默克尔根,以及生成有效 PoW 所需的有效填充数 nonce。区块详情中包含了该区块容纳的所有交易信息,其中第一个交易固定为Coinbase类型,作用是将挖矿奖励支付给矿工指定的地址。
3.交易状态
- 每个交易的交易状态以交易地址作为唯一标识。例如,通过 blockstream.info 进行查询,
- 搜寻任何一个交易:
e75cc9e67a64d3974210da8480d3d80c0b5fb1a966b6451dd847754d4e82a5e1
- 其主要特征包括:确认状态、所在的区块信息(地址、高度、时间戳)、所付出的交易费用、交易的大小、节点版本号、锁定时间(用于定义该交易最早可入块的时间)、费用节约情况(如果激活隔离见证,则能够节省的费用)以及隐私情况(是否重用地址等)。进一步,通过单击交易的详情,我们可以观察交易的构造及其每个输入的赎回脚本 ScriptSig,以及每个输出的锁定脚本 ScriptPubkey和输出的花费情况。
4.账户状态
- 每个用户账户由其地址唯一标识。例如,通过 blockstream.info 进行查询,单击任意一个输入或输出中包含的地址字段,可以检索该地址相关的所有交易历史和地址的余额。例如,以地址3NKtXY8ZpZe5XbE4YrjZogkid8hSBkDACw 为例如图:
- 注意:对于比特币的账本交易,不建议通过地址重用的形式来管理账户,因为这样容易因为交易历史而暴露隐私。另外,由于地址上存储的资产在花销后,其对应的公钥也会随之泄露,一旦进入后量子密码时代,旧公钥密码算法的失效会直接导致用户的资产流失。目前建议的账户安全管理方法是:钱包记录并衍生一系列的用户地址,每个地址仅使用一次,钱包采用过滤器监听所有相关地址的交易并整理用户资产,避免上述问题的出现。
以上状态皆可通过区块链浏览器的搜索栏,输入相应的标识进行查询,这也是区块链浏览器提供的最基本的功能。
练习题
- 请在区块链浏览器中查询区块
000000000000000003dd2fdbb484d6d9c349d644d8bbb3cbfa5e67f639a465fe
- 观察浏览器对于比特币挖矿难度变化的可视化实时结果,如 https://btc.com/stats/diff;尝试回答:难度调整的间隔,难度变化的趋势和其带来的影响,以及推测平均算力的计算方法。
总结
本次实验不难,需要掌握使用浏览器查询即可,熟悉区块链浏览器的基本功能