区块链入门——解读
在论文中,把负责创建新区块的节点称为“时间戳服务器”,这个“时间戳服务器”并不是一个中心服务器,比特币中任何节点都可以成为“时间戳服务器”。不过,并不是每一个节点都愿意成为“时间戳服务器”,毕竟谁愿意干苦力活呢?这个问题后文再进行解答。
此处还有一个关键点,为什么区块要包含上一个区块的哈希值呢 ?假设有个恶意节点打算篡改区块链上某个区块的交易数据,区块数据就会发生变化,区块的哈希值也会改变。因此,恶意节点需要重新计算区块哈希值,并修改下一个区块中的prev_block_hash(上一个区块的哈希值)。而这又导致下一个区块的数据及其哈希值发生改变,又要修改下下个区块中的prev_block_hash,一直要修改到区块链的最后一个区块。而后文我们会提到,每一次修改区块数据、重新计算区块哈希值,都将付出昂贵的代价。因此,恶意节点篡改数据的成本将非常高,甚至可能高于他篡改数据所获得的收益。
有了这个区块链雏形,就能保证交易的先后顺鱼池挖矿序,防止双重支付。但是,新的问题又出现了:由于网络存在延迟,新交易被公布之后,每个节点接收到的时间都不同。同一笔交易,在不同节点中,可能在不同的区块里。而新区块被发布之后,也可能在不同时间到达不同节点。如此,每个节点的区块链都可能不相同,交易序列则会出现混乱,那大家怎么对一条正确的区块链达成共识呢?
1.4. 工作量证明
中心化系统相当于权力集中制,中心者负责系统中的决策,中心者所保存的交易序列肯定是被大家都认可的,所有交易也必须通过中心者的检验与确定。至于比特币这样的P2P(点对点)模式,则是民主制,需要大家共同决策并达成一致,而规定如何决策并达成一致的被称为共识算法 。
最简单的共识算法就是一人一票的投票机制,票数最少的服从票数多的。但这个机制会出现恶意者收买大多数,从而获胜的情况。尤其在网络世界中,还可能出现“女巫攻击”——同时伪造多个节点参与投票从而获胜。因此这种简单的共识算法在网络中肯定是不可行的。
在比特币中,中本聪提出了一种出色的共识算法——工作量证明(PoW, proof-of-work) 。工作量证明通过计算机算力进行投票,拥有最大计算工作量的一方获胜,换句话说:谁干的活多就听谁的 (“谁”指一群人)。那怎么证明谁干的活多呢?谁的区块链最长谁干的活就最多,而在比特币系统中,最长的链就代表大多数所认同的。但根据“时间戳服务器”中所提到的,区块创建后只要计算哈希值,整个过程并不需要高时间复杂度的计算,那只要用高算力的机器一会就能超过系统中的最长链。
因此,为了增加区块创建的难度,中本聪向每个区块中添加了一个随机数字段(nonce) ,并规定:每次创建区块,计算区块哈希值时,都要找到一个随机数,使得整个区块的哈希值小于某个数 (哈希值前有n个0),如此区块才能满足要求、被大家认可。由于哈希函数不可逆,无法从输出高效地推导出输入,只能通过尝试每一个输入,直到输出满足要求,也就是遍历随机数的值,而这个随机数有32字节(256位,10的77次方)。整个过程不仅靠算力,也靠一定的运气,因此这个过程又被称为挖矿 ,至于挖到什么,将在后文介绍。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。

路安



