昨日刘教链发布原创文章《论比特币和以太坊的“宕机”》之后,引发了一些对区块链工作原理感兴趣的朋友的热烈讨论。其中,魔笛手社区群主Claire提了一个好问题:为什么中本聪不给比特币设计最终性呢?或者说,为什么中本聪设计的比特币没有显式最终性呢?
透彻地了解这个问题,需要对计算机科学的一个重要分支——分布式系统——的发展历史和关键问题作一个全面了解和深入思考。在刘教链所著《上帝掷骰子:比特币史话》一书第七章“拜占庭将军”用了6个小节的篇幅对这段往事做了较为全面的铺陈。接下来,笔者试着用简单的篇幅和精炼的逻辑,来对上述问题做一个较为通俗易懂的解答。
中本聪发明比特币,克服了什么关键困难,或者说解决了什么关键问题?去中心化共识问题,或者叫做分布式一致性问题。特别的,比特币要解决的,是如何在有人可能会掉链子、有人可能会作恶的不确定环境中,不借助于一个中心权威或者说中央统治者,就能自动达成共识或者一致的问题。这个问题,就是由计算机科学家LeslieLamport在1982年的著名论文《拜占庭将军问题》中所指出和命名的“拜占庭将军问题”。
最早意识到此问题的人,并非LeslieLamport,而是他的同事RobertShostak。那是1978年。从1978年到中本聪发表比特币白皮书的2008年,整整30年,整个人类计算机科学界,没有人真正解决这个问题。
波卡社区成员建议调整通胀模型,以保证财库拥有稳定资金来源:7月10日消息,Polkadot社区成员jonas近日在论坛发帖建议调整Polkadot通胀模型,以保证财库有持续、稳定的资金来源,并邀请社区进行讨论。jonas认为,在现有模型中,当现实质押率和理想质押率之间的差距缩小,财库就可能会失去通胀收入。因此,他建议将每年铸造的代币中的20%分配给财库,剩余的80%则继续使用当前的通胀机制,从而兼顾对质押者的激励和财库的稳定资金流入。
jonas表示,实施这一变化需要runtime升级和治理中的root权限,因此需要先进行广泛的讨论。达成共识后,就需要将提议的更改编码,并纳入runtime升级。另外,通过治理直接修改这些关键参数(质押者通胀、给财库的固定份额等)将是有益的,这将便于未来进行调整。[2023/7/10 10:46:10]
为什么这个问题如此难以解决?也许有学过分布式系统的朋友会说,当年Lamport就已经给出了解决方法了呀!就是拜占庭容错算法。后来1999年的时候还有人继续改进该算法,提出了实用拜占庭容错等新算法。
事实上,Lamport的解题思路走向了一个错误的方向。所有BFT类的算法,都必须隐含一个假设,节点时钟同步性假设。否则,就无法形成共识、达成一致。而这个隐含假设,恰恰是自相矛盾的:想作恶的人,当然可以篡改他所控制的节点的时钟,使之不同步。要想满足这个假设,就要取消拜占庭环境的设定,那么,拜占庭容错算法只能在非拜占庭环境中工作,这解决方案是解了个寂寞!而如果作了非拜占庭环境设定,我们显然可以换用效率高出成百上千倍的算法来达成分布式一致性,比如谷歌Spanner和微信后台所用的Paxos算法。
PeckShield:0xA69F8 开头地址过去 12 小时盗取了 153 枚 NFT:金色财经报道,据PeckShield监测,0xA69F8开头地址过去12小时盗取了153枚NFT,包括4枚Digidaigaku系列和6枚DigiDaigakuHeroes系列NFT,其中DigiDaigaku#756和DigiDaigaku#1407已在X2Y2上以9.3ETH和8.2ETH的价格被出售。[2023/2/13 12:04:03]
你永远叫不醒一个装睡的人。直到今天,还有宣称去中心化的公链系统采用BFT、PBFT以及其他变体作为共识算法,在错误道路上执迷不悟。事实上,到了1985年,三个计算机科学家——耶鲁的MichaelFisher、MIT的NancyLinch和华威大学的MikePaterson——联合发表了一篇名为《有一个错误进程即不可能达成分布式共识》的著名论文,提出了著名的“FLP不可能定理”。
FLP定理给了BFT类算法当头棒喝:只要取消掉时钟同步性假设,别说有人作恶了,即便只是有人掉链子,分分钟就把整个系统的共识搞崩溃。
路被堵死了。Lamport知耻后勇。你以为他奋发图强,一举克服了时钟同步性依赖了吗?不。他好汉不吃眼前亏、韩信能受跨下辱,借坡下驴、顺势躺平,乖乖接受了这个五雷轰顶的现实。1990-1998年,他提出了在非拜占庭环境下的高效共识算法Paxos。为啥花了这么久?在《史话》第27话“美丽的小岛”有记述这段离奇而曲折的故事,篇幅过长,不再展开。
LDO短时涨超17%,现报1.15美元:1月2日消息,据Binance行情数据显示,LDO短时涨超17%,现报1.15美元。此前消息,今日早些时候,Lido超过MakerDAO成为TVL最高的DeFi协议。[2023/1/2 22:20:56]
这一下子就过去了十年。
老天爷似乎总爱给越挫越勇的人更多的挫折和挑战,“增益其所不能”。就在Lamport关于Paxos算法的论文发表的同一年,伯克利大学教授EricBrewer提出了一个理论假说:分布式系统,无论如何,都不可能同时做到这3点:一致性,可用性,分区容忍。
看起来好像一个不可能三角形。但是由于第三点不得不接受,因为网络不可能100%可靠,那么本质上就是二选一了:你要一致性呢,还是要可用性?鱼翅,我所欲也;熊掌,亦我所欲也。二者不可得兼,舍哪个而取哪个呢?
Paxos选得啥?Paxos选的是强一致性。那么就意味着,它必然、一定、不得不舍弃可用性。舍弃可用性不意味着一个采用Paxos算法的系统总是在宕机,但是它一定有机会宕机。宕机,就意味着要整体干预、协调和重启。也就意味着,对中心化控制的依赖。5秒钟思考一下,著名的“宕机链”Solana宕机之后怎么办?当然是项目方、基金会出面协调全网重启啦!它无法自我恢复。
SPACE ID将于9月15日开放域名阶段性注册:9月13日消息,去中心化域名协议SPACE ID宣布将于9月15日13:00开放域名阶段性注册(Domain Staging Launch),会在之后发布详细信息。
SPACE ID原定于在9月13日开放域名阶段性注册,后遭推迟。SPACE ID此前表示,在为期5天的 Staging Launch期间,用户可以按照先到先得的原则注册 .bnb名称。每个地址在暂存启动期间只能注册一个域名,注册上限为每天300个。目前暂不清楚注册细节有无变更。
9月初,SPACE ID宣布完成由Binance Labs领投的种子轮融资,具体融资金额尚未披露。SPACE ID表示,资金将用于.bnb域名服务与BNB Chain生态的集成,以及多链域名服务研发。[2022/9/13 13:27:12]
同时,别忘记了,Paxos隐含的前提是始终同步性假设。高性能、强一致性的背后,是极其精准的时钟同步。谷歌Spanner系统甚至需要用原子钟来保证节点间分毫不差的计时。这种系统,是绝难推广到比特币所面临的拜占庭环境的。
EricBrewer的理论假说直到2002年才被MIT的SethGilbert和NancyLinch成功证明。自此成为人尽皆知的“CAP定理”。
币安计划提供120万美元援助5000名乌克兰境内流离失所者:6月9日消息,币安发布关于乌克兰慈善的帮助公告,计划将 120 万美元用于 5000 名乌克兰国内流离失所者,津贴为每月 75 BUSD,将累计三个月,其中 1339 人已经在该计划中注册,1000 人已经获得了资金,且这笔资金是在注册之日起一周内收到的。[2022/6/9 4:12:50]
90-'99年之间相继成立。面对拜占庭问题,互联网技术直接选择了“躺平”,向拜占庭将军问题举手投降,直接建立公司级防火墙,把坏人拒之门外,营造非拜占庭环境,用自己中心化控制的计算机组成分布式集群,对外提供高性能的互联网服务。
在拜占庭将军问题面前,产业界选择了投降。和Lamport当年看到FLP定理证明之后的选择一样。
逃得过拜占庭将军问题,却逃不过CAP问题。产业界的实践并不晚于学术界。只不过,Lamport又一次当了“反指”。互联网系统的经典技术路线,并不是像Paxos选择一致性,而是反其道而行之,选择可用性。
为什么?很容易理解。你可以接受互联网服务少量的数据不准确、不及时,但不能接受互联网停止服务和拒绝服务。而且,随着互联网用户规模和数据量的爆炸式增长,保持全网数据的强一致性十分困难。
既要又要是难如登天的。身段放软、适当妥协是智慧的。互联网界很自然地选择了向一致性开刀,在强一致性上做折衷,把强一致性弱化成经过一段时间之后达成一致,也就是所谓的“最终一致性”。
也即是说,互联网系统总是能够回应用户的访问请求,但是操作之后,不保证会立刻得到想要的结果。往往需要经过一小段时间t,数据才会同步更新到位。比如,笔者在刘教链公众号推送了这篇文章,并不是第一时间所有读者都能立刻收到,而是陆陆续续收到。但是最终而言,经过一段或长或短的时间,大家都会收到一模一样的文章内容。
这个最终到达全局一致性的状态,就叫做最终性,或者叫做“终局”。
最终一致性走了和Lamport不同的道路,为互联网大规模发展几十年铺平了道路。但是,它虽然解决了CAP问题,却仍然只能在中心化管控的非拜占庭环境下工作。
好了,现在让我们重新回到最初的问题,拜占庭将军问题。如果我们既要一致性,又要可用性,又是拜占庭环境,也无法假设时钟同步性,那么这样一个分布式共识系统,能被设计出来吗?
几乎所有人都会说不能。而且越是掌握专业知识的人,可能越笃信这样的系统是不可能存在的。因为见识过其中的困难,所以心中畏惧。当2008年10月31日中本聪初次披露比特币白皮书时,差不多每一个看到的人当时也都是这么想的。
中本聪给出的办法,就是放弃最终性。把最终一致性变成概率一致性,把最终性变成概率最终性,即有一定概率达成一致,有一定概率达到最终性,且这个概率随时间向前流淌而迅速提高,快速逼近于100%,但永远不会到达100%。从这个意义上讲,也可以说,中本聪把最终一致性里的“最终”二字所代表的一小段时间t推向了无穷远。
用数学的语言说,就是对于任意的t<无穷大,都有一致性的概率p<1,而当t->无穷大时,p->1。这就是中本聪共识。
如果我们允许一致性概率p=1,那么,显式最终性或者最终一致性就是概率最终性的特例:存在t<无穷大,一致性的概率p=1。
如果中本聪共识中的概率收敛速度足够快,那么不需要太久,p就会非常非常接近于1。在比特币白皮书第11小节“计算”一节里,中本聪计算过两个示例:恶意算力占比10%时,经过10个区块,一致性概率就会达到99.99988%;占比30%时,经过50个区块,概率就会达到99.99994%。
随着时间的不断向前,随着区块链的不断延长,一致性概率会从0.9、0.99、0.999迅速增长,不断逼近0.9循环小数,即1。
比特币不再定义“最终”,而把“最终”的定义留给用户、留给我们。这也意味着,比特币的最终性,也是主观的。中本聪在白皮书中,给出的乐观计算是一致性达到概率99.9%,只要错误或恶意算力占不高于10%,我们就只需要在交易进入区块后再延长5个区块也就是所谓的“6个区块确认”就可以视为已经到达最够好的最终性了。
6个区块,大约是1个小时。更乐观的人可以主观上视3个区块确认就足够好了。更悲观的人也可以默默等待更久的时间。
比特币系统通过放弃设定一个强迫所有人接受的显式最终性,转而仅提供一致性的概率计算,而把何时接受共识交给每个用户的主观,从而一举突破了CAP定理、FLP不可能定理,抛弃了对时钟同步性假设的依赖,真正解决了拜占庭将军问题,实现了真正去中心化的记账系统。
我们是否有可能继续攀登,即保持和比特币同等级别的去中心化程度,并解决拜占庭将军问题,同时不放弃显式最终性,通过确定性的算法和机制,实现显式最终性呢?对此笔者不太乐观。直觉上感觉不放弃显式最终性解决拜占庭将军问题可能是一个类似于“发明永动机”的问题,区别在于在计算机分布式系统领域,目前还不知道何为“热力学第二定律”。
更大的矛盾之处还在于:如果扬弃了中本聪引入的工作量证明——出于环保等任何正确的或其他方面的原因,比如改为PoS或其他什么算法;或者,扬弃了中本聪引入的链式区块账本,而是改用其他数据结构比如DAG,那么,都将不可避免地、必须、不得不实现显式最终性,否则,不需要消耗巨大外部能量和代价的数据就会被轻易推翻、颠覆和篡改。这样一来,在不得不实现的显式最终性和不得不克服的拜占庭将军问题二者之间,真的能兼得吗?如果实践和理论最终证明,要显式最终性,就无法克服拜占庭将军问题,如果要克服拜占庭将军问题,就必须舍弃显式最终性,那么,我们又将面临一个怎样的未来?是巨大的挫折,还是理论极限的再次突破?
行文至此,笔者心中不由地冒起冷汗,耳边仿佛回响起中本聪当年说过的话:
“很多人自动忽视电子货币,将其视为损失的原因,因为自20世纪90年代以来,所有的公司都倒闭了。很明显,仅仅是因为那些系统的中心化控制的本质让他们在劫难逃。我认为这是我们第一次尝试去中心化、基于非信任的系统。”
12月19日,2020CCF区块链技术大会暨首届中国济南区块链产业发展高峰论坛在山东济南举行。在《区块链基础设施与自主创新》圆桌论坛上,重庆电信区块链负责人张璐、桂林电子科技大学教授丁勇、微众银.
1900/1/1 0:00:00比特币的交易价格再创新高,而反对者也蜂拥而至。怀疑论者的范围从NourielRoubini到PeterSchiff等等.
1900/1/1 0:00:00原创:赵晋杰来源:字母榜 图片来源:由无界AI工具生成国内科技大厂,在大模型竞争上再一次取得共识:既要做淘金者,也要卖铲子.
1900/1/1 0:00:00据TheBlockCrypto12月17日报道,管理着价值约40亿美元资产的比利时主权财富基金SRIWGroup刚刚投资了区块链风险投资公司TiogaCapital.
1900/1/1 0:00:00博链财经BroadChain获悉,5月11日,根据BitfinexAlpha报告,BRC20之所以越来越受欢迎,是因为最近的Meme币热潮.
1900/1/1 0:00:00BRC-20代币标准由于最近meme代币的热潮而获得关注度和流行性。据brc-20.io称,BRC-20代币的市值现已达到858,775,461美元.
1900/1/1 0:00:00