链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
“区块链”应有特质:
· 使用了具有 “哈希链” (下文有解释) 形式的数据结构保存基础数据
· 有多个结点参与系统运行(分布式)
· 通过一定的协议或算法对于基础数据的一致性达成共识(共识协议/算法)。
介于比特币目前是区块链最典型且最有影响力的应用之一, 理解比特币如何使用区块链后, 再去理解其他形式各样的区块链应用就会容易很多。在谈应用之前,最重要的是先理解它的技术本质是什么, 所有介绍区块链的答案里, 都最先提到了区块链不可篡改的特性, 所以第一个要理解的是它到底是怎么实现不可篡改性的。
· 前置知识;
o 密码学Hash()函数的单向性: Hash(x) =y , 通过y很难找到x
o 哈希链: 假如现在有顺序产生的数据块 A, B , C 。 那么我们可以这样计算一个hash 。 注意 “||” 表示拼接
h0= Hash(A)
h1 = Hash(B || h0)
h2 = Hash(C || h1)
· h2是我们计算的hash头部,现在来看, 为什么我们管这个东西叫Hash链, 因为h2 的值依赖于之前一系列数据的内容和计算顺序。 假如说现在你知道了h2 , 别人拿着A,B, C&#