论DAO应急门

作者: 526ba0512193 | 来源:发表于2018-07-31 17:06 被阅读13次

    每晚八点,我们在社区分享知识,等你。

    NervosFans 微信公号:Nervosfans

    入群请加乐乐微信:sensus113 美果大冰微信:xj73226

    备注入群,谢谢!


    DAO黑恒久远,一黑永流传。

    这个自治以太坊脚本,掌控价值约1.5亿美元(的ETH),风光一时,然后给整丢了。

    后来据说黑客集团一半白一半黑。

    白帽黑客是指白帽匿名者(white hat hacker),其又称为白帽子,是那些用自己的黑客技术来维护网络关系公平正义的黑客,测试网络和系统的性能来判定它们能够承受入侵的强弱程度。

    黑帽黑客就是。。。黑化了的白帽黑客。

    再后来,有人这么总结DAO事件:

    那么,以道教style总结一下DAO事件就是:

    混乱无处不在,看淡吧。就是设计智能合约时,可长点心吧。

    DAO事件生动的为加密之域的子民们上了N课,其中一节,就是“应急门”得有。 此应急门非彼应急门,指的是出现恶意行径时,中止智能合约运行的一种机制,譬如把智能合约回复到低级别的安全模式。

    但是,这里也有个问题,说应急门貌似是跟智能合约的“自治性”不搭调。 好比,智能合约吸引人的地方非常多,譬如:自带确定性光环的可预见性与确定性。 那么,低配应急门机制,面对这些优雅的属性,感觉有点力不从心啊。

    今天,就来介绍一种应急门机制,简单有效又完全的去中心化,因此妥妥符合DAO的信任口味。

    低档应急门

    技术上来说,最简单的应急门机制可以通过在合约中嵌入加密公钥实现,意思是仅允许持有合法密钥的人(看门大爷)激活应急门,把合约推入“维护模式”,然后该调试调试,改重启重启,这套动作用的还是之前开门的密钥。

    想再进一步的话,可以考虑把看门大爷换成多重签名或者共享密钥的智能合约(看门大爷团),这样一来,想解除主合约的操作,就需要满足一定的人数比。

    但是这两种方法看门大爷法,不太适合DAO。 拥为持有密钥的人本身可能是个薄弱点。 说,大爷们可能为了自身利益,干涉DAO运行;或者,大爷们被挟持了;再或者,大爷不小心把工作证丢了然后被他人盗用。 另外,愿意主动接这摊活儿的人,真少。试想,若主合约违法,第一个被刨除兴师问罪的人,是谁?

    所以才说,这种朴实的应急门制,真不适合DAO。

    中档应急门

    说是中高配,不如说是DAO定制。 这种简单的分布式应急门(decentralized escape hatch ,下面简称DEH)机制有三个组成部分:

    缓冲(Buffer):主合约中流出的全部资金需要过一道DEH合约。意思是DEH执行send()调用前,先把资金冻起来一段时间。这个时间是预设的,好比24个小时。这个缓冲期,可以用来检查主合约运行中的错误。

    触发器(Trigger):DEH里有个“倒流”机制,说流进来缓冲的资金,在合约接到明确指令后,可以倒流回去。

    撤消日志(Undo Log):首先,撤销日志与应用关联,这样DEH可以指定相应的恢复操作方法。好比,缓冲资金回流后,撤销日志能确保资金被发回至发起交易的客户端。

    这里边,触发器处理起来相对棘手。 那么,可以考虑以下两种方式的结合:

    1. 可编程不变量(Programmatic invariants )

    这厮可以用作自动触发器。 例如,有个不变量,兑现的token数量等于支付的ETH数量。这种方法,若正确实施,本是可以阻截DAO攻击的。

    但是,不变量也有的弱点若干:难发现,一般是由编写智能合约的人检查发现,所以受盲点影响;还有,比较耗gas,当然了,这得看怎么个比法,若花点gas但是阻截DAO黑客,计较起来没什么意思。

    2.  触发器众包(Crowd-sourced triggers)

    这个方法是引入人为监督,发现那些不变量应付不来的问题。众包触发器中,由一撮预先选出的法定人来叫停缓冲里的交易。 这样做的好处是,首先人们的主人翁意识会比较强,其次还能在运行时审计其脚本,及时发现错误。

    注意,DEH不会以任何形式影响货币的不变性或可替代性。 资金一旦通过了DEH,就是最终的,不可改变的。它只是增加了一个延迟周期,以此允许合约在必要时进行相应的中止操作。

    那么,交易是在何时进行的呢?

    这种分散式应急门脚本中,预定义时间结束后,方可发出资金。 付款等同于传统分布式系统中的“附带后果”,资金被缓冲并分阶段执行, DEH放款之前,资金到不了客户端。 那么,与脚本交互的人内心的OS应该是:24小时到账,这种。

    那么,单个参与者能中止脚本么?

    No。 众包触发器里需要一定的法定人数来激活应急门,可以是53/100、2/3、1/2,具体视情况定。


    总结

    Dapp生态系统扩张,亦或是各种昂贵的试错经验,一定能为智能合约带来更多更有用的构建模块。

    DEH就是其中之一。

    也可以这么理解,DEH是智能合约的金库方案。

    A Decentralized Escape Hatch for DAOs​hackingdistributed.com

    相关文章

      网友评论

        本文标题:论DAO应急门

        本文链接:https://www.haomeiwen.com/subject/nwximftx.html