BTC 学习笔记连载(8)——BTC的共识协议

All in Web3
2023-01-10 12:14
发布于 Mirror

欢迎交流:twitter.com/songoku_web3

转载请注明出处~

货币本质上是由人类构建的一种社会机制(social institution),传统社会中货币被认为主要行使三种职能:价值尺度、交换媒介、价值储藏。

在人类几千年漫长历史中出现过的货币,诸如牲口、兽皮、贝壳、盐、宝石、铜/铁、金/银,当然还有美元!它们凭什么能行使货币的职能呢?

因为生活所需!

因为易携带!

因为易切割!

因为稀缺!

因为共识!

远古的事情我们不深究,但近现代的流通货币基本可以肯定都是因为政府公信力。

任何能在市场上流通的货币都要解决2个重要的问题:

  1. 货币的发行

  2. 交易的有效性

现代社会中流通的货币自然是由政府机构发行,因其价值由政府背书,所以交易有效性也得到了一定的保障。但也正是由于这种权利过度集中的模式,滥发货币基本是家常便饭,比如疫情肆虐下美联储似乎就热衷于通过滥发货币来缓解危机,然后借助美元霸权再转嫁给其他国家,可怜了这些生活在最底层的劳苦人民。

还记得中本聪在Genesis留下的那句话吗:

Chancellor on brink of second bailout for banks (财政大臣正处于第二轮救助银行的边缘)

这是比特币吹响挑战政府垄断货币的第一声号角!

正如Cypherpunk发起者之一Tim May30年前所言:加密算法将从根本上改变企业的性质和政府对经济行为的干预,而现代社会政府对经济行为最大的干预就是:垄断货币!

互联网天生就是无国界、国际化的,人们不但需要安全地传递信息,还需要安全地传递价值,应该有一个不被任何政府/机构操控或干预的货币系统,基于此Cypherpunk们开始尝试各种加密货币,而去中心化自然就成了首要目标。

这也是比特币诞生的源头。

去中心化 & 双花

之前的一篇文章《BTC 学习笔记连载(6)——为什么会有比特币?》有介绍过Cypherpunk的一些历史,从1982年David Chaum的E-cash到1998年Wei Dai的B-money、Nick Szabo的Bit Gold,再到Bitcoin诞生的2008年,这20多年里Cypherpunk们一直在探讨、尝试不同的加密货币方案,但基本都在去中心化 & 双花2个核心问题上遇到障碍。

B-money的第1版方案已经非常接近后来的Bitcoin了,但是共识机制有问题,全网节点无法对账本达成共识就不可能解决双花问题。

Bit Gold是非常接近Bitcoin的另一个方案,Szabo的那句经典名言有印象吧:

值得信赖的第三方本身就是安全漏洞!

但就是这么热衷于去中心化的Szabo,最终还是将Bit Gold解决方案绕回了中心化。

B-money和Bit Gold真的是只差一步了,但就是这一步整个世界等待了10年!

直到2008年中本聪Bitcoin才巧妙地同时解决了这2个问题,为什么这么难?

什么是双花?

双花(Double Spending)即双重支付,指同一笔资金支付给两位及以上收款方。

以前我们很少听说双花这个词,是因为纸币天然就没有双花问题,手上的100元买东西支付给张三了,就不可能再支付给李四。

但在计算机的世界里就麻烦了,任何文件都是可以无成本拷贝的,所以很容易造成一份数字货币支付给不同收款方的情况。这是数字现金系统的潜在问题,仅凭协议无法彻底解决该问题,因为用户通常都无法验证收到的资金是否已经支付给其他人。

中心化数字货币就很容易解决双花!

比如美联储要发行一个数字xx币

  • 美联储可以发行各种面额的数字xx币 如图可以100、50、1等面值

  • 为了防伪每张数字xx币都用美联储私钥签名 接收方只需要用美联储的公钥验证即可知道这是不是伪钞

比如上面的100元,如果没有特殊处理,是可以先支付给张三再支付给李四的,因为张三、李四用美联储的公钥一验证,好家伙~ 都tm是真钞,于是这100元就可以一直这么循环地支付下去。

对于货币系统来说这显然就乱套了,交易的有效性无从谈起。

怎么办?

对于美联储这种中心化机构来讲,这很easy:

  • 每张数字xx币都赋予一个唯一编号,跟纸币类似

  • 然后在中心化服务器里维护一个Key-value表 记录每张钞票属于哪个用户或地址

  • 任何一笔Transaction发生之后,更新Key-Value表 钞票所属用户或地址发生变化

甚至可以做得更像加密货币一点,比如张三要消费数字xx币时需要用自己的私钥签名,李四收到之后用张三的公钥验证,其实这个步骤对于中心化货币来讲是完全没有必要的,只需要请求服务器验证即可。

任何中心化账本的状态都可以高度统一,被消费过的任意数字xx币都不可能再消费一次。因为它很明确的记录了任意一份数字xx币有没有被用过、被谁用过。

虽然双花的问题没了,但中心化又带来另外的问题:

  • 任何人的任何资产情况都被清楚掌控

  • 任何终端钱包账户都被无死角监控 包括资金来源、流转记录

  • 任何人的特征都将被中心化大数据拿捏得清清楚楚 比如消费行为、购物偏好、商业兴趣等

任何规则都是有利有弊的,基于这种数字xx币我们也可以列举很多好处,比如:

  • 规避诈骗:任何诈骗资金都可以不费吹灰之力追踪到

  • 避免偷税漏税:除了权贵谁还敢

  • 有利于公益:那些捐赠给xx会的钱还敢挪为己用 (可能是我天真了)

但是所有这些好处都无法弥补其带来的坏处:隐私泄露、私有资产随意侵犯。理论上中心化机构可以在任意时间以任意理由冻结任何人的资产。 (不知道以后再听到什么数字xx币的时候,是不是可以淡定一点了……)。

这显然是不符合Cypherpunk精神的,我们需要一个在互联网上既能规避双花问题又去中心化的货币系统。

Bitcoin的共识机制

B-money和Bit Gold发表之后第10年,中本聪巧妙地解决这这个问题,我们来看看Bitcoin是如何以去中心化的方式解决双花问题的。

前面讲到美联储要发行数字xx币,以Key-value的形式管理账本,可不可以直接将这个账本由全网分布式的节点来共同管理呢,这样就不再依赖任何中心化机构了:

  • 全网每个节点维护一个庞大的KV余额账本 每当有合法Transaction发生之后,更新该KV账本

  • 每个节点还需要存一份交易记录 记录历史发生的每一笔交易

这个系统非常像Wei Dai提出的第一版B-money,自然其问题也一样。各记各的帐无法达成统一,久而久之节点之间都互相不承认对方账本的交易,账户的余额状态无法达成共识,最终整个系统必将崩溃。

全网分布式节点如何对账本达成共识?为了解决这个问题,Wei Dai引入了POS方案。

这里我们先不深入了,直接看看Bitcoin是如何解决的。

跟前面讲的中心化Key-value账本类似,Bitcoin也是维护一套数据结构来检测一个币有没有被花过、被谁花过,只是该数据结构不再由美联储来维护而是由全网所有用户共同维护,这个数据结构就是区块链:

文章开头提到过任何能在市场上流通的货币都要解决2个重要的问题:货币发行、交易有效性。货币的发行在Bitcoin中是由挖矿决定的,我们先看一下交易有效性问题,也就是Bitcoin是怎么规避双花的:

  • Block 1记录了一笔铸币交易转给张三50个BTC

  • Block 2记录了张三转给李四5个BTC、转给王五10个BTC

  • Block 3记录了李四转给老六2个BTC、转给张三3个BTC

Block 2中张三能够给李四、王五转币,需要说明币的来源,也就是指向了Block 1中张三接受到的50个BTC。

为什么需要说明币的来源?

避免双花!

比如在Block 4中李四试图给Lee’ 再转账2个BTC,这笔交易不会被其它诚实节点所接受,因为这笔转账同样需要说明币的来源,当往前寻找币的来源时发现Block 2的产出已经在Block 3花费掉了,自然给Lee’ 转账2个BTC就是一笔非法Transaction。

这就构成了一个最简单地区块链,这就是Bitcoin最初构建的原型。

账本基于这种协议就不可能出现双花。

那这样一个账本怎么在全网达成一致呢?

我们先问几个问题:

  1. 全网节点为什么要维护账本,记录交易? 为了去中心化的梦想?其中的开销谁来承担?

  2. 节点会不会选择性地记录交易? 只记录对自己有利的交易,而忽略其它合法交易

  3. 节点之间互相不认可对方账本 各自记账久而久之必然账本不可能统一

上面的所有问题都被中本聪设计的Mining巧妙地解决了:

  • 全网所有节点都要通过解决一个哈希难题争夺最新区块的记账权 只有获得记账权的节点才有资格将区块写入区块链账本 这就在全网达成了账本的统一

  • 获得记账权的节点会得BTC奖励,即每个区块的第一笔铸币交易
    这个收益非常可观,使得全网的节点都会争相提高算力争夺记账权
    大家都会积极记账,而不会认为这是负担

  • 一个合法的区块将被全网所有节点接受 Mining成功后,区块会被节点广播出去 所有收到最新区块的节点都要检查该区块是否合法,包括交易合法性、区块难度是否符合规范、区块大小、版本号等诸多信息

  • 所有Miner都将沿着最新的Block继续Mining 本质上是全网诚实节点都会沿着最长合法链继续Mining

  • 每个节点Mining时打包的Transaction都不同 但这没有关系,只有获得记账权的区块会被写入区块链 未上链的合法Transaction又会在后续区块中被不同的节点打包

这就是我们本篇要讲Bitcoin共识机制!

那么,Bitcoin到底要对什么达成共识呢?

3秒钟想一下?

……

……

……

对比特币会涨到40万美金达成共识?

对比特币很有价值达成共识?

对每个人都该拥有2.1个比特币达成共识?

对区块链就是未来达成共识?

到底什么是共识?

简单点理解就是对某件事的认知达成一致。

而为什么会达成一致就复杂了。

有些事情多数人容易达成一致,比如Messi踢球很有天赋。

有些事情达成一致就很困难,比如几成熟的牛排更好吃。

有些事情达成一致,靠CX就可以了,那种几百人的大会,主讲人吼得脸通红… 梭哈是一种智慧!下面的大爷大妈手都要拍烂,至于台上的老师讲的对不对不重要。

有些事情达成一致,靠的是严密的逻辑、数学、加密学,全世界最顶尖的数学家、加密爱好者、技术极客经过严密推理很容易就能达成统一,哪需要喊喇叭。

有些共识是区域性的,比热RMB在大陆达成共识基本不需要理论,但是放到拉美地区可能大多数人都不想收。

币圈前几年有句话:SB的共识也是共识!

是的,只要能让足够多的SB相信你,你也可以做空气币。

最近那个Pi又死灰复燃了,而且还上线了火必,大爷大妈们手机里的Pi涨幅达到惊人的几千倍,但就是提不出来,我完全能在脑子里浮现大爷大妈们看着Pi涨上的兴奋以及卖不出去的那种复杂心情。

说是因为主网还没上线,既然主网都没上线就没法存入交易所或提取出来,火必上的Pi又是啥骗子玩意儿呢?在豁鬼么?前2年我也在手机上装过,只要通过身份认证就能每天挖矿,除了收集个人信息我没看出来有什么卵东西,能够对这种垃圾玩意儿有“共识”的也只能是大爷大妈了,传销盘完美用户群体。很多信仰者甚至认为Pi就像是2008年的比特币,指日可待!

拜托,把它跟Bitcoin放一起比较是对整个区块链从业者的集体侮辱。

那世界上各种精英为什么对Bitcoin有如此共识呢?

其实Bitcoin的诞生就是区块链的诞生,与其说中本聪发明了Bitcoin还不如说他发明了区块链,区块链的诞生让世界第一次拥有了一个去中心化的记账系统,这个系统:

没有裁判,但有规则!

没有裁判说的是没有任何中心化机构裁决或限制某些事情,有规则是说这个系统大家都认同并按照这些规则来运行,任何不按照这些规则行事的都不会被其它人接受。

比如交易有效性、手续费、广播交易/区块、区块大小、POW机制、挖矿难度、最长合法链机制、区块奖励/铸币交易…… 这一系列的规则何在一起构成比特币共识协议!

比特币全网能对这一系列规则达成共识,是因为其背后的加密学保障;是因为其货币发行机制设计合理;是因为其它第一次实现了真正意义上的去中心化电子现金系统,是因为它在人类历史上第一次用技术保障了私有资产神圣不可侵犯!

这就是比特币!

基于算力投票,账本在全网达成分布式共识!

只要全网大多数都是诚实节点,那么区块链账本就能在全网达成统一,非法的交易无法被诚实节点接受,用户的资产也就可以得到安全的保障。

补充一点

其实全世界对比特币机制真正能达成共识的并不多,很多人其实并不信也理解不了比特币,他们连白皮书都没看过,也可能一辈子都搞不懂非对称加密是怎么回事。

所以他们对比特币的共识并不是建立在对这个系统的深入理解上,而是建立在KOL或身边人的cx中,涨的时候喊区块链革命,跌的时候喊区块链骗局。

全世界最能达成共识的是数学,1+1=2 我相信没有任何正常人有异议,但你要说到黎曼猜想是怎么回事一般人基本就搞不懂了。

比特币也一样,虽然建立在数学/密码学的基础上,但对一般人来说的确太难了,还是cx简单点。

0
粉丝
0
获赞
20
精选
相关文章
数据来源区块链,不构成投资建议!
网站只展示作者的精选文章
2022 Tagge. With ❤️ from Lambda