Skip to content

2.1 智能合约

Stamp9 edited this page Sep 22, 2021 · 1 revision

智能合约

智能合约是由分布式账本处理的软件。它是一种权限管理工具,可以通过互联网正式化和执行不受信任的参与者之间的协议,并带有内置的合规性和控制。智能合约可以降低双方之间简单协议、组织章程或创建不同类型代币的正式化和执行成本。

~

你会和一个素未谋面的人签订合同,因此不认识也不信任他吗?你会成为外国一家小公司的投资者吗?你会同意借钱给陌生人,比如危地马拉的农民、中国的老师或英国的收银员吗?或者你会建立一个具有法律约束力的合同,通过互联网购买1欧元的商品,比如从艺术家那里购买一首歌?在上述所有案例中,答案可能都是否定的,因为建立必要的法律合同来确保交易安全的成本太高。或者,你可以使用可信的中介来结算此类合同,为他们的服务支付结算费。亚马逊、易趣、Airbnb和优步等许多Web2科技巨头的商业模式是由于缺乏可信的本地价值结算层和以用户为中心的身份系统。智能合约与以用户为中心的身份系统相结合可以为这两个问题提供解决方案。他们可以将个人、机构和他们拥有的资产之间的关系正式化,完全是P2P,而不需要可信的中介。

尽管智能合约的概念并不新鲜,但区块链网络似乎是智能合约实现的催化剂。智能合约的一种更原始的形式是自动售货机。交易的规则被编程到机器中。你通过按下与你想要的产品相关的数字来选择产品,并交入资金。如果你交入足够的钱,机器被编程弹出产品。如果没有,你不会收到产品,或者如果机器卖完了产品,你会拿回你的钱。自动售货机使某些街头小贩过时了,但它们也扩大了服务范围,提供24/7的可用性,而不是人工操作的小贩有限的营业时间。

自我执行协议

智能合约是一种自我执行的协议,被形式化为软件。代码包含一组规则,根据这些规则,智能合约的各方同意相互交互。如果和当预定义的规则得到满足,该协议将由区块链网络的大多数共识自动执行。智能合约提供了有效管理双方或多方之间代币化资产和访问权限的机制。人们可以把它想象成一个密码盒,如果和当特定的预定义条件得到满足时,它会解锁价值或访问权限。因此,智能合约提供了一种公开且可验证的方式,可以将治理规则和业务逻辑嵌入几行代码中,这些代码可以由P2P网络的大多数共识进行审计和执行。

图片: https://uploader.shimowendang.com/f/c1Ew5lKz8zonTwWB.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzIzMDM2OTMsImciOiJsb3FlVzBQMWFNSXpEWUFuIiwiaWF0IjoxNjMyMzAzMzkzLCJ1c2VySWQiOjE2NzcyNjQ4fQ.lkaLY8YMAHTZwIT-y70REbH8d1HHielTTwIi_mQd94U

智能合约可以从区块链网络内部(其他智能合约)和外部(外部数据源)的实体调用。外部数据馈送,即所谓的“预言机”,将与智能合约相关的数据从链外世界注入智能合约。它们可以实时跟踪协议的执行情况,因此可以节省成本,因为合规和控制是在动态中进行的。智能合约降低了协议的交易成本。具体来说,它们降低了(一)达成协议、(二)形式化和(三)执行的成本。如果实施得当,智能合约可以提供优于传统合同法的交易安全,从而降低审计和执行此类协议的协调成本。智能合约还绕过了组织的委托代理困境,提供了更多的透明度和问责制,并减少了官僚主义(阅读更多内容:第2部分——DAO的制度经济学)。

"智能合约"这个术语本身就有点不幸,因为智能合约既不是特别智能,也不反映法律合约:(i)智能合约只能和编码它的人一样智能,同时考虑到编码时的所有可用信息;(i i)虽然如果满足某些条件,智能合约可能有执行法律合约的潜力,但我们首先需要解决许多法律问题,这需要时间以及律师和软件开发人员之间的跨学科讨论。 此外,智能合约安全仍然是一个需要在技术层面解决的问题。需要实施更复杂的合同条款,使智能合约符合法律合同,包括去中心化的争端解决机制。虽然这种发展可能需要更多的时间才能成熟,但一些有趣的争端解决方案已经在开发中,例如“Kleros,” “Openlaw,”或 “Jur”。我们可能会在未来几年看到法律合同和智能合约的融合。在写这本书的时候,最佳实践仍然很少,需要一个集体学习的过程。这项技术还处于萌芽阶段,需要采用法律标准。

图片: https://uploader.shimowendang.com/f/2pw8pLSpvGS0h782.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzIzMDM2OTMsImciOiJsb3FlVzBQMWFNSXpEWUFuIiwiaWF0IjoxNjMyMzAzMzkzLCJ1c2VySWQiOjE2NzcyNjQ4fQ.lkaLY8YMAHTZwIT-y70REbH8d1HHielTTwIi_mQd94U

行业用例

智能合约用例从简单到复杂不等。它们可以用于简单的经济交易,比如从甲到乙汇款。智能合约也可以用于登记任何类型的所有权和财产权,比如土地登记和知识产权,或者管理共享经济的智能访问控制。用例可以在银行、保险、能源、电子政务、电信、音乐和电影业、美术、移动、教育等领域找到。每个协议、过程、任务或支付都可以被集体管理。许多传统的中介机构,如律师、经纪人、银行家或公共管理人员,以及互联网平台可能不再必要,或者至少他们的一些服务可能会过时:汽车可以使用智能合约在加油站加油或在充电杆充电时支付自己的账单。发票可以在产品装运到达时结算。代币化证券形式的智能股票可以被编程来自动支付股息(阅读更多内容:第4部分——资产代币和部分所有权)。

智能合约可以为共享经济提供一个本地结算层,目前由互联网平台运营商代理和处理。智能合约支持的支付的P2P性质降低了交易成本,这意味着小额支付在经济上可能比今天更可行。两个互不信任的同行之间的智能访问控制可以为共享经济提供一个实用的解决方案,而没有集中的平台提供商,他们目前拥有我们不成比例的数据,因此也拥有创造的经济价值。这可能会导致共享经济像吃了兴奋剂一样发展:公寓、汽车、洗衣机、自行车、割草机——一旦所有这些设备都被标记上自己的区块链地址,它们就可以通过充当数字锁的智能合约进行管理。

智能合约的一个更复杂的例子是自我管理森林的用例,比如“Terra0”,以太坊区块链上的智能合约管理德国森林中树木的伐木和销售。无人机和卫星监控森林的生长,并触发智能合约中的事件,比如伐木和出售木材的分包协议。

此外,智能合约可以用于众多行为者之间更复杂的协议,沿着商品或服务供应链,或者用于管理一群拥有相同利益和目标的人,而不需要传统的集中机构。去中心化自治组织(DAO)就是这样一个例子,可能代表了复杂智能合约的最常见形式。智能合约在此正式化了组织的治理规则——如章程、管理法规、程序规则——并用自我执行的代码取代了日常运营管理。

正如我们所知,智能合约和DAO也可能扰乱社交媒体。基于Web2的社交媒体网络以数据的形式从他们赚钱的用户那里提取租金。在Web3中,智能合约可以实现目的驱动的生态系统,用户可以通过获得网络代币奖励从他们的网络活动中受益。其中一个例子是“Steemit”,这是一个去中心化的社交网络,以DAO的形式组织起来,并用网络代币激励用户贡献(阅读更多内容:第4部分——Steemit)。

智能合约和分布式账本也可以成为“物联网”中机器对机器结算的催化剂然而,这要求这种物联网中的所有对象都有区块链身份,因此可以唯一地寻址。每台机器或其他物理对象的可寻址性需要防篡改。这可以通过用所谓的“加密加速器”标记或切割对象来实现,加密加速器也被称为“数字孪生体”加密加速器是一种小型微控制器,经过优化,可以运行最重要的密码算法。它可以有一块水果上贴纸的大小,因此可以作为供应链透明度等用例的基础。有了数字孪生体,任何物理对象都可以发送唯一的数字签名,或者发送和接收代币。将这项技术目前的发展速度预测到未来,并考虑到与物联网、大数据和人工智能等其他新兴技术的融合,我们现在可以想象一个个人、组织和机器可以自由互动的世界,摩擦很小,成本仅为当前的一小部分。

智能合约还可以用来创建和管理加密代币,这些代币可以代表任何资产或访问权限,甚至激励行为。代币可能会成为智能合约最重要的应用之一,有可能彻底改变我们所知的资产管理。这就是为什么本书的最后两部分完全致力于代币的主题。

预言机

区块链网络和智能合约不能从其网络外部访问数据。为了知道该做什么,智能合约通常需要访问与合同协议相关的外部世界信息,以数据馈送的形式,也称为“预言者”。这些预言者是向智能合约提供外部信息的服务,这些信息可以触发智能合约的预定义操作,进而导致分类账的状态变化。这些外部数据要么来自软件(大数据应用),要么来自硬件(物联网)。

~ 软件预言机: 处理来自在线来源的信息数据,如温度、股票或商品价格、航班或火车到达时间等。

~ 硬件预言机: 一些智能合约需要直接来自物理世界的信息,例如,一辆汽车越过障碍物,移动传感器必须检测车辆并将数据发送到智能合约,或者供应链行业的射频识别传感器。

~ 入站预言机: 提供来自外部世界的数据。

~ 出站预言机: 为智能合约提供向外部世界发送数据的能力。

~ 基于共识的预言机: 从人类共识和预测市场中获取数据,如“Augur”或“Gnosis”。然而,只使用一个信息来源可能是不可靠的,因为市场可能被操纵;可能需要预言机评级系统。例如,如果五分之三的预言机可以决定事件的结果,不同预言机服务的组合可能会进一步提高数据可靠性

~ 预言机面临的主要挑战是,人们需要信任这些外部信息来源,无论它们来自网站还是传感器。由于预言机是第三方服务,不属于区块链共识机制的一部分,因此它们不受这个公共基础设施提供的底层安全机制的约束。人们可以在合同和预言机之间复制“中间人攻击”。这个“第二层”的健壮性保证至关重要。不同的可信密码工具和计算技术可以作为解决这些问题的一种方式。如果预言机的安全性没有得到充分的提供,它将成为广泛实施智能合约的一个障碍。

值得注意的是,智能合约不会等待来自外部来源的数据流入系统。该合约必须被调用,这意味着一个人必须花费网络资源从外部世界调用数据。这诱导了网络交易成本。在以太网的情况下,这将是“手续费”的成本。

购买二手车的用例

如果两个人,比如说爱丽丝和鲍勃,不认识也不信任对方,他们通常需要一个可信的第三方作为中介来验证交易并强制执行。有了智能合约和区块链网络,你不再需要那些可信的中介来清算或结算你的交易。以买卖汽车为例:如果爱丽丝今天想从鲍勃那里购买一辆汽车,就需要一系列可信的第三方来验证和认证交易。这一过程因国家而异,但总是涉及至少一个但通常更多的可信第三方:机动车登记机构,以及公证and/or保险公司。这可能是一个复杂而漫长的过程,包括由此产生的费用。如果所有相关当局和公司都使用分布式账本,智能合约可以用来正式确定有效汽车销售的所有规则,包括购买汽车保险单等附加服务的结算。如果爱丽丝想用智能合约从鲍勃那里购买汽车,潜在的过程可能是这样的:

  • 鲍勃将使用互联网找到一项服务,在那里他可以发布他的二手车并定义销售条款,使用智能合约——例如在eBay的一些去中心化版本上。这一步与今天没有什么不同,但是基于智能合约的服务需要兼容Web3,才能与区块链网络通信。这种智能合约服务也可能提供一个也与区块链网络通信的智能车库。因此,鲍勃需要下载一个内置钱包的Web3软件,这将为他提供一个独特的区块链身份——一个带有相关公私密钥对的区块链地址(阅读更多内容:第1部分——密码学)。
  • 爱丽丝也将使用互联网,就像她今天所做的那样。她将在网上搜索鲍勃发布汽车的易趣的去中心化版本。爱丽丝还需要下载一个兼容Web3的浏览器。
  • 如果爱丽丝找到一辆她喜欢并想买的车-比方说鲍勃的车-她会点击"购买",基于智能合约的服务将使用区块链网络来检查鲍勃是否是汽车的所有者,以及爱丽丝是否有足够的可用资金。关于两个州的信息-鲍勃声称出售的汽车的所有权所有权,以及爱丽丝拥有的代币数量-记录在分类账上。点击“购买”按钮后,智能合约服务可能还会让她选择保险计划,选择的保险公司也在分类账上注册,并与智能合约服务连接,提供这种保险(在这样的未来场景中,保险计划可能会实时计算,费率将基于汽车的数据和爱丽丝的驾驶历史)。
  • 如果网络同意这两种状态都是真实的——爱丽丝有足够的资金,鲍勃真的是汽车的主人——区块链网络将爱丽丝注册为汽车的新主人,他们的资金余额会自动更新:鲍勃现在的账户上有20,000个代币,而爱丽丝的钱包里有20,000个代币。爱丽丝随后会收到车库智能锁的访问代码。此外,爱丽丝现在也在她选择的汽车保险公司注册,她在买车时选择了该公司,从而触发了另一个智能合约。
  • 鲍勃现在可以把他的车停在车库里了。他的车在区块链上也有一个独特的身份,现在将被注册为停在车库里,爱丽丝将收到一个通知,告诉她在哪里用她的访问代码取车。
  • 爱丽丝现在可以在指定的车库取车,由连接到区块链的智能锁保护,并由鲍勃和爱丽丝都使用的智能合约管理。她可以用她的私钥解锁车库,这表明她是汽车的合法主人。这辆车是她的,登记在她的名下,并且有保险。

图片: https://uploader.shimowendang.com/f/PA2w1Bq6BgOk27Ja.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzIzMDM2OTMsImciOiJsb3FlVzBQMWFNSXpEWUFuIiwiaWF0IjoxNjMyMzAzMzkzLCJ1c2VySWQiOjE2NzcyNjQ4fQ.lkaLY8YMAHTZwIT-y70REbH8d1HHielTTwIi_mQd94U图片: https://uploader.shimowendang.com/f/BpawVFgYFQXU81AM.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzIzMDM2OTMsImciOiJsb3FlVzBQMWFNSXpEWUFuIiwiaWF0IjoxNjMyMzAzMzkzLCJ1c2VySWQiOjE2NzcyNjQ4fQ.lkaLY8YMAHTZwIT-y70REbH8d1HHielTTwIi_mQd94U

使用智能合约,我们现在可以避免某些机构的手动干预,如机动车管理局、保险公司,在一些国家,如果监管环境允许,公证人也可以这样做。运行区块链协议的每台计算机都将能够检查某人是否是汽车的合法所有者。一旦汽车配备了使用智能合约进行访问控制的数字钥匙,偷车就不会像今天这么容易了。某些自动化过程还需要智能合约与外部软件和硬件的数据馈源的融合,就像在车库拍摄的监控汽车状态的照片一样。作为汽车的所有者,你可以进一步使用智能合约授权其他人驾驶你的汽车,将他们的区块链身份注册到你汽车的智能合约中。

智能合约安全是广泛采用用例的一个重要问题:(一)预言机安全:确保来自链下来源的数据可信;㈡安全编码和正式验证:计算机辅助检查和测试行为规范方面的代码;㈢程序安全和争端解决:额外的链上和链下机制,以解决智能合约运行时使用引起的投诉或不可预见的情况。从安全角度和市场采用角度来看,替代当今使用的智能合约编程语言可能是一个值得解决的有趣方面。智能合约和法律合同的合并是另一个需要跨学科研究和开发的重要问题。此外,智能合约的设计方式应该是,个性化数据只向那些需要知道明确信息的参与者披露。智能合约需要符合隐私保护法规(设计隐私)。

如上所述,许多智能合约用例只能与其他技术交互,如大数据应用程序和“物联网”这种技术的相互作用可以为未来几十年全新的产品、服务和资产类别铺平道路。然而,许多社会政治问题也可能出现。一旦所有物体都被标记了一个独特的区块链地址(身份),因此可以在区块链网络中被唯一引用,如果它们或多或少受到智能软件的控制,这些设备就可以成为人机经济中的自主经济主体。然而,在设计这些系统之前,需要公开讨论(i)我们是否以及如何将任务从人类转移到机器,(i i)这些发展可能会产生什么社会政治影响,以及(i i i)我们希望如何塑造这样的社会现象。

智能合约的历史

尽管“智能合约”一词自比特币和以太网出现以来变得更加主流,但它是尼克·萨博在1996年首次创造的,因此先于区块链网络的发展。正是在网络的早期,萨博指出数字革命不仅会创造新的机构,还会使经济和社会关系正规化。那是以太网出现的20年前,并创造了这个术语的复兴。Szabo用自动验证和执行的数字合同附带的功能来证明“智能”一词的合理性:自动执行协议条款的数字交易日志,目的是履行商定的合同条款。完全用计算机代码自动管理所有相关方的关系和义务。

与传统合同不同,传统合同使用现有法律体系的工具以反应性程序保证合同安全,Szabo认为,智能合约可以通过自动化机制主动防止这种反应性的“事后”安全,使潜在的违约成为可能,但代价高昂。Szabo指出,现有法律体系的反应性程序可以最小化,但永远不会完全消除。为了提供这种主动安全水平,智能合约应该是自动的,并且(a)可观察的,(b)可核查的,(c)可执行的。无论如何,Szabo警告说,(d)数据的隐私必须通过只披露必要的数据来保证,并且只向有权查看数据的缔约方提供。

Szabo非常具体地描述了如何在技术上形式化这些关系,并列出了各种可以使用的密码学方法,如公钥密码学和数字签名,特别是盲签名和零知识证明密码学。Szabo描述的这些密码学方法中的一些可以在比特币的实现中找到。然而,Szabo在思想过程中比中本聪和许多其他比特币和替代区块链网络(如以太网)的早期开发者更有远见。早在1996年,他就提到了更多的隐私保护方法,如盲签名和零知识证明,但这些方法只是慢慢进入区块链世界。这种隐私保护技术也有可能满足欧盟《欧盟国数据保护法》(GDPR)中规定的“设计隐私”的要求,比目前大多数最先进的区块链网络中使用的密码方法好得多(阅读更多:第1部分——密码学)。

Szabo表示,智能合约要“以自我执行代码的形式嵌入现实世界”,必须设计成可信任和抗攻击的,既能抵御有意攻击,也能抵御无意破坏。然而,当时Szabo不知道如何完全去中心化信任,并使这样的系统抵抗女巫攻击,因此描述了可信中介的必要性。他描述了潜在攻击者的经济效用功能,并在概述解决方案时参考了理论计算机科学和信息安全的概念。1998年,他继续将自己关于智能合约的想法发展到P2P价值转移的现实生活中。他想出了一个像黄金一样抗通货膨胀的电子现金的想法,称之为“比特黄金”。比特黄金从未实施,因为Szabo没有找到用女巫攻击防御系统取代可信中介的方法。十年后,比特币的主要突破就是通过引入“工作证明”来解决这个问题。

Szabo设想了不同科学领域的纠缠,以使智能合约形式化,如法律、经济学和密码学,但批评这些学科几乎没有相互交流。然而,他并不是第一个想到合同自动化的人。两年前,伊恩·格里格(Ian Grigg)描述了他对李嘉图合约的想法,具体说明了如何使现实世界的合同机器可读和机器可执行。他想创建一个系统,在协议执行之前,允许保持合约意图以及由此产生的行动的人类可读性,同时通过哈希函数和数字签名等加密技术优化机器认证和处理。他的目标是保证法律文件和相关事项的链接和处理,以提供比传统法律程序更高的透明度和安全性。智能合约和李嘉图合约的第一个混合解决方案已经存在。“Openbazaar”是一个已经与李嘉图合约合作的P2P电子商务平台。

自以太坊项目出现以来,“智能合约”一词经历了复兴。以太坊将智能合约编程的概念与处理协议的底层区块链网络脱钩。与比特币相反,以太坊协议旨在提供一个节省成本的基础设施,人们可以用几行代码创建任何类型的智能合约。以太网启发了更多的项目在类似的智能合约区块链网络上工作,如“EOS,” “Cardano,” 或 “Waves”。所有这些都有不同程度的技术成熟度、可扩展性、网络安全性,并且经常使用不同的智能合约语言。

章节概要

~ 智能合约是一种由分布式账本处理的软件。它是一种权限管理工具,可以在互联网上形式化和执行不受信任的参与者之间的协议,并带有内置的合规性和控制。

~ 智能合约可以降低双方之间简单协议、组织章程或创建不同类型代币的形式化和强制执行成本。

~ “智能合约”一词最早由尼克·萨博于1996年创造,先于区块链网络的发展。当萨博指出数字革命不仅会创造新的机构,还会使经济和社会关系正规化时,还是网络的早期。

~ 智能合约用例从简单到复杂,智能合约最复杂的形式是去中心化的自治组织,智能合约也可以用来创建代币。

~ 智能合约有可能颠覆许多行业。用例可以在银行、保险、能源、电子政务、电信、音乐和电影行业、美术、移动、教育等领域找到。

~ 预言机提供智能合约所需的外部数据,并在满足预定义条件时触发智能合约执行。预言机是寻找和验证真实世界事件并将这些信息提交给智能合约的服务,自动触发区块链的状态变化。预言机的主要任务是以安全可信的方式向智能合约提供这些值。这些数据流要么来自软件(大数据应用),要么来自硬件(物联网)。

~

章节参考&进一步阅读