首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链的共识机制大对比

区块链的起源源自于上世纪密码极客们对于秘钥技术的探索。追溯历史其首先开始于上世纪70年代,在随后的几十年里,极客们对于技术的研究从来没有停止,要实现理想中的数字货币体系最关键的问题之一,是如何使得系统内的所有参与者对于账本的一致性能够达成统一。

为解决这个问题,工作量证明、拜占庭容错等机制先后被设计出来,但由于一些原因,首先应用这些机制的数字货币先后都失败了,直到中本聪破天荒的推出了比特币。

现在区块链世界中许多不同类型的项目,但如何保持节点数据的同步和准确性是每一个区块链开发者都要思考的问题,所以共识机制就成了项目的灵魂,这种底层设计是项目的重中之重。

POW 工作量证明

POW机制源自于已经失败了的B-money,中本聪首先借鉴了其思想并加以改进。简单来说就是通过数学运算来争夺记账权(随机值),拥有记账权的节点就可以将打包的区块向全网进行广播并且并入到区块链上,节点会获得奖励作为参与运算的报酬。

进行运算并打包的节点也就是我们所说的“矿工”。但随着参与运算的节点越多,想要获得记账权也会随之越难,所以“挖矿”的难度是动态调整的,为什么早期比特币挖矿能获得更多报酬,因为运算的节点少,挖矿的难度值较低。

工作量证明机制的挖矿方式

1)CPU挖掘  - 使用普通计算机的CPU进行运算挖矿

2)GPU挖掘  - 这与CPU挖矿没有什么不同,但显卡更加强大可以提供更多的算力,并且相对而言使用更少的电力。

3)FPGA挖矿  - 也称为“现场可编程门阵列挖掘”。FPGA是针对特定计算任务量身定制的电路,使其在采矿时比普通处理器快几倍。

4)ASIC Mining  - 是一种“专用集成电路”,是为特定用途定制的电路。ASIC在速度和效率方面都轻松胜过CPU,GPU和FPGA,所以其诞生后,以ASIC为代表的专业矿机成为主流。

目前通过运算挖矿大多使用显卡或专业矿机,CPU由于效率太低目前几乎已经无人使用,而由于ASIC矿机比FPGA拥有更高的效率,厂商们开始了ASIC的量产,FPGA也早已被淘汰。

在现有的区块链项目中,采用工作量证明的项目有:比特币、莱特币和Zcash等。

值得一提的是,对于POW机制有两种争论,一种说法是采用POW机制挖矿需要耗费大量的电力资源,这种观点认为POW机制不够环保,对资源是一个巨大的浪费。

但另一种声音是,正是由于挖矿是耗电的,所以该数字货币的价值基础是有能源作为支撑,所以它更有价值。

权益证明

权益证明机制简称POS,它是由点点币的创始人sunny King首先采用。POS机制在创建区块时要求用户首先拥有一定量的数字货币,它类似于把资产存在银行里,银行会通过你持有数字资产的数量和时间给你分配相应的收益。

它与POW 的不同之处在于争夺记账权的方式不一样,在POS机制中币龄=币的数量*持有时间,币龄越大获得记账权的概率也就越大。当然在参与一次记账之后,币龄就会被重置,因为持有的时间归零了,所以币龄也归零。

所以不难看出在POS体系中,持有币越多的人获得记账权的概率也越大,获得的收益也会越多,这也是POS机制被抠病的一大原因。

DPOS委托权益证明

在目前所有的共识机制中,委托权益证明可以说是最高效的共识机制,在DPOS机制中,持币用户可以选举打包和维护区块链的节点。这种机制它就像西方国家的议会一样,选举出来的节点拥有打包权和验证权。

系统所有交易的打包验证全部依赖于选举出来的节点,当然如果节点不能履行自己该尽的义务就会被除名,由备用节点顶替。

虽然采取这种机制的项目相对而言会更加高效,但DPOS 机制是靠牺牲去中心化来提高区块链的效率,社区有人认为区块链世界安全第一,但这种机制并不安全,依靠少数的节点来维护网络这种模式就是中心化的,与区块链的理念并不符合。

也有人认为,网络拥堵问题阻扰了区块链行业的发展,想要支持大型的商业应用POW形式的机制肯定是不能满足需求的,如想要实现,在不可能三角中一定会有取舍,有得必有失,这是无可避免的!

以上是三种最普遍的共识机制,除了上述的三种,还有POC容量证明、POET经过时间证明、POS+POW混合证明、POA权威证明等机制,这些机制大多应用于特定的项目中,比如容量证明就是应用于分布式存储类型的项目,拥有的存储容量越多,获得记账权的概率也就越大。

所有的共识机制都是为了让节点在分布式的网络中能达成共识,虽然都有着相同的目标,但采取的方法确是大相径庭。虽然已有的机制存各种不同的问题,但看到随着时间的推移各种解决方案先后被推出是非常令人开心的一件事情。

- end -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181128G0AP7D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券