挑战三:确定交易记录的可靠性和权威性 假设真有人篡改了每个区块中的信息,创建了一条新链,我们应该选择相信新链还是旧链呢?如何才能确定两者的可靠性和权威性呢? 工作量证明(Proof of Work) 这就要用到工作量证明。电脑会将前面讲过的哈希值转换成一串由“0”和“1”构成的数字: 0010111011110100000001000001101010010010001011101111100001001010 我们可以规定只有哈希值以0开头的区块才能上链,这样就有50%的概率得到一个符合要求的区块。 0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 同理,我们若规定只有哈希值以“00”开头的区块才能上链,概率就是25%。 00XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 如规定哈希值必须以32个“0”开头的区块才能上链,那概率大概就只有40亿分之一了。 00000000000000000000000000000000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 比特币区块链也设置了这样的规定。但是链上每个区块的哈希值都是恒定不变的,如何确保在输入固定信息的情况下能得到一个符合规定的哈希值呢?这就需要在每个区块中随机加入任意一个数值,也称为“随机数”(nonce)。 进行哈希运算的时候要将随机数与区块中的数据相结合。比特币区块链中遍布全世界的计算机要从大量的随机数中找到那个与现有区块结合后能算出以特定数量“0”开头的哈希值的随机数,才能让这个区块上链。这个寻找随机数的过程就是工作量证明。 这个过程会消耗大量算力,完成时间也难以估量。在比特币区块链中,平均10分钟会产生一个新区块。但由于该区块链中的整体算力水平一直在不断提高,为了增加找到随机数的难度,比特币区块链也在不断增加规定哈希值开头部分 “0”的个数。 最长链原则 工作量证明这一规则有效限制了新区块产生的速率,那区块数量越多、长度越长的链存在的时间也就越久。因此,个人是不可能制造比官方比特币区块链更长的链的,除非这个人拥有的算力超过该系统中其他所有人算力的总和。 基于以上原因,当系统中出现多条链时,比特币用户只认可区块数量最多,存在时间最长的这条链,并相信这条链上的信息是权威可靠的。 区块链潜在的应用场景 除了比特币,区块链还有哪些应用前景? 我们在上文中从3方面简要解释了比特币区块链的工作原理: · 用数字签名确权比特币 · 用哈希验证链上交易的真实完整性 · 用工作量证明避免虚假区块上链 由此可见,比特币就是一个人人都可以信任的去中心化账本。但是这个账本除了记录货币交易信息之外,还可以记录其他多种信息,让其他机构也能实现去中心化的信息分享。目前已在以下领域获得应用。 (责任编辑:admin1) |