蔡维德:智能合约有三大坑

作者: a5c8b49d9c60 | 来源:发表于2019-01-21 14:22 被阅读17次

    互链脉搏授权发布

    互链脉搏按:蔡维德是互链脉搏专栏作家。他是现任国家特聘教授、北京航空航天大学国家“千人计划”特聘教授。他近些年做了大量区块链的研究工作,并创办“泰山沙盒”推动中国区块链“产业沙盒”建设。我们将蔡维德在互链脉搏的专栏归类并做成集锦,以飨读者。

    本期两篇文章主讲【智能合约】,第二篇可进入【互链脉搏】公号查看。

    2019年1月18日

    智能合约在资产上链后会成为重要工具,如果要买或是卖资产,智能合约可能是许多人选择的工具。所以智能合约的合法性,安全性,可靠性会非常重要

    昨天讲到智能合约的几个重要原则,在实现智能合约机制的时候还是有许多的问题。

    一个非常有趣的历史,Vitalik当时在设计智能合约,他并没有想到法律的问题,所以当我们在2015年讨论的时候,我问法律的问题,他表示根本没有考虑。因此在2016年The  Dao事件发生,主要媒体批判以太坊,提到说这根本不是合约,为什么叫智能“合约”?

    所以在2015年底,IBM公司出超级账本的时候,他们直接把智能合约改名叫做“链上代码”(chaincode),这是一个正确的决定。可是在2016年The  Dao事件发生了之后,大家的决定不是在链上代码上前进,而是考虑把法律真正放在智能合约机制。这代表是说虽然一开始这个名字取错了,阴错阳差,但是大家觉得还是应该把法律放在智能合约里面, 而不是只发展链上代码。现在发展的一个方向是笔者提出的可自动执行部分法规的智能合约。

    第一坑:没有法律的支持

    第一个坑就是没有法律的支持,或者说没有考虑到法律。在2016年后,大家都在研究如何把法律放在智能合约。 大家认为超级账本上的链上代码不会是最终的概念,或者说是不足够的概念,社会要的是可部分执行法规的智能合约,不是链上代码。智能合约上面要有法律法规,承载着一国的法律。这个思想也带动了后来贵阳政府提出的“主权区块链”的概念。

    第二坑:把法规放进智能合约

    第二个坑是直接把法规写成可执行的代码,这并不是一个很难的做法。 例如麻省理工学院OMS(Open Mustard Seed)的项目,就进行了这样的实验。 OMS以喝酒的相关法律为例,在欧洲很多国家相距很近,特别是在两国边境处,可能花几分钟就从一个国家走到了另一个国家。假设一个国家的法律规定,可以喝酒的年龄是18岁,另外一个国家是21岁,如果有一个18岁的人拿着酒瓶喝酒,从一个国家走到另外一个国家,那么他的可以合法喝酒的年龄就改变了,可能的结果是原本不是违法的事到另一个国家就违法了。 把法规放到智能合约上,智能合约通过外部数据输入,得到一个18岁的人正在一个18岁为合法喝酒年龄的国家喝酒,然后跨国过境,到了一个21岁为合法喝酒年龄的国家,此时自动合约会对该人自动执行罚款。该人的账号一定数目的罚款金额就会被拨走。

    为什么说这也是一个坑呢?因为这儿的“智能合约”上承载的是面对大众的法律法规,而不是一个合同,这里的用法应该叫做“智能法规”,它的目的是可以自动部分执行法律法规。但是智能合约应该承载的是合同,合同面向的是合同的相对方,区别于法规面向的是一般大众。因此将法规放在智能合约里不是真正意义上的智能合约。

    第三坑:把合同文本直接翻译成智能合约的代码语言

    现在,美国有一个团队用自动的方法来实现智能合约。他们的做法就是把一个法律合同文本,经过自动或者半自动的处理把合同文本的自然语言转成可执行的代码,这个可执行的代码就变成智能合约。那这个是不是一个好的方法?

    作者认为这还是一个大坑,从一个现实世界中的法律合同,转成一个智能合约,然后去执行法律法规,虽然说出发点是可取的, 但细想一想,一个法律合同,跟一个智能合约,他们本质上到底是不是一个同样的东西?其实不是,因为法律合同背后代表的是一对法律关系,并以自然语言的方式呈现出来。所以合同在形成的时候根本没有考虑到计算机的问题,无论是在组织上还是在语言呈现上,而智能合约本质上来说更多的是一个执行合同的工具。

    所以如果拿一个合同的文本,经过自然语言处理,把它转成一种计算机语言,这恐怕就是一个死胡同,因为二者的本质属性不同。并且合同文本本身的自然语言与计算机的代码语言本身并不能完全对等,如果强行将合同文本转换成智能合约的机器合度语言,今后将会遇到很大的困难,比如说,自然语言某一个词有时候可以有多种释意,代码要如何穷尽所有解释?即使可以穷尽解释,那么执行时,要去选择哪一种解释去执行?

    对于解决方法,也许有人说,要不我干脆在写合同的时候也考虑到智能合约的计算机问题,尽量把自然语言与代码对应起来,简单化合同。这也不太可行,因为计算机自然语言处理技术虽然有很大进步,但是把自然语言变成一个可执行的代码,放在区块链上面使用,又符合区块链三个重要原则,这实在是太难了。所以到底该怎么办?事实上还是有办法的,以后笔者再解释如何解决这个难题。

    感谢大家。

    作者简介:

    蔡维德:北航数字社会与区块链实验室,天德科技 ,国家大数据(贵州)综合试验区区块链互联网实验室, 天民(青岛)国际沙盒研究院, 赛迪(青岛)区块链研究院

    姜嘉莹:美国埃默里(EMORY)大学法学院博士生

    相关文章

      网友评论

        本文标题:蔡维德:智能合约有三大坑

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