新浪博客

无人兜底的智能合约:“指哪打哪”还是“打哪指哪”?

2016-06-20 23:41阅读:
the DAO被攻击事件中,我们看到了一个奇特的现象,就是明明智能合约出现了bug,但是却无人认领。有人说,不是说code is law么,代码写啥啥就是法。这话黑客爱听,这不,黑客声明就说,我以为这就是智能合约打赏给我的,是我应得的,谁拿走我告谁。
如果真的code is law,世界上就不存在有bug的智能合约了。什么叫bug?代码不符合需求的“本意”才是bug。如果代码和本意可以画等号,那么bug就永远只是个传说。如果承认还有个“本意”,那本意就必须得有一个载体——谁的本意?谁对它有最终的解释权?
这个承载着智能合约的“本意”并且对智能合约的本意有最终解释权的主体,非同小可。如果说智能合约的代码是“箭”,那么智能合约的“本意”就是“靶子”。箭射歪了,就是有了bug。如果失去了靶子,智能合约的代码就失去了衡量其正确与否的基准,就成了“打哪指哪”的永远的神射手。在一个智能合约受到攻击的非常时刻,社区非常期盼对这个智能合约的本意有最终解释权的主体站出来说句话,这个智能合约代码是不是你的本意?你是不是本意就是在鼓励这种不当得利?
遗憾的是,就
the DAO这一特定的智能合约代码而言,并不存在这样的主体。代码的开发团队只是一群认同the DAO理念的志愿者,并无对智能合约的最终解释权。这样一来,the DAO智能合约的代码,真的就只好“打哪指哪”了。它的“本意”无色无味地飘荡在空中。它在执行中表现成什么样子,它的“本意”就是什么样子。这是你们要的智能合约吗?当你们为the DAO规避主体责任而欢呼的时候,其实已经种下了缺失兜底保护的祸根。
所以,别说什么code is law。任何code都隐含了对“本意”的某种理解,不是正确的理解就是错误的理解。如果还想追求智能合约的起码质量,心里揣着“本意”的策划者们就要有所担当,站出来,把“本意”靶子高高举起来。越是开放的社区,越应该这样。无人兜底的、打哪指哪的智能合约,一个已经够了,新生事物尚可原谅;再多,就是胡来了。

我的更多文章

下载客户端阅读体验更佳

APP专享