清华大学金融科技研究院孵化
金融科技与金融创新全媒体

扫描分享

本文共字,预计阅读时间

 

英国脱欧和区块链项目The DAO攻击事件

2016年6月23日,英国经过全民公投决定脱离欧盟,简称“脱欧”。脱欧一事对整个世界格局影响巨大。相对于这样一个新出现的中文缩写词汇,在英文体系里,也有一个专用词汇——Brexit。它是British(英国)和exit(离开)两个词的合成。脱欧的决定基于英国的全民公投。

显然,全民公投是一种达成共识的方式。所有共识的基础是语言文字,不管是人类的中文或英文语言,还是计算机世界里的Java或C++编程语言。在脱欧结果公布6小时后,谷歌发布数据显示,英国人搜索的第二大热门问题是“欧盟是什么”,搜索量暴涨24.5倍。这说明很多人在并不知道欧盟是什么的时候,就草率地进行了投票。当英国人通过搜索,重新理解“欧盟是什么”以后,他们发现当初所做出的投票并不能真正反映自己的本来意愿,于是,第二天,超过百万英国人联名希望二次公投。

作为最新的区块链创业项目,The DAO(中文发音“得道”)在2016年5月创下了人类历史上最大的众筹记录。该项目仅凭着项目白皮书,就募集到约10亿元人民币,说明大家对该区块链项目有着超级乐观的前景预期。2016年6月17日,黑客发动攻击,利用The DAO中的漏洞,鲸吞超过300万个以太币,市值3.9亿元人民币。The DAO被盗对全球区块链产业影响巨大。在第一轮攻击之后,黑客与白帽(正面的黑客)之间发生的数轮你来我往的文字辩论和代码攻击行动,引起了广泛关注[1,2,3]。The DAO项目能否“化茧成蝶,顺利升仙”,我们不知道。但这次攻击事件的确让以太坊的创始人Vitalik在软分叉与硬分叉的技术讨论和建议中忙了好几天,以避免黑客把所盗取的以太币成功转移,引发了大量的质疑[4-11]。事实上,在The DAO项目众筹前、中、后不断地有相关文章指出其中的设计漏洞[14],呼吁暂时停止项目众筹。然而,由于各种原因,这些警告都没有引起The DAO项目团队的足够重视。所以,也有观点认为,The DAO事件折射出的是人性的贪婪[15],是一场本可以避免的盗窃。

作为人类社会取得共识的脱欧事件在持续发酵,区块链世界里The DAO攻击事件也在继续进行[4,5,6],中间剧情跌宕起伏,大家可以拭目以待。从这两个看似无关的事件过程中,可以发现,区块链领域里在“共识与分叉、中心化与去中心化”的讨论变得尤为激烈[7-11]。道不辩不明,“洗洗才会更健康”。本文希冀借助脱欧与The DAO,把这几者之间的区别与联系加以阐述。

人类共识需要付出代价

共识是一个看似简单,实则特别复杂而又频繁发生的事情。人不是单独的存在,具有强烈的社会特质,相互间产生着各种联系。而且,大部分交易和交换都需要人和人之间的交流和沟通,目的很多时候就是为了达成共识。

如何才能达成共识?第一个层面是语言上的共识。人们所说的语言应该是一致的,可以是中文,也可以是英文,或者是其他任何一种语言。第二个层面是语义上的共识。当人们说了相同的语言后,对于相同语言这种形式符号上的理解和认识,应该是完全一致的。否则,就会出现一种分歧,即语义上的分叉,导致人们对同一个词语、同一句话的含义理解不同,类似于“鸡同鸭讲”。第三个层面是执行上的共识。当取得了一致的理解后,人们需要按照这一理解去真正执行所达成的结论。我们往往会发现,在执行过程中往往容易出现偏差。例如,出现了之前没有考虑到的情况,为此,需要重新形成新的共识。

在脱欧公投结果公布后,有很多人希望进行二次公投,理由是,他们并不是特别了解脱欧对于英国人到底意味着什么。也就是,脱欧这个词除了字面上所代表的意思外,对于它背后的意义和影响,人们都需要有一定程度上的认识,才有可能做出真正代表自己意愿的操作,以及最后取得符合大家意愿的共识。所以,共识是很难达到的,分歧是常常产生的。

在形成共识的过程中,人们需要付出巨大的代价。例如,脱欧的全民公投就是件非常费时、费力的事情。首先,要全民动员起来,让人们都能够知道此事,并对此事情有合理的认识;然后,需要组织人们进行投票操作,其次,要对相关的投票信息进行收集、整理、分类和计算,最后,得出投票数和是否脱欧的结论。看似简单的全民公投,或者说这样一个取得共识的过程,其本身所需要付出的代价可能远远超出我们的想象。

区块链共识是人类共识的简化

区块链世界里,达成基本共识非常简单:最长的那条链代表了真理,所有的人都接受;其它分支都是分叉,都会被遗忘,就好像从来没有出现过一样。事实上,在区块链的链条形成过程中不断有新的分叉产生的。分叉与分叉之间是一种竞争关系,因为只有最长的那支才能最终存活下来,被所有人认可,这就是区块链世界里的优胜劣汰,也构成了区块链世界里的共识。

与共识相反的一个词叫做“分歧”。“分歧是一切问题、一切争端、一切战争的根源”。所以,葛优在《非诚勿扰》里发明并成功卖出了分歧终端机的专利。为什么会产生分歧?其一是因为在达成共识的过程中,人们并没有形成的共识,不管是文字上还是文字所代表的内涵和外延层面上的共识;第二是形成共识之后,人们并不按照共识机制所产生的结论真正去执行。某种角度来说没有被执行的共识决定,并不是真正意义上的共识。

在区块链网络里的各个节点,所运行的程序是一致或兼容的,即语言文字是一致的。一旦某一个最新的区块生成以后,它会被实时同步到所有或者绝大多数的节点里,也就是一旦形成共识之后,人们需要保证被严格地真正执行下去。只有这样,才能保证所有的区块链网络永远保持共识。

伴随着The DAO事件的发酵,让大家越来越多地听到分叉这个词。从技术的角度来讲,分叉又可以分为软分叉和硬分叉。使用“硬分叉”意味着将会回滚所有的交易到被盗之前的某个时间点。使用“软分叉”就等于封闭所有来自攻击者地址的交易。简单来说,我们通过主动的分叉技术,让好人和攻击者产生分歧,让攻击者产生的恶意交易的那个分支,不被大多数(好)人所认可。

拜占庭将军:中心化与去中心化孰优孰劣

研究计算机分布式系统或区块链的人都会讲到“拜占庭将军问题”。它是假设拜占庭将军中好人占大多数的一个经典问题。拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:

(1)欺骗某些将军采取进攻行动;

(2)促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;

(3)或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的任何之一,则攻击行动的结果都是注定要失败的,只有完全达成一致的共识才能获得胜利。

“拜占庭将军问题”是人们在取得共识过程中经常会遇到的一个现实问题。由此,人们会谈及到中心化和去中心化。如果是中心化的解决方案,无非是人们共同选出一些人作为将军,然后这些将军来讨论、投票,直到最高统帅综合各方面因素做出最后决定。而所谓去中心化的解决方案,则是把所有的人都作为将军,每个人都直接参与最终决策。

值得注意的是,人们常常容易混淆分布式与去中心化,甚至片面地认为分布式就等同于去中心化。事实上,分布式可能是中心化的,而集中式也可能是去中心化的。例如,要求所有选民到同一个地方进行全民公投。

有趣的是,选出代表进行决策和全体人员来直接做决策,这两种方式最终得出的决策哪种更优?在不同的领域,从不同的角度来看,答案是值得商榷的。

[Source]

本文系未央网专栏作者发表,属作者个人观点,不代表网站观点,未经许可严禁转载,违者必究!

本文为作者授权未央网发表,属作者个人观点,不代表网站观点,未经许可严禁转载,违者必究!

本文版权归原作者所有,如有侵权,请联系删除。

评论


猜你喜欢

扫描二维码或搜索微信号“iweiyangx”
关注未央网官方微信公众号,获取互联网金融领域前沿资讯。