从当初的The Dao到最近的Parity钱包事件,以太坊相关的各类应用安全事故频发,围绕着关于追讨失窃的代币和应对事故的解决方案的讨论在以太坊社区内部越来越热烈。在这些解决方案的讨论中,EIP867的代码提案引发更大的争议,在社区内部掀起了关于区块链的价值信仰冲突和去中心化的民主构想的热议。
由代码提案EIP867激起争议开始,以太坊开发论坛在某种程度上已经变成一片战场,充斥着各种声音的评论、讽刺和协调的尝试,来对这个源自平台开发人员的想法进行修正。
对于那些不熟悉的人来说,这场冲突围绕着一个核心的努力方向,即如何让以太坊的用户更容易追讨回丢失的以太币,在其中突出了用清晰且可执行的形式提交要求给维护这项技术的开发人员的过程。
在以太坊的发展历程中,代币丢失已经不是一个小问题,正演变得越来越频繁。
比如在去年,由于软件库中的代码被意外删除,Parity公司造成了513774.14枚以太币的丢失。而仅在其一个月之前,该公司由于代码错误造成了一万五千枚以太币的遗失。
安全事故不仅仅发生在Parity这一家公司上。在去年,一个发生错误的以太坊地址生成器导致了交易所Kraken和钱包提供商MyEtherWallet数十万计的客户资金损失。还有,尚未知道是软件故障还是简单的拼写错误,都造成了平台巨大的金额损失—一个地址甚至持有价值六百三十万美元的以太币,原因在于其映射的一条代码将资金锁死。
但有的用户认为,以补偿金额的方式来弥补这些丢失的以太币的方案是可以接受的,但出于从数字资产处置权和责任主体的角度来考虑,有许多人对此表示强烈的反对,他们认为,这种解决方案的尝试损害了以太坊平台的诚信,同时还增添了潜在的法律风险。
事实上,一位核心开发人员考虑到接下来可能发生的法律后果,甚至退出了代码编辑这个角色。虽然,这样的冲突和2016年The DAO事件的讨论没有什么区别,反而让人回溯当时社区做出的争议决定:在当时,以太坊以硬分叉的方式来追讨回失窃的三百六十万美元的以太币。
以太坊的创始人Vitalik Buterin在推特上写道:
“对于那些认为在DAO分叉事件中以太坊设置了一把无限延长的滑梯,和开拓了一个可以持续的先例,我鼓励他们观察一下大家在整起事件过程中的反应。”
从这个角度来讲,在EIP867代码提案中爆发的冲突表明了争论的双方都还没有达成一致,并且各自还有许多琐碎的工作需要完成。总体来讲,可以看作双方都对以太坊有着自己不同的理解。
EIP867代码提案:为资金追讨制定标准
在以太坊软件开发环境中,EIP,或者称作为以太坊优化协议(ethereum improvement protocol),是一个进行代码修改并提交到平台加以接受的过程。
为了给以太坊添加新的特征,软件改动是以作为平台范围内的升级形式来执行(有时候被称为硬分叉),但为了到达这个阶段,提案首先需要进行一个严格的验收进程,大致包括了以下四个步骤:
- 首先,如果开发人员对软件改动有了新的想法,这个想法应该以拉取请求(pull request)的形式呈现出来。在一个拉取请求中,改动能够在提案中轻易完成,同时积极听取社区的反馈。在这里,它属于EIP编辑的审查改动范围内。
- 如果EIP编辑认为这个请求在技术上没有错误的地方,并且符合以太坊的社区价值观,他们会将其作为草稿合并到下一个阶段中。
- 在合并之后,如Geth何Parity等以太坊各式各样的软件应用才会诞生,并且如果它们能真的运作起来,这个提案最终被看作是“已接受”。
- 一旦接受以后,整个平台就会根据这个EIP提供的用以运行以太坊软件的多样代码来进行升级。
然而,在这个过程中,EIP867存在着些许差异。最主要的,它本身并不提出任何软件改动的提案,而是简单地勾勒出一个提案需要遵循的框架。
在这点上,它属于另一个被称作是“元EIP”的类别,用以收集并正式确定那些有了确切分类的EIP,在这个案例中,即为“恢复提案”(recovery proposals)。也正因为此,EIP867的开发人员们给了该元EIP一个特别的名字:标准以太坊恢复提案(Standardizing Ethereum Recovery Proposals),或者称为ERP。
在ERP的分类下,鉴于频发的安全事故,目前共产生了几份协议。
在去年四百二十一万美元的资金被冻结之后,Parity公司共起草了数起行动意见计划追回这批资金,但它们在那个时候全部都遭到了严拒。而在当时,有一份由Buterin起草的名为EIP156的提案,具体设计了用以追回Kraken和MyEther钱包失窃资金的解决方案,也用在了其他知名的安全事故案例中。
根据EIP867,这些提案遭拒的部分原因是在于“它们相对特殊的性质和评估其优点时所表现的主观性“,正因为如此,这份EIP提案提供一个“恢复EIP的标准形式和一个用以衡量未来提案的客观标准”。
在最终,如果被接受的话,这份以太坊恢复提案将同样进入到平台上对于代码提案的审核流程。
在目前,EIP867停留在了EIP提交请求到最终接受全流程的第二步,它仍未进入到合并阶段。前任EIP编辑Yoichi Hirai以“该提案与以太坊社区价值观不符合”为由拒绝合并。
Yoichi Hirai在之后辞去了EIP编辑一职,称考虑到如果批准该提案继续而引发的法律方面的顾虑。
也正因为它引起如此之大的分歧,以太坊的开发人员们曾表示,在采取进一步行动之前,该份EIP需要重新评估,来辨明是否真的有任何主观判断的成分包含其中。
反对方观点:代码即为法律(Code Is Law)
当以太坊进行主动升级用以追回在The DAO被黑客偷取的如今价值超过三十亿美元的三百六十万以太币时,一部分社区成员就分道扬镳,创建了名为以太坊经典(ethereum classic)的全新加密货币的平台。
在如今价值低于十亿美元的以太坊经典平台上,DAO丢失的三百六十万个代币从未被恢复,而是永远丢失了。
影响这个决定的信念是“代码即为法律”,意味着在区块链上,所有的执行操作和交易都是不可篡改的,不能被覆盖或者纠正,特别涉及到具体真实金钱时。从这个角度来看,代码错误,如软件漏洞导致的被黑客攻破系统的事件,对开发人员来说尽管痛苦无比,但却是必要的一课。
由于EIP867有可能会引发这更为频繁的修正行为,数以百计的社区成员站了出来在Github上表达了他们的心声,有的还威胁道要迁移到以太坊经典社区。
由于DAO的主要领导者与以太坊基金会有着密切联系,许多人将这三百六十万以太币的恢复行动视为“救市”,而这也是在EIP867的争论中一直存在的关于开发者腐败的指控。
认为这样的改动损害了维系去中心化账本的初衷,软件开发人员Charles Cooper 这样写道:
如果这个过程继续下去,以太坊不再能够被称作是区块链,它只是一个起用矿工对大部分交易进行验证的中心银行。”
反对方担忧的是,EIP867将会赋予开发人员在以太坊平台上过大的权力。通过引用日本监管条例,Hirai称这些资金的动向处置,特别是在所有权不明的案例中,远远超过了开发人员的能力范围,并且使他们很容易倒向腐败、胁迫和贿赂。
在反对方中,亦有较为温和的声音表示,DAO事件的资金回滚是一次性的,而针对追讨资金的软件升级应该随着平台的成熟“罕见且越来越少的”,关于这一点Buterin也表示赞同。
支持方观点:代码仅为过程(Code is a process)
而站在另外一方的以太坊顶层开发人员,争论道资金的所有权是清晰且无可争议,这样的恢复行动应该发动。
在Buterin的EIP156中引用的例子,在特定事件中丢失的资金能够被讨回,根据这个条据,有些人认为这样做是正确的。
交易所Kraken的CEO Jesse Powell在两年前针对EIP156回应时称:
“代表着Kraken,我认为这更像一次赔偿而不是营救。由于以太坊javascript数据库中出现的漏洞,使得Kraken蒙受了巨大的损失。与此同时,损失先由Kraken自掏腰包进行补偿,以此来保护我们的客户。”
Kraken并不是孤例。在事实上,围绕着EIP156也有很多评论认为,代币失窃并非他们的过错,故从责任主体的角度来看也不应由他们来采取赔偿行动。
根据有些用户的看法,以太坊对这些安全事故中的用户负有责任。因此,通过对失窃的资金采取保护行动的花,采用该平台的风险将会最小化,也会逐步扩大其适用性。
尽管社区对于平台上发生的变化形成共识至关重要,但也有人对此表示担心,对于提案的反对意见并不能代表更广泛的以太坊利益相关方。
也有意见认为,因为EIP867本身并不是一个关于资金丢失的解决方案,而是一个对于追讨失窃资金的标准,故关于EIP867提议的改动根本没有引起争议的必要。
事实上,如果最终被平台所接受,此后以太坊的恢复提案将作为标准化的EIP经历更为严苛的审查过程。此外,当一个有争议的提案真正落地实施后,用户可以选择拒绝更新他们的软件,从而与主链发生异步。
原文发布时间为:2018-02-25
本文作者:吴阳煜
本文来源:雷锋网,如需转载请联系原作者。