||
周穆是在一个旧笔记本里翻到那条笔记的。
那天他在书房整理东西,翻出十年前的一个本子,里面记着某次行业论坛的听讲笔记。有一页上,他用圆珠笔潦草地写着:“区块链不可能三角:去中心化、安全性、可扩展性,三者只能取其二。”旁边还画了一个三角形,三个顶点分别标着这三个词,中间打了一个问号。
他盯着那个问号看了很久。十年前他记下这句话的时候,并不真的理解它。当时他只是觉得这个说法很流行,就随手记了。现在他明白了。
他给顾青打电话:“今天想聊不可能三角。”
顾青在电话那头笑了一声:“您终于问到这个问题了。来实验室吧。”
一个小时后,两人坐在旧厂房的机柜旁边。顾青在屏幕上调出一张图,上面画着三个方块,用箭头连在一起。
“不可能三角,很多人把它讲成技术限制,但它其实是经济学问题。”顾青说,“您想想老赵的互助会。”
“那个司机互助会?”
“对。三百多个司机,遍布全国。每个人都记账,互相抄。这个系统是去中心化的——没有中心,谁说了都不算。也是安全的——谁想改账本,得改所有人的账本。但您觉得它快吗?”
周穆想了想。“应该不快。三百多个人,每一笔账要所有人都记一遍,得花不少时间。”
“对。老赵他们的账本,是手写的,最多也就是电子表格。一笔账从发生到所有人都记下来,可能要几天甚至几周。如果他们要达到银行的交易速度,每秒几万笔,那套系统根本不可能。”
“所以他们选择了去中心化和安全,牺牲了速度。”
“对。这就是不可能三角的第一种取舍。”顾青在屏幕上画了一个叉,“但反过来,如果您要速度,那就要放弃去中心化。比如银行——银行的系统非常快,每秒能处理几万笔交易。但它是中心化的,您得信任银行。银行说您的钱在,就在;银行说您的钱没了,就没了。而且银行可以被黑客攻击,可以被政府冻结,可以被内部人员盗取。速度快了,安全和去中心化就打了折扣。”
周穆点了点头。“那有没有可能三个都要?”
“理论上没有。”顾青说,“这是数学上的限制,不是技术不够好。您想想,如果系统是去中心化的,那每一笔交易都要所有节点验证。节点越多,验证越慢。如果系统要快,就得减少节点,或者让少数节点说了算。减少节点,去中心化就打折了。让少数节点说了算,安全就打折了。”
“所以必须选两个。”
“对。但问题在于,选哪两个,取决于您要做什么。”顾青把屏幕上的三个方块重新排了排,“您做支付系统,要的是速度和安全性,那中心化就是可接受的代价。您做产权登记,要的是去中心化和安全性,那速度慢就是可接受的代价。您做社交网络,要的是速度和去中心化,那安全就可以放松一点。”
周穆在笔记本上画了一个三角形,三个顶点分别写上:去中心化、安全、速度。他在三角形中间写了一个词:取舍。
“所以这不是一个技术问题,”他说,“这是一个政治问题。”
顾青眼睛亮了一下。“您说到根子上了。不可能三角不是告诉您‘做不到’,而是告诉您‘要选’。您选了去中心化和安全,就得接受慢。您选了速度和去中心化,就得接受弱安全。您选了速度和安全,就得接受中心化。每一种选择,都对应一种权力结构。”
“那活世界该选哪个?”
顾青没有直接回答。他从书包里翻出一张纸,上面画着三个圈。
“一个活世界需要什么?”他问,“它需要有记忆——账本。需要有规则——合约。需要有居民——人。这三样东西,各自对应三角里的一个角。”
他在第一个圈里写:记忆——安全。在第二个圈里写:规则——去中心化。在第三个圈里写:居民——速度。
“记忆要安全,不能让人随便改。规则要去中心化,不能由一个人说了算。居民要速度,他们得能快速互动,快速交易,快速决策。但这三个放在一起,就撞上了不可能三角。”
周穆盯着那三个圈。
“所以活世界也不能三个都要?”
“不能。”顾青说,“但活世界有一个旧世界没有的东西。”
“什么?”
“分层。”顾青把三个圈重新排了排,“活世界不需要所有事都上链。它可以把不同的事放在不同的层上。最底层是账本,负责安全,慢一点没关系。中间层是合约,负责规则,不快不慢。最上层是日常互动,负责速度,可以中心化,可以快。”
“所以它不是选两个,是把三个分到不同的层上。”
“对。这就是‘不可能三角’的破解之道。不是打破三角,而是分层。每一层只承担一个角,层与层之间用接口连接。账本层保证记忆不可篡改,合约层保证规则不可私改,互动层保证居民体验流畅。三层各司其职,各守一个角。”
周穆把那三层画在纸上。最下面是账本,中间是合约,最上面是互动。三层叠在一起,像一个三明治。
“但层与层之间怎么连接?”他问,“如果互动层是中心化的,它怎么保证和账本层一致?”
“靠验证。”顾青说,“互动层可以快,可以中心化,但它产生的每一笔重要记录,都要定期提交到账本层验证。账本层慢,但它验证过的,就是最终结果。互动层可以出错,可以回滚,但账本层不能。账本层是最后一道防线。”
周穆把这张三明治图看了很久。他忽然想起自己以前做世界的方式。旧世界只有一层——公司的服务器。所有事都在这一层上做:账号、交易、聊天、战斗、经济。这一层既要快,又要安全,又要公平。它什么都想要,结果什么都做不好。快了就不安全,安全了就不快。运营团队被这三样东西拉扯着,最后哪一样都保不住。
“所以旧世界的问题,”他说,“不是技术不行,是结构不行。它把所有事都放在一层上,然后逼着这一层同时满足所有要求。它做不到,就假装做到了。等到撑不住的时候,整个系统就崩了。”
“对。”顾青说,“旧世界是单层的。单层系统必然遇到不可能三角。活世界是多层的。多层系统可以绕过不可能三角。”
“绕过,不是打破。”
“对。因为不可能三角是数学事实,您没法打破它。但您可以分层,让每一层只承担一个角。每一层都不完美,但合在一起,就是一个完整的系统。”
周穆在那张三明治图上又加了一笔。他在最上面写了一行字:居民。在最下面写了一行字:世界。中间三层分别是:互动、合约、账本。
“所以一个活世界的结构,”他说,“最上面是居民在互动,中间是合约在守规则,最下面是账本在记记忆。居民住在最上层,他们不需要知道最下层有多慢。他们只需要知道,他们做的事,会被记住。”
“对。这就是信任的成本。”顾青说,“您不能指望一个系统又安全又去中心化又快。您得接受它慢,接受它复杂,接受它需要分层。但您换来的,是一个不会因为某个人关掉服务器就消失的世界。”
周穆把那张纸折起来,放进笔记本。
“顾青,”他说,“我现在明白为什么旧世界永远做不成活世界了。”
“为什么?”
“因为它们不愿意分层。”周穆说,“它们什么都想要。要快,要安全,要控制。它们把所有东西都攥在手里,结果什么都攥不住。活世界要学会放手——把安全交给账本,把规则交给合约,把速度交给居民。自己只保留一个角色——守门人。”
“守门人。”
“对。守在账本和合约之间,保证接口畅通,保证规则不被绕过。它不替世界做决定,它只保证世界能自己做决定。”
那天晚上,周穆回到家,在笔记本上写下了第十五行字。现在纸上有十五行:
它会死吗?
它的东西,是谁的?
它痒吗?痒的时候,会记得是谁挠过它吗?
它知道自己快死了吗?
谁在它里面,搬东西?
它的东西,有没有过去?
它自己能决定什么?
谁能让它自己活?
它记不记得自己?
它记得自己是怎么变的吗?
它靠什么信别人?
它守住底线之后,还剩下什么?
钥匙在谁手里?
它记得多厚?
它几岁了?
他在第十五行下面,又加了一行:
它愿意慢下来吗?
然后他合上笔记本,给自己倒了一杯茶。窗外,城市的灯火一直延伸到海边。在那片灯火的某处,寰宇的服务器还在安静地运转。它很快,很安全,很中心化。它选了速度和中心化,放弃了去中心化。它把所有的记忆都攥在自己手里,所有的规则都由自己制定,所有的信任都靠自己担保。
它很快。但它不能慢。
而一个活世界,愿意慢下来。它愿意把一些东西交给账本,把一些东西交给合约,把一些东西交给居民。它愿意接受自己的不完美,因为只有这样,它才能活。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2026-10-23 22:23
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社