哪个才是真正的以太坊?——区块链“特修斯之船”
【摘要】如果张三欠了你的钱,时隔多年,张三用克隆技术复制了自己,说克隆体才是张三,原张三的债务关系一律作废。而克隆体除了模样与张三相差无几,在记忆上却是大相径同,完全不承认认识你,更别提欠你钱那档子事。遇到这种情形,你是不是要暴捶张三一顿,并扭送张三到派出所,控诉他的耍流氓行为?
如果张三欠了你的钱,时隔多年,张三用克隆技术复制了自己,说克隆体才是张三,原张三的债务关系一律作废。而克隆体除了模样与张三相差无几,在记忆上却是大相径同,完全不承认认识你,更别提欠你钱那档子事。遇到这种情形,你是不是要暴捶张三一顿,并扭送张三到派出所,控诉他的耍流氓行为?
现在区块链社区就发生了这么一桩公然“耍流氓”行为,不仅没有引起公愤,反被誉为区块链开发团队之良心,区块链应用发展之典范。没错,我说的就是以太坊硬分叉事件,通过修改以太坊软件的代码,在第1920000区块强行把The DAO及其子DAO的所有资金全部转到一个特定的退款合约地址,从而“夺回”黑客所控制的DAO合约的币。
以太坊硬分叉是否成功,取决于一个古老的哲学问题:特修斯之船(The Ship of Theseus)。特修斯之船最早出自普鲁塔克的记载,它说的是一艘可以在海上航行几百年的船,航程中不间断的维修和替换部件,直到船体的每一个零件、每一块甲板都替换了一遍,那么,维修后的这艘船是否还是原来的那艘特修斯之船?如果更进一步,用特修斯之船上取下来的老部件来重新建造一艘新的船,那么两艘船中哪艘才是真正的特修斯之船?
其实生活中,我们并不会为“特修斯之船”而困扰。比如,我们的身体都是由基本粒子和细胞构成的,而且从我们诞生那一天起,一刻不停地进行着新陈代谢,人体皮肤表皮平均3周更新一遍,肝细胞平均5个月就要更新一遍,最稳定的骨骼组织,也只需要10年就更新一遍。今天组成你身体的细胞和元素,与昨天有很大不同,与几年以前几乎完全不同。但是我们仍然认为你还是你,现在的你和几年前的你是同一个人,这是为什么呢?
显然,事物的本质并不取决于构成它的组织与结构,而取决于它的功能与时空的连续性。老子在两千多年前的《道德经》中便解答了特修斯之船:“埏埴以为器,当其无,有器之用。凿户牖以为室,当其无,有室之用。故有之以为利,无之以为用”。意思是揉捏陶土做成器皿,有了器具中空的地方,才有器皿的作用。开凿门窗建造房屋,有了四壁内空虚的部分,才有房屋的作用。所以,实体部分(事物的材质)带来了便利,但它不是功能本身,空虚部分反而是事物的本质,即它的功能。碗之所以为碗,取决于它盛载的功能,而不是它的材质(木、泥、陶、金属)。特修斯之船虽然全体部件都更新了一遍,但船上的乘客还是那些乘客,乘客自买票之后,便建立了与特修斯之船的契约关系,这种契约关系并不会转移到另一艘船,船还是起着将乘客从出发港口到目标港口的客运功能。
区块链便是这样一艘特修斯之船,它在航行过程中也在不停的更新换代,这儿有一个视频,形象化的演示了比特币Satoshi客户端的开发轨迹:https://youtu.be/PfKlee8kLE4。也许最开始Satoshi客户端只是一堆破铜烂铁外加一堆原木,我们可以叫他们“特修斯之船.v.0.0.0.0”,然后经过一段时间的建造,有了初步的船的样子,就可以叫“特修斯之船.v.0.0.0.1”……将来还会迭代到“特修斯之船.v.27.78.1.0”,今天的比特币代码相对于中本聪的版本已是面目全非,但我们从未出现过认知混乱,这是为什么?原因很简单,比特币历史所积累的交易数据我们今天一直遵循沿用,这些交易数据就是区块链之船的乘客,自创世区块始,交易数据与比特币客户端就建立起了契约关系,这些交易数据历史上从未被篡改。
以太坊硬分叉与比特币版本的更新迭代却是云泥之判的两回事,前者用特修斯之船上取下来的老部件来重新建造一艘新的船,却篡改了乘客名单,并声称这才是特修斯之船。原来那艘船并没有像开发者想象的那样消失,仍然航行在原来的航道上。于是就出现了两艘几乎一模一样的船,除了乘客不一样,将来的航道也可能不一样。
哪艘才是真正的特修斯之船?答案不言而喻。如果说版本的软分叉就好比人体的新陈代谢的话,那么硬分叉就像是人体的基因克隆。七年前欠你钱的张三身体细胞可能已经完全更新了一遍,但张三还是那个张三,你们的债务关系、社交关系、共同记忆仍然存在。但若张三克隆了一个自己,试图将债务关系转移到克隆体,你、法庭、社会都不可能认可这种身份的转移。
所以,以太坊硬分叉成功了吗?是成功了,成功的混淆了公众的视听罢了。但是伟人说,你不可能在所有时间欺骗所有人,这种指鹿为马行为的破产是可以预见的。以太坊硬分叉之后,很多不明真相的朋友问,不是说区块链上的数据不可逆转不可篡改吗?为什么以太坊就能改?这儿要澄清一下,虽然以太坊区块链算力不像比特币那么夸张,但以太坊区块链数据仍然是不可篡改的,只不过他们把正确的数据叫作ETC罢了。
还有朋友争辩说,“工作量证明机制的本质是算力即权力,由于最长的链包含了最大的工作量,所以最长链就是最合法的那条链。ETH的算力远大于ETC,ETH区块链的高度要比ETC领先不少,所以ETH才是最合法的那条链。”这又是另一种形式的偷换概念了。在工作量证明中最长链最合法,这没错,但前提是这些矿工在挖同一个版本的区块。打个比方,如果有人发布了一个比特币硬分叉版本,把区块生成速度修改为1分钟1个块,那么这条新版本的区块链的生成速度将远远超过原链,能说这个新版本更合法吗?
修改区块链数据的唯一合法性途径就是51%攻击,以太坊官方能做到吗?显然,他们做不到。但他们很擅长基因克隆,不难想象的是,基因克隆有一次,便会有第二次、第三次。以太坊社区已然分裂为两股势力,这有点像是元胞自动机[1]的生命游戏:“滑翔者”每4个回合,它会向右下角走一格。虽然细胞早就是不同的细胞了,但它能保持原本的形态。“喷枪”则会不停地释放出一个又一个滑翔者。这是个完美的模拟。
滑翔者
喷枪
最后说个笑话吧,A、B、C、D四个人在讨论“以太坊官方能修改区块链吗?”
A:什么叫区块链?
B:什么叫官方?
C:什么叫修改?
D:哪个以太坊?
[1]由冯诺依曼在20世纪50年代提出的模型,散布在规则格网 (Lattice Grid)中的每一元胞(Cell)取有限的离散状态,遵循同样的作用规则,依据确定的局部规则作同步更新。这就构成了一台元胞自动机。