一个好的散列函数的两个相关属性是:
很难从哈希值反演出原始数据
如果输入数据稍有变化, 哈希值将以不可预知的方式变化
哈希是区块链安全性和不变性的基础. 你可以在这里使用他们....由于每个块都包含前一个块的散列值作为其数据的一部分, 因此会形成一个块链.
使用引用先前的块的块创建分类交易账是比在书账中进行页面编号更好的主意....在一本用1,2,3等数字编号的书账中, 很容易撕掉第40页并用另一个交易略有不同的第40页替换它. 该书的完整性保持不变, 第39,40,41页依旧是第39,40,41页 - 没有变化....所以它看起来更像是:
散列值为66a045b45的块( 使用散列值a2c064616构建块 ), 随后是
散列值为8939a3c35的块( 使用散列值66a045b45构建块 ), 随后是
散列值为a41f02e92...在比特币中, 只有块散列遵循某个严格的模式, 块才被认为是有效的 - 即散列值必须小于目标数, 通常被描述为“从一定数量的零开始”. 有关比特币挖矿的更多细节, 请参阅比特币挖矿简介.