“智能合同”是一个含义包罗万象的流行语,可以用来解释一切,从实现区块链(另一个流行语)的价值到律师职业的终结(这不可能正确)。最近,目前世界上最大的智能合同(有个不吉祥的名称,叫做“去中心化自治组织”,简称“DAO”)遭到了“攻击”。对许多人来说,这意味着用计算机代码代替律师的梦想被击碎。这是否是对这一新生技术发出的如同电影《终结者》中“天网”式的警告,预示着过度依赖机器会充满危险?答案既是肯定的,也是否定的。但是,在金融合同领域,我们有办法将人的最佳判断和计算机的高效率结合起来。
在本文中,我们将撇开热闹,对这些流行语进行解码。我们将告诉您“智能合同”究竟是什么东西,为什么人们会关心它。我们还会以通俗的语言解释对DAO的攻击是怎么回事,以及攻击带来的对智能合同的担忧。我们会提出一个解决方案,即人与机器相结合的智能合同数字模拟框架(简称“DnA”框架)。通过相关链接,读者可以研究、检验和完善我们的解决方案,所有资源均开放共享。
智能合同实际上并不那么智能,对吗?
智能合同是指能够自动执行某些功能的合同,例如自动计算待付金额并安排支付程序。自动执行功能是通过一个软件程序实现的。合同各方达成协议后,协议保存在一个安装有上述软件的系统上,然后软件使协议条款生效。这就是智能合同,此外没有别的必要条件。因此,智能合同并不一定真的很智能。智能合同具备一切可能性,可以将合同的整个生命周期或其中一个程序自动化。我们认为,最好的办法介于两者之间,详见下文。
有关于智能合同的更多信息,请看《关于金融市场智能合同的十个要点》(英文)一文。
为什么关注智能合同?
智能合同可以使我们的工作变得更轻松。将一些需要履行的合同程序自动化,如计算、支付和结算程序,可以提高履行速度,并减少出错风险,因为这些程序不需要人工操作。在履行这类任务时,人可能犯错,人工操作也不如计算机快捷。
加入另一个流行语“区块链”后,智能合同的优点便提升了。把智能合同联结在一个区块链(或者其他分布式分类技术)上,可以增加合同的确定性和应对能力。如果让合同代表各方自动履行支付和交付义务,那么这些条款因经过其他无利益关联方的同意而被核实,并且因保存在多个系统上而将免遭攻击,这将是一件好事。这就是区块链的功能(参见《关于金融市场区块链的十个要点》(英文)一文)。结合区块链技术,智能合同可以使合同方的交易方式发生重大变化。
那么“DAO”的问题是什么?
去中心化自治组织(DAO)是一个在特定区块链上运行的应用程序(即以太坊基金组织所运营的区块链)。这种区块链是一种运行智能合同的平台,目的是提供“一套新的法律”,使用数字货币和编程语言来定义和执行合同方“不得违反”的条款。根据这种思路,软件代码就是法律,也是确定合同方权利与义务的唯一依据。程序将执行代码的指令。这个平台上的智能合同即“完全按照编程来运行的应用程序,不存在停工、审查、欺诈或第三方干预的可能性”。
DAO应用程序使用这个智能合同平台来运行集体投资便利设施,不需要一个实体扮演协调或管理角色。参与方存入一定金额的受软件代码管辖的数字货币(称为“以太币”),通过软件代码进行表决,决定数字货币的投资和使用办法。这种方式极受欢迎,截至筹资结束时,已筹集1.5亿美元,成员逾11,000。整个融资过程只基于软件代码的条款完成。
本月初发生了一个意外情况。一个“攻击者”利用了DAO(并非以太坊平台)软件代码的一个漏洞,即“递归调用错误”,在以前的提款生效之前不断地提取数字货币。攻击被发现之时,存在DAO系统内的大量数字货币(价值约5,000万美元)已被转移至DAO成员无法控制的一个独立账户内。下图显示攻击过程:
Click here to view the image.
这次事件引发了许多问题。根本问题是,从技术上讲,这次“攻击”是DAO代码所允许的行为,并没有“破解”代码本身。如果“代码即法律”,那么结果就应当是合法的 – DAO成员根据代码注资,即便发生了意外后果,成员也必须遵守代码的规定。另一种方法是在以太坊的区块链上制造一个分叉(即改变区块链本身),以对攻击进行补救。这种办法与“代码即法律”的理念相悖,但可能更符合集体投资安排的目的,因为集体投资并不只受软件控制。未来会发生什么尚不清楚,由于去中心化的设计缺少集中解决方案,情况将更加复杂。不论接下来将发生什么,实现智能合同完全自动化的信心都受到了打击。把一切交给机器去做的效果并不好。
但事情并不一定就这样完了。假设这个框架允许必要时人工介入,这个事件本应能轻易解决。智能合同的解决方案应当是计算机代码与人工判断的最优结合。我们相信,将“数字”绳与“模拟”绳编织在一起——即计算机与人相结合,发挥各自的优势,便可炮制出一份“真正智能”的合同。我们将这种结合两种方式的框架称为“数字模拟”框架。
如需了解更多信息,请继续阅读。
什么是数字模拟智能合同框架?
金融市场参与者在过去二十年学到的一件事是,市场错综复杂,无法预料某个意外事件出现之后还会发生什么。金融合同需要人作出判断,评估广泛的可能性,并考量远远超过任何合同条款范围的事实与情形。
以“善意”这一概念为例。向一组晶体管解释这个概念并让计算机执行,目前还是科幻(除非运用庞大的代码或极大的计算能力)。另一个例子是违约。尽管在一些情况下,合同可以自动计算出一方违约所带来的损失,但选择对违约方行使权利却是无法计算出的。因为这种选择基于众多因素,包括其他关系、其他资产和其他交易。决定是否对另一方的违约行为行使权利往往是非常微妙的,更像是一门“艺术”,而非“科学”。将上述决定编程只会剥夺合同方有价值的选择权,并很可能浪费大量计算资源。将整个合同转换成代码是缺乏效率的尝试,除非合同极为简单,但金融合同往往并不简单。因此,要使金融合同变得真正智能,需要将人工判断与计算机自动化技术结合起来。
“真正智能”的合同须包含两类条款:一是通过软件编程保证高效自动执行的“数字条款”,二是没有自动化功能的“模拟条款”。数字条款的自动化节约了履行合同的大量人力。比如,需要进行计算、授权常规付款或需要任何其他计算时,(合理编程的)软件可以完美、连贯、高效地完成任务。模拟条款则包含剩余的无法自动化、自动化不经济或不需要自动化的酌情处理因素。这些条款是需要人作出判断或决策时的规则。
在合同通常的生命周期中,如果没有意外发生,大部分条款将自动履行,无需人的介入。常规业务很可能只涉及数字条款。大部分合同在整个生命周期内可能都处于常规业务阶段。一旦出现只有人作出判断合同才能履行的情况(如某一利率未公布),模拟条款便发挥作用。人工介入之后,数字条款可继续生效,以继续自动进行某些程序或计算。
当然,非常重要的是,数字条款和模拟条款应当无缝结合,不会产生差异或不一致的情况。一份“真正智能”的合同(即数字模拟合同)需要同时包含数字条款和模拟条款。
如需更多信息,请继续阅读。
理论虽好,但是否行得通?
为检验这个理论是否行得通,我们用一份简单的利率掉期合同进行了测试。这类合同原本已经高度标准化,符合实现一定自动化水平的要求。另外,现有文件架构对大多数常规合同周期与“异常”事件作出区分。因此,为检验上述理论,我们设计将数字条款仅仅运用于常规周期文件的计算与程序之中。我们发现,这些程序的处理效率大大提升。
下两幅“泳道”图对比显示了效率提高的情况。每一条通道代表人或计算机参与合同的情况,分别显示二者在合同履行中发挥的作用。图1是传统的利率掉期合同流程,从中可见,计算代理人需进行大量计算工作。图2是采用数字模拟模式的同一利率掉期合同,其中大部分计算工作由计算机完成,人仅在计算机难以高效率运作时介入。观察二者的区别可知,数字模拟合同节约了大量人力,同时人在必要时也将介入作出判断与决定。
图1:常规模式下的人工输入
Click here to view the image.
图2:数字模拟模式下的人工输入
Click here to view the image
数字模拟模式的利率掉期合同。图中新增一条通道,代表数字条款。请注意:基本上常规模式下计算代理人所采取的所有行动在本图中均已自动执行。
如需更多有关信息,请参见《数字模拟合同业务流程建模与标注文件》。
从哪里可以获取开源材料?
我们提出的数字模拟框架目前已公开共享,欢迎您对其进行完善。我们已经完成了数字模拟利率掉期合同三要素的讨论稿:
- 数字条款:代表数字模拟合同中自动执行的计算与输入程序。选定合适的平台后,这些伪代码将被转换为功能性计算语言。
- 智能合同确认:纳入IRS定义中的模拟条款,成为数字模拟合同主合同的一部分,并受主合同管辖。
- IRS定义:包含相关定义的模板,可将其纳入数字和模拟条款并实现自动化。该文件只展示我们将要求的需定义转换为代码所使用的方法,并不是一份完整或最终的条款。
上述原型仅供检验和讨论所用,并不用于真实交易。本文提及的所有文件(包括上述三份文件)均在我们的Github库公开共享。您也可从Github库获取与本文相关的更多技术细节。欢迎并期待您对本项目提出宝贵意见。
如想进一步讨论,请联系我们。