当前位置: > 快讯 > 正文

一个简单的智能合约模型,看完秒懂智能合约

我问过的每个人对“智能合约”有着不同的定义。下面是我的智能合约定义。最近这些天,我听到越来越的人谈论“智能合约”。但是,当你让他们对“智能合约”这一术语下一个定义的时候,他们不能清晰地表达,这一个概念就像从他们手中溜走了一样。

这不是什么新发现:Peter Todd在听过了多场研讨会以后,也得出了类似的结论。经过多场智能合约的讨论后,我得出了这样的结论:没人真正知道智能合约是什么,如果实现智能合约,将需要预言机(oracles)。

— Peter Todd (@petertoddbtc) December 5, 2014

事实上,我也是没能向Peter清晰阐明智能合约概念的人之一。

现在,对智能合约下一个定义,最简单的回答就是引用富有远见的学者的定义,他们在几十年以前就已经预言了“智能合约”。尼克萨博1997年的智能合约论文是非常简洁和有用的综述。另外,我也真的喜欢Grigg的“李嘉图合约”(Ricardian Contract)。萨博的“自动贩卖机”模型也十分有用。

但是,这些人的理念是在比特币、区块链和密码学货币出现以前提出来的,所以对密码学货币领域的新人来说,他们的定义存在隔阂,不够明显。更加使人混淆的是,现在有许多平台打算实施智能合约。事实上,你可以将比特币看作一个智能合约平台。所以,区分概念和具体实现的不同点变得更加困难。

在这篇文章中,我尽力解释为什么智能合约可能是一个非常棒的理念,然后做出我自己的“智能合约”定义和模型。

可复制、共享的账本( The Replicated, Shared Ledger)

当我思考区块链和分布式账本时,我首先从比特币的最核心创新开始:它教会世界如何在不需要信任第三方的情况下远距离转移价值。(我知道有些人会对此有异议,这个表述可能并不是100%精确–但是我觉得它能为思路带来直觉。)

我们当然可以面对面地转移实体纸币,但是,在比特币出现以前,我们做不到:在不需要信任中心化第三方机构(邮局、银行等)的情况,远距离向某人转移价值。

就好像银行和支付系统的传统转账模式的基础设施被重构为点对点支付网络。这种转变如下图所示:

比特币打开了点对点的电子价值转移模式的大门,完全不同于现在的银行系统、中央银行和支付系统。

但是,上面的图并没有解释比特币是怎样实现点对点价值转移的。

答案是:比特币系统建立在我所称的“可复制、共享的账本”之上。比特币网络中的每个参与者(完全节点)拥有一个完整的交易账本的副本,这一系统的神奇之处在于:它是如何做到使每个人的副本与其他人的副本保持一致的。

所以,正确的示意图应该是下图,每个参与者都能够从相同的可复制、共享的账本中获取信息。

比特币和其它去中心化共识系统的窍门在于:它们怎样保证每个人有一个账本的副本,并使每个人确信自己的账本与别人的账本是同步的。

先把可扩展性等问题放在一边,我们知道这样的架构能够运行:如果每个人拥有的账本的副本是相同的,那么人们就不再需要一个中心化的机构记录谁拥有什么。你知道:当你的账本更新,记录一笔新的资产所有权变动时, 其他人的账本也会发生相同的变动。

我们需要区分:账本记录什么和怎样记录

密码学货币领域的争论和竞争主要集中在:账本如何建构和保证安全。比特币的挖矿算法?以太坊的系统?瑞波币的共识算法?这些争论只聚焦于“怎样做”:怎样保证账本安全?共识过程如何工作?怎样防止坏人?因为不同的密码学货币对于自己可能面临的威胁的本质有着不同的假设,所以他们是不一样的。

但是,在这篇文章,让我们暂时忽视这些“怎样做”的问题,只问自己一个问题:账本记录什么?它可以用于哪些方面?

账本记录什么?

在我最近的一篇博文中,我探索了“可复制、共享的账本”这一概念如何应用到货币以外的领域。我的观点是:一旦你能确定地知道你对世界的观点与其他每个人是一致的,“可复制、共享的账本”在完全不相关的领域会开辟出新的可能性,例如会计领域。Ian Grigg写过关于三重记账法的文章,像tripleentry(三重记账)这样的公司正在探索三重记账法,变革现有的会计行业。

我们可以得到这样的结论:如果我知道每个人“看到”相同的事物,那么我就不再需要花费巨大的成本建立自己的账本,不再需要花费巨大的成本进行账本审计和与其他每个人的账本进行对账、调账。账本自身就可以为我做这些事情。

所以,可复制、共享的账本可能取代现有的商业系统中的记账方式。

哪些领域需要双重记账(duplication)?

一个领域就是在商业逻辑之中(business logic)。在现实的商业中,有无数的这样的例子:合约的双方(或多方)分别独立地运行着一个计算/记账系统,对合约的条款进行建模。我有时候习惯于以银行为例,现在有几个非银行的例子:

大型线上零售商可能拥有一个系统,检查他们从快递公司收到的账单是否正确:所有商量好的打折都实行了吗?

大型杂货店与供应商就打折问题,达成复杂的合约协议。折扣的大小与一定时期内的销售量和许多其它因素有关。我们可以确信:合约的双方都已经开发出一套非常成熟的合约模型,并做成了软件。

以上几个例子的共同点是:合约的每一方都需要独立的手段计算自己在合约中拥有的价值。他们不能相信对方。所以,每一方不得不建立自己的计算/记录系统。这会造成浪费,还需要对账、调账等。

但是回到我在上文所讲的:对于一个可复制、共享的账本,每个人都知道每个人看到的事情是相同的,一方不需要相信另一方是诚实的。

现在想象一下,你的账本也可以运行计算机代码。你需要做的是:

当你与某人商定合约时,你也同意一份代码版的合约。

“合约使用哪个外部数据的信息源,怎么解决纠纷”,双方需要达成共识。

双方都仔细检查代码,确信不存在后门或者恶意漏洞。你也可以进行测试,查看它产生的答案是否正确。双方对它感到满意后,签字并部署到账本上。

现在双方都不需要花费精力在自己的系统中重新实现合约条款,双方都知道这段代码能够同时满足各自的目的。因为它运行在可复制、共享的账本,双方都能够确信程序的输出结果对两个人来说是一样的。

但是我们可以更加科幻

到目前为止,我已经描绘了一种十分平常的应用场景:代表双方或多方之间合约协议的计算机程序。但是,请记住:我们正在构想一个这些程序运行在可复制、共享的账本上的新世界。

如果这些程序能够与账本进行交互,会怎样?程序能够控制账本上的资产,你甚至可以向程序发送资产。所以,它不再只是一个计算机程序,而是一个自足的经济活动参与者。

回到上面提到的杂货店的例子:杂货店可以通过向计算机程序发送货款(数量为A),对供应商进行支付。程序可以计算出可能的折扣额(数量为B),然后将A-B(A减去B)数量的钱发给供应商,但是暂时保管折扣额B–因为我们只有到月底的时候才能确定地知道折扣率。到了月底,合约会将保管的B正确地计算并发给各方。

这个程序不再只是一个计算机程序:它自己就是一个参与者。它对接收到的信息进行回应,它可以接收和储存价值,也可以向外发送信息和价值。

这个程序就像一个可以被信任的人,可以临时保管资产,总是按照事先的规则执行操作。

我认为这就是人们谈论智能合约时想要表达的想法。

下面这个示意图就是我的智能合约模型:一段代码(智能合约),被部署在分享的、复制的账本上,它可以维持自己的状态,控制自己的资产和对接收到的外界信息或者资产进行回应。

我自己的智能合约模型:它是运行在可复制、共享的账本上的计算机程序,可以处理信息,接收、储存和发送价值。

理论上的问题

这就是智能合约的本质。如果更加正式一点,智能合约定义可能如下:

智能合约是由事件驱动的、具有状态的、运行在一个复制的、分享的账本之上的、且能够保管账本上资产的程序。

这只是我的临时性定义。智能合约还有许多理论问题没有解决。我总结了一下,以供将来的研究。

导入真实世界信息

智能合约十分依赖于发送给它的信息的质量。“预言机”和“m个中选n个”(n-of-m)方案可以帮助解决问题。但是,我认为还应该考虑:如果信息源消失了,如果以前独立的信息源合并,如果新的更好的信息源出现了,该怎么办?

构建模型

如果可以有多种方式(例如,程序直接作为账本上的资产或者作为合约)为世界各种现象构建模型,最终选择哪一种,这可能是一种商业上的问题。需要出现最佳实践,以正确的方式为不同的真实世界现象建立模型。

处理程序错误

你写过没有bug的程序吗?智能合约部署后,发现它存在bug,明显地有利于合约的一方,该怎样进行修复? 就像律师可以通过发现合约中的漏洞,赚到许多钱一样,会出现一种通过发现智能合约中的漏洞赚钱的“工程师-律师”吗?

流动性

如果资产由智能合约保管,那么这些资产任何人都不能使用。这将改变许多商业模式的经济逻辑。

合法性

智能合约具有与“真正”合约一样的法律效力吗?如果智能合约的结果违背法律,或者法庭发现它有合约法冲突,怎么办?

隐私

大多数分享的、复制的账本都是公开的。我不知道有多少零售商同意公开自己与供应商之间的合约。

技术问题

底层技术能够满足需要吗?可以进行扩展吗?等等

其它更多的问题

但是,我十分确信社区中的聪明人都在关注并解决这些问题。所以,也许问题只有一个:哪些引人注目的商业情景将率先采用智能合约?

如果你已经看到这里,理解我所说的,我力劝你研究萨博、Grigg和其他这个领域大神的著作,他们比我更好地解释了智能合约领域。

什么是智能合约?

智能合约"(smart contract)这个术语至少可以追溯到1995年,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他在发表在自己的网站的几篇文章中提到了智能合约的理念。他的定义如下:"一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。"让我们更哪轿加详细地探讨他的定义的意思。承诺一套承诺指的是合约参与方同意的(经常是相互的)权利和义务。这些承诺定义了合约的本质和目的。以一个销售合约为典型例子。卖家承诺发送货物,买家承诺支付合理的货款。数字形式数字形式意味着合约不得不写入计算机可读的代码中。这是必须的,因为只要参与方达成协定,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。更进一步地说明:(1)达成协定智能合约的参与方什么时候达成协定呢?答案取决于特定的智能合约实施。一般而言,当参与方通过在合约宿主平台上安装合约,致力于合约的执行时,合约就被发现了。(2)合约执行"执行"的真正意思也依赖于实施。一般而言,执行意味着通过技术手段积极实施。(3)计算机可读的代码另外,合约需要的特定"数字形式"非常依赖于参与方同意使用的协议。协议协议是技术实现(technical implementation),在这个基础上,合约承诺被实现,或者合约承诺实现被记录下来。选择哪个协议取决于许多因素,最李陆肆重要的因素是在合约履行期间,被交易资产的本质。再次以销售合约为例。假设,参与方同意货款以比特币支付。选择的协议很明显将会是比特币协议,在此协议上,智能合约被实施。因此,合约必须要用到的"数字形式"就是比特币脚本语言。比特币脚本语言是一种非图灵完备的、命令式的、基于栈的编悉手程语言,类似于Forth。

什么是智能合约?智能合约有哪些应用?

智能合约介绍智能合约可以帮助你换汇,房子,股份或任何有价值的东西,它以公开透明,没有纠纷的方法完成,同时又避免了中间商的存在。最好描述智能合约的方式是把它和自动售货机的技术相比较。通常情况下,你要找律师或公证,先付他们款,然后等待你的文件。而使用智能合约,你只要发一个比特币到自动售货机(也就是记账),第三方支付,驾照,或任何东西到你的账号。 智能合约部仅定义和传统合约一样的协议的规则和处罚条款,它还自动执行义务条款。智能合约的应用数字身份智能合约可以允许个人拥有和控制包含数据,信誉度和数字资产的数字身份。它允许个人决定向对手披露何种数据纳差,为企业提供深入了解客户的机会,且交易对手不必持有敏感数据来验证交易。这虽然促进了解客户的需求,但减少了责任。此外,它还提高了依从性,弹性和互操作性。记录智能合约可以将统一商业代码(UCC)文件数字化,并自动更新和发布流程,还可以自动地完善贷款人的担保利息信用创建。它们可以自动遵守在未来某一时期要求销毁记录的规则,并使申请自动发放、自动更新或自动请求抵押品的 UCC 留置权成为可能。在执行此类功能时,智能合约降低了法律成本。证券智能合约可以简化资本表管理,能够绕开证券保管链中的中间人,便于自动支付股息,股票分割和债务管理,同时降低了操作风险。结合分布式账本上的证券,智能合约能够将工作流程数字化。在特拉华州,加密签名可能需要有效的立法来澄清当地的公司法允许在分布式账本上注册。发行者自然会想知道他们的证券持有者都是些什么人,但是一些买方公司将保护这些信息。贸易金融智能合约可以通过快速信用证和贸易支付开启来简化国际货物转移,同时获得更大的金融资产的流动性。它们还可以提高买家,供应商和机构的融资效率。磨颂考虑到贸易融资。智能合约程序的行业标准需要更广的接受度。此外,政府必须确定在执行失败的情况下,特别是在纠纷和违约的情况下,法律应当如何界定责任。对于贸易金融而言,结算系统、技术要求和离散生态系统的整合是重要的三元素。衍生产品智能合约可以简化交易后的流程,消除每个交易对手履行的验证交易,在适当的贸易活动中减少重复过程。它们制定了一套标准的合同条款,并优化场外交易衍生产品的交易后处理过程。它们还能够实时评估位置,以便监控和减少错误洞游皮。考虑到衍生产品的智能合约,重要的是要解决与监管改革相关的协议变更。财政数据记录财政组织可以利用智能合约进行准确,透明的财务数据记录。智能合约允许跨组织间进行统一财务数据,改进财务报告并降低审计成本。通过提高数据的完整性,智能合约支持市场稳定性不断增长,此外,它们还通过允许组织之间分摊成本来降低会计成本。分布式账本网络和遗留系统之间的互操作性对于财务报告而言非常重要。抵押智能合约可以通过自动连接各方来完成抵押合同的执行,从而提供流畅且不易出错的体验。智能合约可以在贷款支付时自动处理付款并从土地记录中释放留置权。它们还可以提高所有参与方的记录可见性,并有效促进付款的跟踪和验证。它们减少了人工操作过程中的错误和成本。为了实现这一点,数字身份的核验非常关键。土地所有权记录促进财产转移的智能合约可以防止欺诈,提高交易的透明度和效率,并加强身份的可信度。此外,还能降低审计成本。要实现这一点,政府需要为电子备案制定公共协议。供应链智能合约可以让供应链中的每一步变得实时可见。互联网设备可以将产品从工厂车间转移到商店货架之间的每个步骤都记录下来。它们促进粒度级别的库存跟踪,这有利于保护供应链的融资、保险和风险。这种增强的跟踪和验证技术降低了盗窃和欺诈的风险。如果想让智能合约实现大规模应用,供应链参与者必须证明其身份,包括公司,机构,个人,传感器,设施和产品等。汽车保险智能合约可以改善目前混乱的汽车投保及赔付流程。智能合约可以记录相关政策、驾驶记录和驾驶员报告,允许互联网车辆在发生事故后立即执行索赔。合约能够自动处理索赔,验证和付款过程。每个投保人的存储库中都包括了驾驶记录,车辆和事故报告历史。消除重复的报告也会节省成本。不过,这些都需要跨行业协作来解决技术,监管和财务上的挑战。临床试验智能合约可以通过增加跨机构的可见性来改善临床试验。隐私保护计算改进了机构之间的数据共享,同时可以自动化患者的数据。合约可以简化试验过程,改善对跨机构之间数据的访问,并可以增加患者隐私的可信度。对于在启用区块链的网络上执行的智能合约来说,验证,授权和身份仍然是有待解决的问题。癌症研究智能合约可以促进癌症数据的共享。他们可以促进患者同意管理过程和汇总数据贡献和数据共享,同时保护患者的隐私,这可能需要新形式的区块链技术来提供实时访问和数据保密性。

Defi中的关键 什么是智能合约?

常有人问,什么是智能合约? 那么一定得先了解什么是“合约”。 什么是智能合约? 智能合约(Smart Contract)是上世纪90年代由密码学家尼克·萨博提出的理念,由于当时缺乏可信的执行环境,智能合约没有被应用和发展, 直到 以太坊 的出现,才轮告燃让智能合约得以“复活”。 那智能合约到底是什么呢?简单来说智能合约就是用计算机语言取代了法律语言记录条款并由程序自动执行的合约。换句话说,智能合约就是传统合约的数字化版本,跑在区块链网络上,由程序自动执行。 自动售货机、ATM取款机, 在某种程度上都可以被理解为执行智能合约的机器 ,但这都不是真正意义上的智能合约 设计阶段的智能合约安全注意事项 考虑威胁建模和安全设计 What:从开发生命周期的一开始就实施识别系统的潜在威胁并确定其优先级的具体方案是很重要的 —— 智能合约开发人员应确定要在开发中实施的所有安全控制以及应在开发中检查的所有威胁测试、审计和监控。所有的安全假设,包括攻击的预期复杂程度和手段,都应在设计阶段明确定义和阐明。 How:遵循已知的威胁建模实践。如果开发团队没有内部安全专业知识,那么它应该在设计阶段的早期与安全顾问合作。在设计系统时采用「攻击者」的心态,并假设任何个人、硬件或服务都可能受到攻击。 智能合约有哪些特点 与传统的合约相比,智能合约有三大特点: 1、合约内容公开透明 智能合约部署在区块链上,其合约内容自然是公开透明的。 2、合约内容不可篡改 同样,因为部署在区块链上原因,智能合约的内容是无友旅法被修改的。 3、永久运行 运行在区块链上的智能合约,同样被区块链上网络节点共同维护,只要区块链在,智能合约就能永久的运行下去。有种“链在合约就在”的兄弟情义之感。 有区块链三大特点加持的智能合约,与传统的合约相比主要有如下优势 智能合约是用计算机语言取代了法律语言记录条款、由程序自动执行的合约。 部署在区块上的它,也具备了区块链的数据公开透明、不可篡改、永久运行的特点。 与传统的合约相比, 智能合约有去信任、安全、高效、无需第三方仲裁的优点 。但智能合约并不完美,而且也不智能或者说它的智能程度很低。 文章中提到智能合约的执行无需第三方机构裁决,同时又提到,当执行条件涉及到外部信息时,智能合约无法感知 ,需要对智能合约输入相关的信息腊虚,才能触发智能合约去执行裁决

发表评论

  • 人参与,条评论

热门阅读

最新文章

取消
扫码支持 支付码