为什么要有共识,共识要解决什么问题?
在谈论第一个问题的时候,需要先弄明白什么是共识?
维基百科这样定义:(https://zh.wikipedia.org/wiki/Wikipedia:%E4%BD%95%E8%B0%93%E5%85%B1%E8%AF%86)
共识是指分歧双方搁置争议,达成能够被各方所接受的陈述(即使有时只是勉强接受)的社群解决方案。
共识的作用:
共识可以通过寻找共同点,形成在当时社群所能达成的最佳解决方案。
在区块链中要达到的共识是谁来产生新的区块,也就是说谁来记账。
现在有哪些共识,如何实现?
PoW:Proof of Work
是比特币系统里解决选择下一个负责创建新区块节点的核心思想。主要方式是让所有想参与的节点全部一起竞争: 计算上一区块的hash值 + 当前未处理交易数据 + 时间戳 + 一些可变随机参数, 目标是得到前缀为若干个前导“0”的hash结果。这个计算量是很大的, 但是一旦算出来, 其它节点验证其正确性是很简单的。 这种机制, 解决了新区块产生的公平性和信任问题, 经济上, 也让参与者(矿机
)有机会获得一定的收益形成生态链, 成为BTC被广泛接受的基础。
PoS(Proof of Stake)的目标是取代PoW这种在分配体系中达成一致的方式。PoS引入“币龄”的概念,币龄=币数*持有时间,通过币龄来作为投票权重。出块用一定的公式计算值,达到所需要的币数(也叫做目标,是由网络通过类似于PoW的难度调节机制来规定的),以此来确保大致恒定不变的出块时间。
DPoS是 比特股在PoS基础上提出来的,delegated的PoS,主要目的是扩大交易容量。 参考《BTS白皮书(en)》
核心思想是,预选出后续时段的一系列代理(选举过程还是用PoS),产生区块的权利直接交给预选出来的节点。这样保证非常高的速度去达成一致性。因为选举还是用PoS,只是提前和其它工作并行,所以称为DPoS。
名称 | 共识机制 | 性能 |
---|---|---|
比特币BTC | PoW | 7 TPS |
未来币NXT | PoS | 100+ TPS |
以太坊ETH | PoW转PoS | 10+ TPS |
BitShare | DPoS | 10K TPS |
如果要做,选用哪个共识?为什么?
从去中心化角度来说,pos, pow 比Dpos会更好些。但是太慢了。
如果目标是商业化,几百的TPS完全是不够用,很多事情会受到这个的影响,比如像以太坊,只要操作过于频繁,这么就是堵,这个直接影响的就是使用。从TPS来看,Dpos最好。