
矿工创建的临时区块,可添加到区块链中接受区块奖励。从科技层面来看,区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题。从应用视角来看,简单来说,区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。而区块链丰富的应用场景,基本上都基于区块链能够解决信息不对称问题,实现多个主体之间的协作信任与一致行动。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
共识机制是区块链的灵魂。就像一个国家的法律,维系着区块链世界的正常运作。区块链最早的共识是工作量证明(POW),比特币和以太坊都是采用的工作量证明。现在流行的一个趋势是权益证明(POS)。以太坊2.0就会采用 POS 共识,还有最新的公链如 Tezos,Polkadot,Algorand 等等。权益证明还包括委托权益证明(DPOS),代表公链有EOS。大多其他公链采用的共识都是从 POW 或者 POS 中衍生出来。
区块链共识的目的是决定出块权。工作量证明的基本思想就是用算力来决定出块权。如果你能第一个解出 POW 的计算难题,你就可以出块。在每一个时间点,大家都在算题,然后在差不多的时间里,大家把题算出来,再把计算结果发布出去。这其实就是一个投票的过程。发布的块就是投的票。最后被选中的票,就是来自于那个最快算出结果的矿机。至于没有发布块的节点,相当于弃权了。工作量证明的一个最大优点,就是所投的票和投票权是绑定的。而且一旦投票成功以后,即使是投票者本人也修改不了投票的内容。因为一般在出块前,节点就已经打包好一个块,然后才对这个块做工作量证明,做完后马上投出去。这个时候打包的块已经没有办法修改了。
矿机跑一天可以投出很多票,但是不可以把所有的算力集中到一个块上;另一方面,如果想要回滚掉自己出的块,也必须付出和回滚别人的块时所需的同等的算力。这是不可能的,所以 POW 共识是非常安全的。
基于POW机制去做共识算法的最主要缺点就是延迟比较高,因为我们把交易打包到区块以后,还要完成一个工作量证明,这个区块才能称为候选区块。工作量证明的时间还不能设得特别短,否则容易分叉。于是,至少从打包好区块到做完区块的工作量证明这一段时间内,交易是能被确认的。
权益证明基本的思想是:把持有的币做质押,来获取记账权和投票权。投票权和持币的数量是成正比的,一币一票。钱越多,投票的权力就越大。
跟 POW 不知道有多少矿机参与挖矿不同,POS 协议必须知道所有共识参与者的数量和它们的持币量,然后去分配打包权和投票权。另外在 POW 里面,打包权和投票权是一起的,但是在 POS 里,这两者是可以分开的。分配完打包权以后,拿到打包权的人就有资格出一个候选区块。这个区块里面包含要处理的交易,并且有他自己的签名。候选区块并不意味着就会被马上加入共识,在广播候选区块以后还需要由那些有投票权的人去投票。如果能得到多数票的支持,候选区块就会最终被加入共识,变成一个有效的区块。当然投票的过程我们可以用很多方式执行,比较常见的就是用少数服从多数的共识算法。因为现在我们知道一共有多少人有资格投票、一共有多少票,所以用这个共识算法我们很容易算出来多数,比如超过1/2或者2/3。
在去中心化机制中,我们需要选举谁负责打包,谁负责投票。有时候为了效率,大家会先选出一个比较小的委员会,然后由他们负责投票。这样的委员会通常是随机选取的,而且为了公平性还要经常轮换。或者还可以用代理权益证明的 DPOS 机制,选取相对固定的委员会负责打包和投票。这样虽然损失一些去中心化程度,但是可以大大提高效率。
在 POS 系统中,如果检测到有参与者违反了 POS 共识的协议,比如一票多投,或者放弃投票,就可以对他们做出一些惩罚。凡是对系统的安全性造成影响的行为都应该收到惩罚。
相关导航


可追溯

基石轮

预言机/Oracle Machine

量子比特

源代码

雷电网络
