Nick Szabo:智能合约综述


作者:Nick Szabo ( 1996 )

引题

合约(在一个"meeting of the minds"中达成共识的一系列承诺),是使关系正式化的传统方式。合约主要用于商业关系,也可涉及如婚姻等个人关系。在政治领域,合约也很重要,不仅因为“社会合约”理论( "social contract" theories ),也因为在传统上,合约的强制执行,被认为是资本主义政府的基本职能。

无论是由政府还是由其他方式强制执行,合约都是自由市场经济的基本构件。随着数世纪文化演变,合约概念及其相关原则兴起,并被纳入一般法则( common law )。算法信息理论( Algorithmic information theory )表明,这种逐渐形成的结构,其重新计算,通常代价高昂。如果我们从头开始,运用理性和经验,可能要花数世纪时间来再开发如产权这样使现代自由市场可行的复杂概念[Hayek]。

合约一般法则的成功,加上其替换成本高昂,使在适当情况下既保留又利用这些原则,是值得的。但是,数字革命正根本性地改变我们所可拥有的关系。我们来之不易的法律传统,在网络空间时代,哪些部分将仍然有价值?将这些一般法原则应用于在线关系设计的最佳方法是什么?

计算机使算法运行成本可能变得非常高昂( Computers make possible the running of algorithms heretofore prohibitively costly ),使网络能够更快地传输更大更复杂的信息。此外,计算机科学家和加密学家最近发现了许多新的且相当有趣的算法。这些信息( messages )和算法结合起来,可能实现各种新协议。

现在,数字革命,使新机构以及用以正式化关系(这些关系组成这些新机构)的新方式,成为可能。我称这些新合约为“智能合约”,因为它们比它们的无生命纸质先祖具有更多得多的功能这并不意味着要使用人工智能。智能合约是一系列承诺,以数字形式指定,包括协议,在其中,各方执行这些承诺。

嵌入世界的合约( Contracts Embedded in the World )

智能合约的基本思想是,许多种类的合约条款(如留置权[liens],bonding ,产权划定等)可嵌入我们所处理的硬件和软件,以这样的方式,使违约者的违约代价高昂(如果想,其代价有时高得令人望而却步)。自动售货机( the humble vending machine )是一个示例,我们可认为它是智能合约的原始祖先。将潜在损失限制在有限范围(钱箱中的金额应低于机制违反成本),机器获币,并通过一个简单机制( 这个简单机制在具有有限自动机的设计中,造成初学者的水平问题),公平地分发变更和产品( via a simple mechanism, which makes a beginner's level problem in design with finite automata, dispense change and product fairly )。智能合约超越自动售货机范畴,可将合约嵌入各种有价值,并以数字方式加以控制的财产。智能合约以一种动态,主动强制执行( proactively enforced )的形式引用( reference )该资产,并在主动措施必然不足的地方,提供更好的观察和验证。在自动售货机(就像电子邮件)执行自动售货公司与客户之间异步协议这种情况,一些智能合约需要两方或更多方之间的多个同步步骤。

智能合约其他先驱包括 POS( Point of Sale )终端和卡片,EDI(Electronic Data Interchange,用于在大公司之间进行订购和其他交易),以及 SWIFT,ACH 和 FedWire 网络,用于在银行之间转账和清算付款。这些实现了商业安全模型( commercial security models ),但通常几乎没有注意各方的合约需求和义务。

对智能合约的攻击

对智能合约关键思想的一个广泛声明表示,合约应嵌入世界( contracts should be embedded in the world )。该世界机制( The mechanisms of the world )应以这样的一种方式进行构建,让合约:

(a)健壮,以抵制天真的破坏行为( naive vandalism )
(b)健壮,以抵制复杂的,激励兼容的(理性)违约

一个蓄意破坏者可以是一个博弈的一个策略或子策略,其效用至少部分是某人自己负效用(negative utility )的一个函数;或,这可能是合约一方的犯错,而导致的同样效果。 “天真”仅指,对违反后果缺乏事先考虑,以及为实现该违反而花费的资源量相对较少。天真的破坏行为足够常见,必须予以考虑。

(c)复杂的破坏行为( sophisticated vandalism )(在其中,破坏者能够并愿意牺牲可观资源),如第三方军事攻击,是特殊而困难的类型,通常在典型合约中不经常出现,因此我们可将其放在单独类别中,在此忽略它。天真策略与复杂策略之间的区别,已在算法信息论中计算正式化。

合约设计的一些基本原则

武力威胁,是将合约嵌入世界的一种明显方式-让司法系统决定强制执行代理应采取何种实际步骤(包括逮捕,没收财产等)作为对违约的回应。这就是我所说的一种安全措施的反应形式( a reactive form of security )。通过使合约约定可验证verifiable ),如通过在摄像机上记录违约情况,或在合约上签字,以便在法院证明违约 claims ,可最小化调用反应式安全措施的必要性,但不能消除这种必要性。观察进行中的合约以发现违约先兆并最小化损失,也是安全措施的一种反应形式安全措施的一种主动形式( A proactive form of security ),是一种物理机制,它使违约成本高昂,如组合锁,使在没有明确授权的情况下,进入一间包含商业机密的房间的成本很高。

从一般法则,经济理论和经常出现于实践的合约条款中,我们可提炼出,在合约设计方面,四个基本目标。

  • 第一是,可观察性( observability ),即当事人观察彼此履约表现或向其他当事人证明其履约表现的能力。大致说来,会计领域( The field of accounting )主要涉及使组织所参与的合约更加可观察。
  • 第二是,可验证性,即当事人向仲裁员证明合约已经履行或被违反的能力,或仲裁员通过其他方式查明此的能力。审计和调查的原则大致与对合约履约的验证相对应。可观察性和可验证性还可包括,区分故意违约和善意错误的能力。
  • 第三是,私有性( privity ),即对合约内容和履行情况的了解和控制,只应在履行合约所必需的情况下在当事方之间进行分配。这是对合约私有性一般法原则的概括,其指出,除指定仲裁员和中介机构,在合约的强制执行过程,第三方不应有发言权。广义私有性超越此,可正式化一般声明,“这不关你的事”。针对私有性的攻击,体现为第三方 EVE (偷听者),内容或履约情况的被动观察者( a passive observer of contents or performance ),以及恶意 Mallet ,后者主动干扰履约或窃取服务。在这种模式下,隐私和机密性,或保护相关信息( 合约,其各方,其履行情况相关信息)价值不遭受偷听( Eve ),这些都可归入私有性,如产权。安全领域(尤其是智能合约,计算机和网络安全),大致与隐私目标相应。私有性经常与可观察性和可验证性相冲突
  • 第四是,可强制执行性( enforceability ),同时最小化对强制执行的需求。优越的可验证性通常也有助实现这个目标。声誉,内置激励机制,“自我强制执行”协议,以及可验证性,在实现这个目标方面,都可发挥重要作用。计算机和网络安全性也可极大有助使智能合约自我强制执行。

智能合约通常涉及受信第三方,典型是中介(涉及履约过程)和仲裁员(解决因履约或不履约而产生的纠纷)。私有性意味着,我们想要最小化第三方带来的脆弱性。可验证性和可观察性通常需要我们调用它们。调解人必须受信拥有合约的一些内容和/或一些履约情况。仲裁员必须受信拥有一些内容和一些履约历史,以此公平地解决争端和调用惩罚。在智能合约设计中,我们想要最大程度利用中间人和仲裁员,同时最小化与他们的接触。一个一般结果是,仅在发生争议时,才违反保密性。

在未来,跨国公司的规模分布将趋近当地企业的规模分布,从而产生跨国小型企业。法律障碍是,跨许多司法管辖区开展业务而产生的最严峻成本。智能合约可突破这种司法管辖区僵局。智能合约可提升私有性,以此可降低反复无常的司法管辖区所带来的脆弱性。智能合约可提升可观察性或可验证性,以此可降低对这些模糊的地方法律法规和执法传统的依赖。

智能合约设计对合约法和经济学以及战略合约起草的影响,几乎没有得到探索,反之亦然。同样,我推测,这种可能性——极大降低某些类型合约的执行交易成本,以及这种机会——基于智能合约创建新型商业和社会机构,虽然巨大,却鲜有探索。 “ cypherpunks ” 已经探索了一些新协议构建组件所带来的政治影响。电子数据交换( EDI,Electronic Data Interchange )领域,其传统商业交易元素(发票,收据等)以电子方式交换,有时包括加密和数字签名功能,此领域可看作智能合约的原始先驱。实际上,这些商业形式可为智能合约设计者提供良好的起点和渠道标记。

可观察性与隐藏行为

智能合约的一项重要任务(其很大程度上,被传统 EDI 所忽略),对作为合约核心的"the meeting of the minds"至关重要:将协议语义传达给相关方( communicating the semantics of the protocols to the parties involved。在智能合约中,有足够机会进行"smart fine print":软件所采取行动对交易一方隐藏。如,杂货店 POS 机不会告诉顾客他们的名字是否与他们的购买,在数据库中进行了链接。店员甚至也不知道,他们已经在自己的眼皮底下处理了数以千计的这样的交易。通过软件的隐藏行为,顾客正在泄漏自己可能认为有价值或机密的信息,但合约已经起草,交易已经酝酿,以这样一种方式向顾客隐藏交易的那些重要部分。

为了正确传达交易语义,我们需要对合约要素进行良好的视觉隐喻。这些将隐藏协议细节,却不放弃控制合约条款知晓和执行。 CommerceNet 的 SecureMosiac 软件提供了一个原始但很好的示例。通过将文档放在信封中,并通过在文档或信封上加盖印章来进行数字签名,从而得到加密( Encryption is shown )。另一方面,Mosaic 服务器在不警告用户的情况下记录连接,有时甚至记录交易——这是典型的隐藏行为。

加密构建区块( Cryptographic Building Blocks )

基于数学的协议(称为加密协议),是用以执行智能合约中各要素(可观察性,可验证性,私有性和可强制执行性)之间改善性权衡的基本构建区块。与常识相反,对安全而言,模糊性(obscurity )通常至关重要。加密协议是围绕模糊点(称为 keys )进行构建一把 key 的巨大未知随机性,允许系统的其余部分简单且公开。大量随机数的模糊性如此之大,以至于,在宇宙的生命周期中(如果需要扩大到这么大的范畴),不可能进行幸运的猜测,这种模糊性是建立加密协议及智能合约的基础。

近年,出现各种新加密协议。最传统的加密学是 secret key 加密学,其中,Alice 和 Bob(智能合约参与方)使用某单个共享的预先安排的 key ,来加密他们之间的消息。在这些协议中,我们将看到的一个基本问题是需要保密 keys ( keep keys secret ),公钥加密( pubilic key cryptography )有助解决这一问题。在这种技术中,Alice 生成两个 keys——私钥和公钥。她将私钥保密并保护得很好,并发布公钥。当 Bob 希望向 Alice 发送一条消息时,他加密一条包含她公钥的消息,发送这条加密消息,而 Alice 使用她的私钥解密这条消息。私钥提供了一个“trapdoor”,允许 Alice 计算 an easy inverse of the encryption function that used the public key 。尽管私钥和公钥在数学上有相关性,但对于私钥是什么, 公钥不提供任何线索。 RSA 算法是公钥加密学中应用最广泛的一种方式。

公钥加密学还使各种数字签名成为可能。这些证明,一条数据(以下简称为一个“对象”)与对应于签名的私钥进行了主动联系:该对象,被通过该 key ,被进行了主动“签名”。数字签名可能应被称为“数字邮戳”或“数字印章”,因为其功能更类似这些方式,而不是亲笔签名。尤其是,它不像亲笔签名那样具有生物识别性,尽管将输入的密码作为用于签名的私钥的一部分,有时可代替亲笔签名。在许多亚洲国家,通常使用的是一种手工雕刻的被称为“官印”的木块,而不是亲笔签名。每个官印都是独特的,因为独特的雕刻和木纹无法复制。数字签名类似官印,因为每个新生成的 key 都是唯一的,但如果从持有人那里获得 key ,则复制 key 就很简单了。数字签名依赖于这个假设——持有者将保密私钥。

盲签名是一种数字签名和 secret-key 加密协议,它们加在一起,具有可交换性的数学属性,因此可按其应用顺序反向剥离它们( together have the mathematical property of commutativity, so that they can be stripped in reverse of the order they were applied )。其效果是, Bob “签名”了一个对象,他可为这个对象验证其一般形式( its general form ),但无法看到其特定内容( The effect is that Bob "signs" an object, for which he can verify its general form, but cannot see its specific content )。通常,签名 key 定义受签名对象的含义( meaning ),而不是受签名对象的内容(contents ),因此,Bob 不会签名一个空白支票。digital bearer instruments  中使用的盲签名,在其中,Bob 是清算代理人( clearing agent ),而用于 Chaumian credentials 的盲签名,在其中,Bob 是凭据发行者( credential issuer )。

Secret sharing 是一种将一把 key (从而控制使用该 key 进行加密的任何对象)分成 N 个部分的方法,仅需要 N 个部分中的 M 个部分,即可重新创建 key ,但如少于 M 个部分,则不提供有关 key 的信息。 Secret sharing 是在当事者之间分配对对象的控制权的一个有力工具。

zero-knowledge interactive proof 是公钥方式替代方案,用于挑战响应识别( challenge-response identification )。有动机适当对挑战做出响应(且没有向挑战者或任何窃听者透露有关该私钥的任何信息),但未能达到此的正常运行各方,不拥有 key 。目前,ZKIPs 被用于认证( authentication ),并在智能武器中用于“识别敌友”( Identification Friend or Foe,IFF )。

关于谁与谁交谈的信息,如可发现于电话账单上的信息,尽管没有实际内容记录,也可能很有价值。要使 Chaumian credentials 和  bearer securities 的某些隐私 features 在实际网络上得到强力实施,有必要进行消息的机密传递。为了提供这种通信机密性,digital mix 可允许各方通过网络进行通信的同时,无需向网络提供商或外界透露其合作伙伴。在 mix 中,发送者使用链中每个 mix operator 的公钥对消息进行 Russian-doll 加密,并混合每个 operator 的消息,从而阻止 Eve 进行通信分析,从而使全景窃听器 Eve 失去消息追踪。为了使发送方/接收方 pair 保持机密,只需要 1 out of N operators 受信拥有他们的本地通信信息,尽管 Eve 有时可收集相同伙伴之间的大量消息统计信息,以至可最终猜测谁与谁通话。通信方也可以是相互匿名的,并且使用常规加密,需要相信没有其他任何方拥有消息内容( need trust no other parties with the content of messages )。互联网上的 “Mixmaster” 软件实现了digital mix [Mixmaster] 的大多数 features 。

保护 Keys

目前为止,我们假设像 Alice 和 Bob 这样的参与方是单一的( monolithic )。但在智能合约世界,他们将使用基于计算机的软件代理和智能卡进行电子投标( bidding )。 Keys 不必然与身份相绑定,并且,进行这样的绑定任务,比乍一看更加困难。一旦绑定了 keys ,就需要对其进行很好的保护,但是广域网连接很容易 hacking 。

如果我们假设,攻击者能够截听和重定向网络协议中的任何消息,就像在广域网(如 Internet)中那样。那么,我们还必须假设,对于所有商用操作系统,攻击者也能够入侵客户端(如果不是商用计算机),并找到磁盘上的任何 keys 。

对于基于网络的攻击造成的端点操作安全问题,还没有完全令人满意的解决方案,但以下是一种针对基于公钥的系统切实解决此问题的策略:

所有公钥操作都在机器上的一个不可读硬件板内完成,该机器具有非常窄的串行线路连接( 即它仅承载一个简单单用途协议,此协议拥有得到良好验证的安全性)到专用防火墙( All public key operation are are done inside an unreadable hardware board on a machine with a very narrow serial-line connection to a dedicated firewall )。例如,可以从 Kryptor 获得这样的板,并且我相信 Viacrypt 也可能具有与 PGP 兼容的板。对于中心站点而言,这是经济的,但对于普通用户而言,可能不那么实用。除了更好的安全性外,它还具有“硬件加速公钥计算”这样的额外优势。

如果 Mallet 的能力是物理性抓取机器,则较弱形式的 key 保护措施就足够了。诀窍是,将 keys 保存在变化无常的存储器( volatile memory )中。这使 PC 免受物理攻击-破坏 keys 所需做的一切就是关闭 PC 。如果可以将 key 备份隐藏在不同的安全物理位置,这允许该 PC 的用户可对 PC 本身和公用计算机网络上的大量数据进行加密,而不必担心对 PC 的物理攻击会损害这些数据。数据仍然易遭受 "rubber hose attack",在该攻击中,所有者被迫泄露隐藏的 keys 。为了抵御 rubber hose attacks ,可能需要某种形式的 Shamir  secret sharing ——将 keys 分散于不同物理站点。

中间人& PGP 信任网络

Alice 怎么知道她有 Bob 的 key ?实际上,谁能成为一个智能合约的参与方?可仅通过他们的 keys 来对他们进行定义?我们是否需要生物识别技术(如亲笔签名,输入密码,retina scans 等)?

公钥加密软件包“ Pretty Good Privacy”( PGP)使用一种称为“信任网络”的模型。Alice 选择她信任的介绍者,来适当识别其他人与他们公钥之间的映射。 PGP 从那里获取它,自动验证由 Alice 的指定介绍者签署的任何其他 keys 。

PGP 使用两个完全不同的标准来判断一个公钥的有用性:

1)key 确实属于它看起来属于的那个谁吗?换言之,它是否已经由一个可信签名,得到认证?

2)它是否属于一些你可信任来认证其它 keys 的介绍者?

被 Alice 告知第二个问题的答案之后,PGP 可针对 Alice 收集的公钥来计算第一个问题的答案。

PGP 认为已由受信介绍者认证的 Keys 有效。属于受信介绍者的 keys 本身,必须由你或其他受信介绍者进行认证。这种“传递性”引入了隐含的第三条标准。

3) key 是否属于这样的人——你可信任其来引入其他介绍者?

PGP 将其与标准(2)混淆。尚不清楚任何单个人是否有足够判断力来适当执行任务(3),也没有提出一个合理机构来执行任务(3)。这是智能合约中尚未解决的问题之一。

PGP 还可被赋予信任评级,并被编程来计算有效性的加权评分-例如,两个勉强受信( marginally trusted )的签名可能被视为与一个完全受信的签名一样可信。

Alice 的 secret key ring 中的任何 keys ,对 Alice 的 PGP 程序而言,都是“公理”有效的,不需要介绍者的签名。 PGP 还假定,Alice 最终信任自己认证其它 keys 。

被相信的是,PGP 会导致所有公钥的一个去中心化容错信任网络的出现,但由于缺乏可传递性,引入的介绍者链很快变得虚弱。

PGP 的基层方法与传统的公钥管理方案如 X.509 and the related Privacy Enhanced Mail (PEM),形成鲜明对比。这些标准方案替代了称为证书颁发机构( CAs )的介绍者分层体系。

公证人( Notaries Public )

通常被称为“公证”的有两种不同行为。第一种行为是,某人在一个公证人或其他有权 take oaths 的 officer 面前宣誓就誓词。这并不需要公证人知道谁是宣誓者。 第二种行为是,某人在公证人面前“确认”他已按照“自己的 act 和 deed ”执行了文件。第二种行为是要求公证人知道作出“确认”的人。 因此,例如,确认形式如下:

19__年__月__日,____本人亲自出现在我面前,我认识并且我知道签署上述文书的人,并确认他所执行的,与他自己 act 和 deed 相同。

在第一种公证行为中,公证人仅认证宣誓者宣誓该陈述是真实的。在第二种类型中,公证人实际上保证作出确认的人就是他声称的那个人。

认证问题( Problems with Certification )

在“证明身份”方面,公证人的这些角色,与 PEM / X.509 中的“认证机构”(CA)层级和 PGP “信任网络”所宣称的角色,大不相同。实际上,由这些系统生成的认证书( certificates )不做这个事。相反,认证书证明的是, CA 在过去某个时间提出了一个声明。这个( 隐含的 )声明是,那个时候,一个特定 key 属于一个特定的人。该 key 不像亲笔签名那样具有生物特征,因此可以随时转让。此外,CA 可能会对“一个终端用户持有什么 keys ”作出错误声明,而该终端用户可能无法获得 CA 欺诈的证据。如果终端用户提出质疑,CA 也没有任何方式证明其声明是正确的。另一方面,公证人极难伪造签名( autographs ),并极难指望足够经常地摆脱签名来维护自己的职业声誉。

PGP 信任网络和 X.509 模型都存在很多缺陷。一个根深蒂固的等级制,假设了一种`话般的野兽,即一个普遍受信实体。通常,等级制创建僵化结构( rigid structures ),这些结构不符合以下相关知识在真实世界人群中分布的方式—— keys 和 keys 持有者,以及用以准确反映该知识的激励机制。反过来,PGP 区分“ Alice 持有一把 key ”和“ 可信任 Alice 来认证一把 key ”,但其并不遵循第二个声明——可信任 Alice 来验证另一个发行者。几乎没有传递性(transitivity ):看到 Alice 的 key 被 Bob 认证,Bob 是我所知道和信任的,但这还是几乎没有告诉我,Alice 对 Charlie 的 key 的认证是否正确。看到 Alice 被 Bob 认证为一个介绍者,但这几乎没有告诉我,是否可信 Alice 来认证其他介绍者。它确实告诉我,如果 Alice 的声明被证明是错误的,我知道该责怪她;尽管还远不清楚,Alice 是否有任何法定责任( legal liability )。

公钥被用于数字签名时,有一个更严重缺陷。由于声明仅是在过去提出的,因此 PGP 和 X.509 都允许终端用户合理地否认他们“签署过”一个文件。反之,如果某人的 key 被暗中偷窃,或由于其他原因,未采取任何撤销措施,则没有任何方法可以证明,没有人用被偷窃的 key 对文档进行数字“签名”。最后,对于当一个人“认证”一个 key 时,要具体声明什么,没有一个得到广泛接受的法定协议;对于描述一个人所正在做的真正声明,也没有任何内置或得到广泛使用的机制。现实世界的 CAs 有一个令人讨厌的习惯——对自己的错误,或他们所经常做的模糊、草率、有时是隐含的声明所引起的误解,做免责声明。最后,人们可能会对一个 key 提出其他各种声明,如“此 key 属于某个办公室”,“此 key 属于某个服务器”,“此 key 持有人的信用等级良好”,“使用此 key 解密你的 Microsquish Expel 新复本”,“此 key 非常适于从我们的 Web 服务器下载 100 MB 内容”等,X.509 或 PGP 信任网络都没有促进以上这些便利。

我们对公钥加密学的最佳用途知之甚少,以至无法用如此狭窄的语义建立这样确定的方法。作者提出一种机制,用以修改 PGP 信任网络,创建具有以下大致形式的任意证书:

Key about which a claim is being made type of claim, in some standard one-line format (like MIME types) Plain text description of claim Timestamp digitally "signed", Alice's key

换言之,所有关于 keys 的声明都应该是明确的,声明应从读取认证书本身,就很容易知道,该机制不应任意排除任何类型的声明。声明的法定效力可基于文本本身,而不是基于对“认证”的理应含义进行的过分夸张,晦涩且通常含蓄的解释。将会出现标准的声明类型,包括:可能更具传递性的“good judge of judgement”认证书,可为其编写链后软件( chain-following software );非传递性“is-a-person”证书,通过一个物理公证协议(其同时包括亲笔签名和数字签名),直接“绑定”到在传统上得到公证的身份。更可能的是,新的和更有用的认证书类型将不断演化。应该允许这些标准出现在各种可能的终端用途中,就像判例法随着时间推移而成熟,而不是由我们目前非常缺乏经验的理解所支配。

同时,针对中间人攻击,有一种更实际的防御手段:早及频繁地做广告。一个不安全网络的用户,可通过将 key 与持久行为模式相关联,来合理地传达一个 key 的完整性( integrity ):例如,通过从一个持久邮件地址,以持久方式,发布出的消息;在一个 key 服务器上,持久保持一个 key 不受挑战,等。这是 PGP 用户获得对公钥的信任的最实用和广泛被使用的方式,其不需要证书颁发机构或介绍者。那些广泛宣传自己 keys 的人,以及那些众所周知的人,更有可能把 keys 绑定到自己身上。

虚拟角色

“身份”并不是我们可能想要映射到 key 的唯一东西。毕竟,我们用于房屋,汽车等的实体 key ,不必然与我们的身份相绑定-我们可将其借给可信朋友和亲戚,复制它们,等。实际上,在网络空间中,我们可能创建“虚拟角色”来反映这种多人关系,或者相反,反映我们不希望别人进行链接的,我们个性中的不同部分。以下是,从教学呈现上讲,虚拟角色的可能分类方案:

  • 一个 nym 是 一个标识符,其仅链接有关某人的少量相关信息,通常,该信息被该 nym 持有者认为与一个特定组织或社区相关。nym 示例包括电子公告板昵称,笔名,别名和品牌名。一个 nym 可能会在其社区中赢得声誉。例如,一个集团可能出售各种品牌名,每个品牌在其细分市场享有盛誉。有了 Chaumian credentials ,一个 nym 就可利用持有人的其他 nyms 的正面证书,因其得到 is-a-person 证书的证明链接。
  • 一个真实姓名是一个标识符,链接某个人相关的许多不同种类信息,如出生姓名或社会保险号。就像魔术一样,知道一个真实名字,可以赋予其敌人强大力量。它也可以对那些与其和平合作的人,产生重大经济价值,如使用直接营销将产品信息定位给那些最可能对那些特定产品感兴趣的人。
  • 一个角色( persona )是任何持久的行为模式,以及始终如一的分组信息,如 key(s) ,名称,网络地址,写作风格,以及所提供的服务。
  • 一个信誉良好的名称是指,具有良好声誉的一个 nym 或真实名称,通常是因为,该名称带有很多正面凭据,具有良好信用等级,或受到高度评价。公司努力经营有信誉的品牌,而专业人士如医生和律师,则努力使其名称拥有许多好的个人推荐。声誉好的名称很难在各方之间转移,因为声誉假定行为的持久性,但这种转移有时会发生(如品牌在公司之间的出售)。

构建智能合约

盲签名可用于构建 digital bearer instruments ,由一个唯一 key 标识对象,由一个清算代理(clearing agent)发出(issued)、清算(cleared)和兑现( redeemed )。当一个对象被转移,受让人可请求清算代理验证该 key 之前从未被清算过,并请求清算代理发出一个新 key 。清算代理可防止对特定对象进行多次清算,但清算代理也可被防止将转移该对象的一个或两个清算 nyms 连接到特定对象。这些工具有一个“在线”类型,在每次转移期间都会被清算,因此,既可验证又可观察;还有一个“离线”类型,可在不被清算的情况下进行转移,但只有在最终清算时才可验证——通过显示任何中间持有者(其多次转移过对象[对合约的一种违反])的任何清算 nym 。清算代理的隐私,可采用受让人不可链接性,转让人不可链接性或“双盲”的形式(在双盲形式中,通过清算代理,转让人和受让人都是不可链接的)。

Digital cash 是 digital bearer instrument 的首要示例,其中,清算代理是一个银行。Bearer instrument protocols 使在线支付成为可能,同时保证  bearer notes 的可取特征,尤其是不可伪造性(通过清算机制)和转移机密性(通过盲化[blinding])。

对于服务而言,要实现一笔完整的支付交易,我们需要的不仅是 digital cash 协议;还需要一种协议来保证,如果支付发生,该服务将被提供,反之亦然。目前商业系统使用各种技术来达到这一点,如认证邮件,面对面交易,依赖信用记录和收集代理(collection agencies)来扩大信用的适用范围,等。智能合约有可能大大降低许多商业交易中的欺诈,以及降低强制执行成本。

一个凭证( credential )是一方对另一方提出的声明。一个正面凭证是第二方希望透露的,如名牌大学学位,同时,另一方不愿意透露负面凭证如不良信用评级。

一个 Chaumian credential ,是一种加密协议,用于证明一个人拥有其他 nyms 对自己作出的声明,且不揭示这些 nyms 之间的联系。其基于 is-a-person 凭证(真名凭证),用于证明不可链接的 nyms 之间的链接,并防止 nyms 在各方之间的转移。

另一种凭证形式是 bearer credential ,这是一种 digital bearer instrument ,其中,对象是一个凭证。此处,声明中的第二方是指,任何 bearer -声明仅与发行组织的信誉名称相绑定,与持有该凭证的一方的 nym 或真实名称无绑定。

智能财产

我们可将智能合约概念扩展到财产(property)。可通过将智能合约嵌入物理对象来创建智能财产这些嵌入式协议将根据合约条款,自动将用于操作该财产的 keys 控制权,交给正确拥有该财产的一方。例如,一辆汽车可能不可操作,除非与其合法车主完成适当的质询-响应协议,以此防止盗窃。如果一笔借款被取出,被拿去购买那辆汽车,但车主未能完成支付,则智能合约可自动调用留置权( lien ),将对汽车钥匙的控制权给银行。这个“智能留置权”可能比回购人( repo man )成本更低、更有效。还需要一个协议以在“偿还贷款”得到证明时,留置权被移除,同样的,还有在难题及操作异常情况下,移除留置权。例如,在高速公路上行驶 75 英里时,取消汽车运行,这是粗鲁的。

智能财产是指这样的软件或物理设备,其被嵌入所有权可取特征;例如这样的设备,如通过 knowledge interactive proof 所表露,对于缺乏一个 key 所有权的一方而言,这个设备可被认为是价值少得多( devices that can be rendered of far less value to parties who lack possesion of a key, as demonstrated via a zero knowledge interactive proof )。

实现智能财产的一种方法是,通过操作必需数据( operation necessary data,OND):智能财产操作所必需的数据。例如,一个复杂的 OND 可能是操作一个计算引擎所需的专有发射序列( proprietary firing sequence ),一个 CAM 文件是制造一个专用零件所需,等。为了避免服务被盗,ZKIP 是打开设备的一个加密通道所需。为避免泄露 OND 给 Eve,可在通道的设备端结合使用篡改检测( tamper detection )与无人值守开关。

我们还可能使用难以清除的锁定或消极设备( usedand engrained immobilizing or destructive devices )来阻止对智能财产进行热线连接的尝试。

智能留置权是指,各方之间对某个智能财产的共享,通常两方称为所有者和留置权人( lienholder )。该财产可以是所有者或留置权人的直接占有物,分别对应于普通法概念中的“工匠留置权”("artisan's lien" )和“旅馆老板留置权”( "innkeeper's lien” )。智能留置权可能用于保护信贷额度( lines of credit ),保险政策以及涉及智能财产的许多其他种类合约。

怎样收债?明智银行不会放贷,除非要么贷款人可被迫偿还债务,要么通过安全的留置权抵押品,加上一些保守的其按时全额付款声誉函数,对借款进行覆盖。对于所有各方而言,信用和债务都密切相关,并且受到限制。

其中一方的负债( liability ),受到该方留置权的限制,及受到此能力的限制——通过对违约行为(即犯下管辖范围内的合约规定的罪行)的威胁惩罚,来威慑该方。一方可能采取的其他引起负债的行动,如对他人人身或财产的损害,也需要加以限制。稍后再详细讨论这个问题。

许多方,尤其是新进入者,可能缺乏这种声誉资本,因此将需要能够通过安全留置权( secure liens),与银行分享其财产。从实际意义上讲,留置权是一种在“ record 的所有者”和“留置权人”之间共享某片财产的方式,而不是完全由一个拥有人拥有财产。留置权用于许多大型信贷交易,如汽车贷款,抵押,农业贷款等。它们由合约中所指定的司法管辖区强制执行;通常,这种强制执行由政府完成,并由纳税人补贴,而不是由合约各方支付。(实际上,这通常是合约和财产权的情况[ In fact this usually is the case with contracts and property rights in general ],强制执行条款是政府的隐性补贴)。在没有政府的情况下,实施留置权的一种方法是,通过与你私人选择的仲裁员共同签署(只要仲裁员享有良好声誉及合约权,以此可对你采取适当行动)。智能留置权可能会大大扩大此类安排的私密性和安全性。

就今天情况,通常会通过巧妙书写的,来势汹汹的催款信和叮当声,对某人的信用评级产生影响,以此在需要动用留置权之前,解决信用问题。然而,留置权需要可强制执行,以使从长期来看,这些催缴信是可行的。

将合约概念扩展到覆盖一套预先安排好的侵权法( tort laws ),会如何?这些侵权法将由私人仲裁和强制执行代理机构之间的合约来定义,客户可以在这种自由市场“政府”系统中,选择司法管辖区。如果这些私人执业的法律组织(privately practiced law organizations,简称 PPL)对其客户的犯罪活动承担最终责任,或需要确保客户没有背叛或没有未来支付款项,他们可以反过来向其客户索取留置权,或合约条款允许在某些情况下逮捕客户( 如如果客户犯下 PPL 合约中规定的罪行),或(对于更有可能的移动世界旅行和虚拟假名客户 )智能扣押银行账户和投资组合等流动资产。可通过 secret sharing (需要两个或更多个 keys 来解锁加密)来实现对 digital bearer securities 等信息的智能留置权。

其他重要负债( liability )领域包括,消费者负债( consumer liability )和财产损失(包括污染)。需要建立机制,如此,例如,可评估对他人或财产造成的污染损害,并应留有留置权,以便对污染者进行适当起诉并向受害者支付费用。在可量化污染(如 SO2 排放)的情况下,可以建立市场以交易排放权。 PPL 将拥有留置权,以监控其客户的排放并评估其在超出排放权时所应交的费用。

有这样一些危险,在其中,最大危害可能远远超过任何留置权。在这里,一个好的经验法则是,如果风险是针对一个第三方,并且不能对第三方进行留置或投保,则 PPL 不应允许去承担这些风险。允许其客户让非 PPL 各方承担此类风险的 PPL( PPLs that allow their customers to take such risks against non-PPL parties  ) ,将破坏其信用等级。这种风险的一个例子是建造核电站,没有保险公司愿意为其投保责任险。如果该核电站是安全的,则大概应该能够说服一家好的保险公司承担其损害他人财产的可能性。

结论

如今,Digital cash 已经出现,更多智能合约机制正在设计之中。目前为止,对于自动化合约执行很重要的设计标准,来自不同领域,如经济学和加密学,其相互之间交流几乎没有:一方面对这项技术几乎没有了解,另一方面,对其最佳商业用途几乎没有了解。智能合约的想法,是要认识到,这些努力是在追求共同目标,这些共同目标趋向于智能合约概念。

References:

Oliver Williamson, The Economic Institutions of Capitalism
Janet Landa, Trust, Ethnicity, and Identity
The New Palgrave: Allocation, Information, and Markets
Bruce Schneier, Applied Cryptography
Crypto and Eurocrypt conference proceedings, 1982-1994.
"Crypto Rebels", Wired #2, also cypherpunks mailing list
(mail to majordomo@toad.com with body "subscribe cypherpunks")
Perry H. Beaumont, Fixed Income Synthetic Assets
Frederich Hayek, The Fatal Conceit
Ming Li & Paul Vitanyi, An Introduction to Kolmogorov Complexity
and Its Applications
Vernor Vinge, "True Names" (fiction), from True Names and Other Dangers
Mixmaster (ptr to web site)
PGP (ptr to web site)
Tim May, "Cyphernomicon"
David Chaum, "Security Without Identification"
David Chaum, "Achieving Electronic Privacy"
Agorics web site
DigiCash web site

Copyright (c) 1996 by Nick Szabo

permission to redistribute without alteration hereby granted

原文:
http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html
作者:Nick Szabo
译者 & 校对:东林,Altynai热爱 & 东林 @ 币未来 biweilai.com