作者:历史文章
白话区块链,从入门到精通,看我就够了!
相信我,任何粗口都无法表达我当时崩溃的内心,对自己,以及对被黑的DAO。
各大论坛上也是彻底炸了锅。但同时一个非常具有魔幻现实主义的的场景出现了:所有人都在齐声咒骂着攻击DAO的黑客,但所有人都只能眼巴巴的看着!
眼巴巴的看着啊朋友们!
大家呆呆地站在原地,看着盗贼一卡车一卡车的把自己的钱烧成灰烬。因为智能合约一旦部署,无法修改,DAO is code, code is law。甚至从这个角度来说,盗贼“并没有犯错”,只是执行了智能合约中的某种隐藏的逻辑(漏洞)。
最为搞笑的是,这个贼偷到一半,居然特么停手了!留了一多半的钱在众筹风投里面,让众多投资者在风中凌乱。
所有人都懵逼了,大家不约而同的都在想:这接下去怎么搞???难道就这么被抢了?
关键是,现在这劫匪是自己决定停下来抢劫的脚步啊,随时都可以再次出发!而且因为所有的transaction都是公开的,任何对EVM工作机制有深度理解的人,都可以通过分析这次抢劫工作的方式,一秒变劫匪好么!整个Ethereum系统可以说是面领着前所未有的重大危机。
万幸的一点是,盗贼利用的漏洞是在DAO分割(split)的代码当中,而分割出去的子DAO需要等28天才能将里面的钱取出来,这给大家带来了一点缓冲的时间和希望。
那么当务之急,就是止血:断绝劫匪继续取钱的能力,以及最终将钱取走的能力。为此大家提出了在ETH上进行“软分叉”。
所谓软分叉,是指不改变任何已经发生的转账和程序执行历史,也不改变整个protocol,但对未来的交易和程序执行作出针对性限制。简单来说就是,希望所有人都能共同抵制对DAO的任何改变(包括黑客的取钱行为)。将未来所有对DAO的操作,暂时放入黑名单,冰封整个DAO的智能合约。
“软分叉”也是“分叉”,从严格意义上来讲,也是对区块链信任程度的一个损坏,因为你可以认为软分叉在挽救DAO,但同样可以认为,软分叉是在“和谐”关于DAO的所有操作,这也是严重有悖于区块链无人控制+无人和谐的核心价值的。
但两害相权取其轻,大家普遍同意了进行软分叉。然而天有不测之风云,在软分叉就要开始的前几个小时,有人发现了软分叉本身是有重大漏洞的。一旦软分叉发生,攻击者可以利用这个漏洞使得整个区块链充满垃圾transaction,导致整个区块链停摆。
唯一的希望之火破灭了,ETH价格再次大跌。
那么留给大家的只有一个选择:硬分叉。
什么是硬分叉呢?简单的来说就是“耍赖”。大家一起,暴力地将已经发生的抢劫有关的所有转账记录全部抹掉,以及整个DAO的智能合约全部重写成一个简单的取款机,然后大家各自取款,回家找妈妈。
听起来喜大普奔?
然而并没有,非常没有,特别没有!
大家想想这什么意思:简单来说,这就是意味着,区块链上的信息是可以更改的;区块链的共识其实是不稳定的,随时可以被抹掉的。
因为这和区块链所提供的核心价值是背道而驰的。
因为这和区块链所提供的核心价值是背道而驰的。
因为这和区块链所提供的核心价值是背道而驰的。
不带这么玩儿的啊!当初不是这么保证我们的好么!
从价值观上来讲,这事儿确实是不能干的,因为对整个Ethereum的信用程度确实有很大损害。但是如果不硬分叉,强盗薅了那么多的羊毛,对整个Ethereum系统的信心(虽然这完全赖DAO自己)也会大打折扣。
前有饿狼,后有猛虎,怎么搞?
社区展开了长时间的辩论,期间各种drama不表。
最后ETH内部分裂,变成了两种货币:一是坚持原教旨主义的ETC,以及进行了硬分叉重置了整个DAO attack的ETH。整个Ethereum市场和信心也陷入了漫长的寒冬。
老董是基本支持ETH的,不光是因为一己私利。我认为,任何早期技术,都应该给予犯错和改正的机会。ETH当时还处在幼年,虽然硬分叉绝对不是一件好事,但两害相权取其轻,还是可以干的。但老董也知道,only time and market will tell。
讲了这样一个小漏洞引发的巨大惨案,想必大家已经了解了在智能合约系统下,安全性的挑战和其他链下系统的不同之处。而且也意识到了这个风险的系统性。
老董自己写了非常多的程序,明白程序漏洞是永远无法避免的。但大家想想,the DAO这么一个简单的逻辑,都会出问题,那么之后更多花哨的,复杂的区块链应用会不会出问题呢?老董觉得,这根本不是一个会不会的问题,问题100%会出。无非就是,什么时候出问题,以及出多大的问题而已。
那么这么巨大的系统性风险,如果没有可能的解决方法,区块链投资还搞什么?搞搞投机好了?
不不不,老董相信,没有过不去的火焰山,尤其当ETH开着一辆用金子坐的车的时候。
本文转载自公众号“老董区块链干货铺”
整编 | WangMe
作者简介:
老董(BS'12, PhD' 17),UIUC计算机科学系博士,主要研究领域:高速低延迟广域网数据传输系统,网络安全与形式验证,博弈论,企业软件定义数据中心架构,分布式系统。
博士期间作为创始成员加入网络安全初创公司Veriflow,现担任核心算法与系统架构技术团队负责人,同时兼任大客户管理和一部分市场运营的工作。
在业余时间,老董是区块链技术爱好者,区块链技术全栈工程师。
点击“阅读原文”,查看公众号所有历史消息。
本文链接:/kp/bi/201712/447.html
来源:白话区块链