最近看了一些关于“共识”算法的文章,从拜占庭问题、Paxos算法到比特币,觉得挺有意思的,下面简单总结下。

1. 拜占庭问题描述如下:
一组拜占庭将军分别各率领一支军队共同围困一座城市,各位将军必须通过投票来达成一致策略,即所有军队采取相同的行动。但因为各位将军距离较远,他们只能通过信使互相联系。将军们要如何达成共识?如果将军们存在叛徒,要怎么做?
-->解决方法有两两通信、数字签名、PBFT等,详见[1]。

2. Paxos算法
曾存在名为paxos的希腊城邦(虚构),这个城邦选择议会投票的方式产生决议,有提出提议者(legislators)也有接受者(messengers),但由于城邦的居民没有人愿意把全部时间和精力放在这种事情上,所以他们只能不定时的来参加提议,不定时来了解提议、投票进展,不定时的表达自己的投票意见。Paxos算法的目标就是让他们按照少数服从多数的方式,最终达成一致意见。
-->解决方法是Paxos算法,主要分为两个阶段,①明确意见领袖(随机数,谁大听谁,提议者意见收敛);②接受者反馈意见,多数票数的提议获通过;详见[2]。

3. 比特币
比特币使用工作量证明算法(POW),谁先解出数学题,谁将获得奖励。
所以如果单独进行挖矿,由于机器性能问题,有可能是一直获取不到比特币的。这样就催生了组队挖矿,通过p2p连接矿池中的各个电脑,动用整个矿池中的机器作为算力一起挖,取得奖励后再进行根据机器性能分配。但是这样矿池也会进行抽成。涉及抽成的地方有矿池(1%-3%)、挖矿软件(1%-2%)、交易所(0.5%)、区块链网络(转账所付的手续费,如0.0001比特币)[3]。
比特币也有一些问题,详见[4]。


参考资料: 
[1] https://zh.wikipedia.org/wiki/拜占庭将军问题
[2] 如何浅显易懂地解说 Paxos 的算法? - 知乎
[3] 如何自己挖矿?(入比特币)? - 知乎
[4] 比特币底层漏洞:大多数正义与信道安全 - 腾讯云开发者社区-腾讯云


以上均为个人见解,因本人水平有限,如发现有所错漏,敬请指出,谢谢!

Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。

更多推荐