合约设计的维度
经济学家在设计良好的合约中,强调两个重要属性:对当事人的可观察性,对第三方包括审计者和仲裁者的可验证性。在合同法以及数据安全的目标形成的惯例下,我们还能够发现第三种目标:相对性。 我们把合约设计的各个维度剥离出来,将精神耗费的成本从交易的计算成本中分离出来,将可强制执行性进行分级,为合约的各个中间阶段做出表征,在三个设计目标之间讨论平衡的性质。
心智耗费和交易计算成本
智能合约所强调的成本,被经济学家糊涂的混在了“交易成本”这个大口袋中。我们可以将之分解到心智耗费及交易运算成本中。
成本中的一个大类,是预期、同意、并清楚列出各种意外事件的成本。 这些大部分都是心智耗费上的交易成本。比如说,在线搜索工具,就能给意外事件提供更多的信息。
大部分的合约争议,都事关无法预料、难以认清的意外事件。对此,我们缺乏良好的模型。 良好的模型,应该能够对可预见的意外计算成本,其中有些是难以计算的(所以也是无限的成本)。当意外事件没有完全确定清楚,那么合约就是不完整的。
如果合约双方没有聚焦点,那么他们就还没达到“一致性的意见”。而议价过程就是要解决这个问题; 聚焦点相距越远(在价值角度),则议价过程越昂贵。在议价上,存在很多种方法,经济学家对这些方法进行研究,并赋予其专门的名字“机制”。这些机制,包括从简单的讨价还价,到复杂的拍卖和交易。
合约阶段
对于合约的中间阶段,我们使用下面的范式,所用依据来自经济学中所用的两阶段模型:
事前
调查
议价
承诺事后
执行
仲裁
智能合约,常常涉及可信的第三方,类似中介,参与到合约执行过程。还包括仲裁者,当执行过程中产生纠纷时,需要出面仲裁。 中介在调查、议价、承诺和执行过程中,都可能参与。隐藏的知识,或者逆向的选择,在事前发生。 隐藏的活动(道德风险),在事后发生。
下面的例子,是现代的电子商务活动,以及他们需要处理的合约过程:
EDI 承诺、执行
合同起草 议价协商
网络浏览 调查
付款 执行
在线交换 调查、议价、承诺
"我同意" 按钮 承诺
本文覆盖所有节点,并在执行上重点论述。
可观察性,隐藏知情权,隐藏行为
智能合约设计的第一个目标就是“可观察性”,让当事人能够观察到彼此的合约执行情况,或者能够向对方的当事人证明自己的执行情况。大概说来,会计领域的主要任务就是让合同对组织来说,更加可观察。
经济学家探讨的“隐藏知情权”,也称为“逆向淘汰”,在调查和议价阶段,由于缺乏对潜在合作者的观察能力,就会发生。另一个重要问题是“隐藏活动”,也就是所谓的“道德风险”,在合约执行阶段,如果缺乏可观察性,或者缺乏合约退出机制,就会发生。
智能合约最重要的任务,也是传统 EDI 所忽略的,而且是合约的核心属性,“头脑会议”至为重要:对涉及的各方,充分交流协议的语义。 在智能合约中,有大量的机会可以设置“聪明的小字体”(意指将字体打印的很小,让阅读者忽略):由软件执行的动作,但对交易的某一方不可见。
下面是“聪明的小字体”的一个例子:
if (x == true) {
printf("x is false");
}
如果没有用户界面,则智能合约大部分是不可见的,就像新型汽车引擎中的电子电路。这既是好事,也是坏事。从好的方面讲,合同主体人无需跟麻烦的计算机打交道。从坏的方面讲,就是存在“聪明的小字体”这种隐藏动作问题。
要精准的传递交易语义,我们需要针对合约的元素提出良好的可视化隐喻。这样,就能够将协议的细节隐藏起来,但对知情权和合约条款执行的控制,又并不妥协。例如,在将文件放入到信封时,可以进行加密编码,在给文件或者信封盖章的时候,可以使用数字签名。
在线可执行性
在“信息战争”中的各种吹嘘中,一个事实却被忘却,这个事实就是在网络的世界中,无法进行人身上的暴力。 不仅仅是暴力实施的人身伤害,也不能进行逮捕、 关押和其他传统的法律强制措施。 由于这个事实,以及国际化的互联网造成的司法困境,本文专注于防范违约及第三方的种种手段,而并不关注于法律强制手段。
针对防范违约、窃取和干扰的安全手段,我们进行了下面的分类:
预先
- 让违约行为不可能发生
- 在对方违约时,另一方可以退出,且损失最小应对
威慑
- 商誉
- 物理强制
第三方: 侵权法律
损失恢复
- 抵押交易
- 商誉
- 物理强制
当事人: 合同法
第三方: 侵权法律
当前,安全软件最流行的形式,不是预先防范的密码学方式,而是被动应对,全面检查的方法,例如病毒扫描软件,防火墙过滤,黑客追踪等等。 一旦现代的密码学协议广为应用,则天平将倾斜到预防性安全防范一边。
仲裁者的可验证性
应对模式的方法,依赖两个因素: 可验证性和惩罚。 如同在会计控制一章中讨论的那样,在理想的经济环境下,验证失效的分布概率是已知的,所以,就可以在验证成本和惩罚之间进行平衡。 但若是信息不充分,进入司法陷阱,又缺乏担保和抵押,那么损失赔偿的清偿就会非常有限,远远不如依据传统司法归属原则所签订的合同。 商誉的损失成本,在很多情况下,可能是唯一的惩罚。若要应对模式的方法生效,高度可验证性是非常关键的。
所以,我们的第二个目标就是可验证性,即赋予合同当事人以能力,让他能够对仲裁者证明合约执行良好或者合约已被违反,或者给予仲裁者以能力,令其可以用其它方法查证合同执行情况。审计和调查的原则,大致上与合同执行的验证相符。
相对性原则:针对第三方的防护
智能合约的第三个涉及目标是相对性原则,这个原则是指对合约内容和执行情况的了解和控制,必须仅只在必要的范围内传播,以便合同能够执行下去。这个原则来源于合同相对性的普通法原则,该原则指出,除非是指派的仲裁和中介,第三方对于合约的执行,无权发表意见。为了维持知情权和控制,执行情况必须被密封:以防范来自外界的影响,尤其是复杂的攻击。这个观念来自于两方面,一方面是法律相对性的教义,它限制了合同的修改权力;另一方面是产权的观念。
对相对性原则的攻击,体现为第三方的监听者 Eve,她是无意获取了内容和执行情况的人,还有恶意的 Mallet (Eve 和 Mallet 都是密码学中常用来举例的人名)。Mallet 是故意干扰执行或者盗取服务的人。在这种模型下,隐私和机密,或者保护合约的价值信息、合约参与方、以及合约的执行情况,免于 Eve的监听,都可以归于相对性原则,或者叫做产权。在网络世界里,常用的定义“安全”,大致和相对性原则的概念一致。
因此,我们广泛意义上的相对性,就包括了产权,将之视作与某种合约相联系的稳定对象(也就是类似合约中相对性的当事人,即“所有者”)。 相对性原则给出了清楚的边界,边界里面是一套完整的权利,责任,以及用来执行这些责任,并保护这些权利的知识。清楚界定的边界,也就厘清了责任。防范来自外界的干扰,让我们能够将责任聚焦到合约的当事方,他们才应该对合约相关活动带来的后果负责。
在合约设计的目标之间平衡
相对性要求我们将第三方的影响降到最小。 可验证性和可观察性,常常要求我们调用它们。某些内容和合约的执行,要对中介公开。某些内容,以及合约的执行历史,要对仲裁者公开,并信任仲裁者去解决纠纷,公平的执行惩罚。 在智能合约的设计中,我们希望最大化的利用中介和仲裁者,但最小化的对他们公开信息。 常见的结论是,只在发生纠纷的时候,才去打破保密性。
很多方面的执行情况,是要对中介公开的。 我们必须能够信任中介(信用代理,杀毒软件厂商,认证中介,数字货币发行商,等等),相信他们特定的声明(关于商誉,危险的代码范式,身份,货币供应量的保护,等等)。如同里根总统在一个不同的场合所说的那样,“信任但是核查”。为了保护我们的信任,中介必须说服我们他们的声明是真实的。我们必须能够去“检测”他们的真实性,验证某个声明了的交易实际发生了。 在市场经济中,存在的一个完整的职业来执行这个功能:审计。
理想情况下,可观测性和可验证性也包含这种能力,去区分有意违约和无心错误这两者。但实际上,在操作中是很困难的,因为那区别往往在于某种主观的、无从知晓的个人意图。