当前位置:首页 > 区块链新闻 > 正文

智能合约修改权限的约束—The DAO 危机之后智能合约资产保护所面临的问题

来源: 互联网时间:2016-06-23 09:28:00

作者简介:马昊伯,好扑信息科技有限公司CEO。13年的早期比特币莱特币矿工,14年与徐义吉一同创立GemPay 任职CTO,率先在国内实现了比特币支付,并研发了多区块链资产数字钱包竞付宝。15年与元宝网合作建立数字交易平台AllCoin,16年6月创立好扑信息科技有限公司,主要从事区块链技术咨询服务,也在积极探索区块链的2C落地应用。

对于一个成熟的基金,资金怎么用由GP(基金管理人)决定,基金公司又有明确条例去约束GP,有些基金还有有平仓线,净值过低就强制赎回。我之前对DAO也一直有些担忧,在实名的现实社会中,大股东侵吞小股东利益的事情在有严格立法的情况下还时有发生,那么在一个相对匿名的环境中,60%的DAO资产的持有者是不是更容易掠夺小股东的财富呢?大股东发起了一个对自己关联项目的投资,自己领投,其他人跟投,其他人的资金是不是有很大的被侵吞的风险?基于对此商业模式的担忧,即使在The DAO众筹了巨额资金后我也并没有对其进行过多关注。

然而没有想到的是,The DAO居然存在代码上的漏洞,导致了大量资产被盗。这就引发了一个很有趣的问题,一个黑客把一盆水故意撒到了地上,谁有权利把水再放回盆里?

让我们一起来分析一下整个系统都由哪些人组成。The DAO是基于以太坊的,以太坊由以太坊开发团队、以太币持有者、以太坊矿工共同组成。我们先讨论以太坊如何修改规则,开发团队收集了广大人民群众(持币用户)的意见,立法(修改代码)之后提交给矿工,矿工根据人民群众选择运行的节点情况(用脚投票),来决定是否接受新版本。虽然以太坊现阶段是POW(工作量证明)的,但是在修改代码这个点上,矿工是不能自己决断的,他们还是要看广大人民群众(持币用户)的意志,因为一旦矿工自己更新了新代码跑了新算法,与人民的意志不一致了,他们就只能跑出(分叉)自己的一条孤立的链,他们在孤立的链上挖到的以太币人民群众是不承认的。这就产生了一个很有意思的现象:一个POW的系统,在需要进行代码升级的时候,共识算法却是POS(权益证明),他是由人民群众(持币用户)所决定的。但有意思的地方在于,人民群众往往判断力不足容易被迷惑,轻信官方的言论,所以有可能发生以太币官网更新了,大家就升级的情况。如果没有义士奔走相告,有时候硬分叉的升级并不困难。所以从这一点来看,官方的力量很大。而对于矿工,我却不是很担忧,以太币的矿工可能并不如比特币的矿工那么集中,挖掘设备也没那么先进。对于升级,逐利的矿工似乎只能选择与大量持币用户保持步调一致,因为不一致的话,挖的矿就白挖了。

1.pic

以太坊升级的决定权在持币用户手里,是一个股权投票的过程,类似于POS,但是官方具有很大的主导权,这就让事情变得更复杂了。以太坊上是可以承载多种资产的,实际上The DAO众筹之后,The DAO的代币就应该被归类为一类新的资产。这种资产应该与某个主权国家的央行发行了一万亿美元的债券放到以太坊上形成的资产没有什么区别。那么The DAO里面的以太币是什么东西?如果我们把The DAO看作是一家公司的话,The DAO里面的以太币就是现金。

一家公司现金被盗,股东权益受到侵害,股东应该来报案。显然The DAO的股东是其代币的持有者。股东找谁报案?第一反应应该去找The DAO的开发者,但是The DAO的开发者并没有设置交易回滚的机制,那么只能通过代码升级的方式来进行。The DAO的开发人员理论上可以召集所有的The DAO股东停止运行旧的合约,转而运行新的合约来阻止现金的进一步丢失。甚至有可能通过一些机制让还有27天锁定期的币的转移不生效。但游戏没有这么简单,运行The DAO的并不是只有The DAO的股东,所有运行以太坊节点的都人在执行与验证这些The DAO的智能合约。如果与自己所执行的智能合约不一致,他们会拒绝执行的,矿工也同样运行着节点,也存在着相同的问题。

所以问题扩大了,The DAO公司的现金丢了,The DAO的设计者无能为力,只能指望以太坊官方了。我们前文分析过,作为一个去中心化的系统,理论上持有以太币的用户是拥有决定权的。那么以太官方发起一个版本更新,能否获得通过呢?

一个系统一旦出现了分叉,将会引起一些十分混乱的情况,可能在这个系统里我的以太币打给了A,在另外一个系统里我的以太币就打给了B,没有计划性的硬分叉可能会导致以太坊价值的动荡。

那么我们再来分析一下以太币的持有者跟The DAO的持有者有什么关系。有些The DAO的持币者是原来的以太坊的持币者,有些则可能是因为看上了The DAO的这个项目,用法币或者比特币购买了以太币之后投入到了The DAO的系统中。The DAO的良好运转能够让以太坊的价值提高,毕竟是依赖于以太坊的一个子系统。但是以太币的持有者与The DAO的持有者的利益似乎不一定一致。现在以太坊的持有者面临一个选择,要不要冒着硬分叉出技术或者舆论压力的风险保护The DAO的持有者的利益。有意思的是做决策的不是一个人,而是一个集体,如何判断一个集体是否通过也是一件非常麻烦的事情。而以太坊现在似乎还没有投票机制,那是否意味着只能通过硬分叉来进行投票?

最后我们再来看一下黑客,因为没有了解黑客攻击的原理,不知道黑客是否参与了The DAO的众筹,或者购买了The DAO的代币。假如黑客曾经拥有The DAO的代币,那么他就是The DAO的股东。The DAO的公司章程是什么,除了智能合约没有其他任何的东西,The DAO如何进行投资也都是用智能合约写出来的。

现在问大家一个问题,如果只有黑客看到了公司章程里面写着可以在特定的时间内把钱拿出来,而其他人都忽略了这个细节。结果真的只有黑客按照公司章程拿出了钱,那么你是法院你怎么判?黑客与广大用户看到的是同样的一份智能合约,黑客行使了合约赋予给他的权力,黑客法理的错误在哪里?

The DAO危机对区块链公有链提出一个很好的问题,当区块链上的资产(The DAO代币)与区块链自身的资产(以太币)发生冲突的时候,应当如何来抉择?在文中我还提到,如果某国央行发行了一万亿美元的资产凭证在区块链上,也出现了像The DAO一样的问题,被黑客偷了,如何进行抉择?

公有链上假如有N种资产,那么其利益方加上其系统本身应当是N+1种资产。这 N+1种资产自然对应N+1个利益集团。这样会出现一个问题,N种资产的命运可能都被一种资产决定。那么是否意味着公有链的代币资产要比N种资产加起来还要大?但是即便如此,他们的利益还是割裂的。
所以现阶段,我还是比较看好专属链,这样的链可以有好多资产,但他们都是不同发行方根据同一个智能合约发行出来的。在这样的专属链上,不同资产的持有者最好都通过一定的方式持有系统股权。这样,智能合约有问题,大家的行动步调就都会一致。

无论我们用什么共识算法,我们最后需要达成的是人的共识。无论我们用什么智能合约,我么最后约束的还是人与人之间的关系。规则是人制定出来的,最后推翻规则的还是参与的人。区块链与智能合约只是一种技术,简化了人与人的交流,现实社会的问题还是要拿回现实社会分析。

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。