进阶篇1.3 用智能合约保障执行
我们以两种不同的方式研究了区块链。 首先它是一种数据结构,第二它作为传递值的协议。 对于本章的最后一篇文章,我们想要谈谈智能合约的区块链。 除了人工智能,物联网和区块链,智能合约一直是科技界最近两年来最热门的话题之一。 它们是区块链上的软件。
区块链不仅可以托管交易这些简单的交易数据,还可以托管小型程序。 我们将这些程序称为智能合约。 智能合约本质上是在区块链上运行的软件。 一般而言,合同是缔约方之间达成协议的协议。 “智能”来自这些数字合同的自动执行。 它们由许多“if,then”语句组成,这些语句由代码编写并强制执行。 如果符合合同条件,合同将自动执行。
智能合约的承诺
智能合约有望消除对律师或公证人等中间人的需求,从而降低交易成本。最重要的是,他们无需通过中间人,以节省参与者的时间。智能合约不仅可以管理未来加密货币等数字资产的转移,而且可以管理所有有价值的东西,例如股票债券和物业(如房地产)。
例如,房东和房客可以使用智能合约来管理租赁协议。如果租户未能支付租金,智能合约可以自动将租户锁定在公寓外。在这种情况下,if-then语句看起来像:
如果合同地址在每个月3日从地址Y收到金额X,则授予Y入住公寓的权限。如果付款连续2个月失败,则撤销Y入住公寓的权利。
智能合约的另一个潜在用例是分布式的eBay。人们可以构建一个智能合约,其中包含定义拍卖的起始时间和起始出价的截止时间。出价最高者将在拍卖期结束时收到拍卖物。失败的投标人将通过智能合约自动退款。这种分布式的eBay将被视为dApp或分布式的应用程序。
dApps
分布式应用程序或dApp是智能合约的更复杂的应用案例。大多数应用程序和网站使用API(应用程序编程接口)与其底层数据库进行通信。编写良好的API使开发人员可以通过定义系统的各个组件(如操作系统,数据库或软件库)之间的通信来更轻松地提供服务。
Dapps使用智能合约与底层区块链进行通信。想象一下,未来的智能合约图书馆拥有大量可用于各种目的的合约模板。我们已经看到了搭建在以太坊上面的智能合约平台,已经在逐步实现这种趋势。
(上:网页-api-数据库 下:dapp -智能合约-区块链 )智能合约平台
除了以太网之外,还有许多智能合约平台,这是目前最受欢迎的平台,并且拥有最多的开发者活动。其他平台包括Lisk,NEM和Hyperledger,这是以太坊的改进版本,专为企业使用而设计。
很少有人知道比特币也允许部署智能合约。比特币有一种叫做Script的内置编程语言。与Solidity相比,它是一种基本的编程语言,用于在以太坊上编写智能合约。 Solidity是一种图灵完备的编程语言,与比特币脚本相比,它可以实现更复杂的合约。更复杂的代价是更难以编写,分析和保护。
在智能合约背景下的安全性,意味着还要考虑各种合约在场景中的是否可执行。与以太坊的Solidity编写的相比,用脚本编写的比特币智能合约允许更少的复杂性。这限制了它们的潜在用例,但使合同(或程序)的可能状态更容易枚举、检查和解释;从而使合约更容易、也更安全。
值得注意的是,以太坊上最常用的智能合约模板,即ERC20和ERC721标准,不需要图灵完整性。部署在以太坊区块链上的几乎所有令牌都使用这两个标准中的一个,因为它们能更容易地与不同的钱包集成。
他们真的不需要信任机制吗?
智能合约的承诺是允许在无信任环境下自动执行。但他们真的可以实现这个承诺吗?
几乎所有类型的资产都受到您所在地的当地管辖权的约束。这意味着合同无论是否够智能,除了合约本身的信任之外,还需要获得其对应管辖区域的信任。智能合约中的财产并不等于现实世界中的财产。与常规合同一样,这些合约可能会受到不断变化的情况和解释的影响。非法合约没有法律约束力。
我们还必须考虑到,写传统合同需要花费长达多年的时间去研究法律框架,制定不同领域的法律法规。编写智能合约更加困难,因为需要了解其背后的技术。我们需要一个全新的“技术娴熟的智能合约平台”,以便有意义地实施具有法律约束力的智能合约。
还有另一个需要克服的重大挑战。数字世界需要了解真实世界的事件,以便智能合约能够运作和执行。 oracle是一个向区块链或智能合约提交数据的实体。信任问题称为Oracle问题。想象一下在无信任的环境中运行投注平台的智能合约。 oracle需要提交游戏结果才能让智能合约将资金分配给获胜者。由于Oracle决定智能合约的内容,因此它也会控制它的功能。
中心化的Oracles不能视为Oracle问题的解决方案。 因为无论实际实施情况如何,若Oracle谎报数据,则其可能比其诚实行事能获得更多利益。 无论是中心化的还是分布式的,oracle总会付出代价。 诚实地行事必须始终是最有利益激励的,因此必须有强有力的激励措施。 就像我们在上一篇文章中谈到对矿工的激励一样,这是另一个需要博弈论评估和设计激励机制的问题。
Augur和Gnosis等项目正在通过预测市场研究Oracle问题的分布式解决方案。 在这些预测市场获得真实应用之前,它们在游戏上应用相对容易一些。 由于预测市场有可能影响事件的结果,因此丹芬利表示,它们是否能够成为解决方案还有待观察。
引用一句Dan Finlay@danfinlay的理论:由于分布式预测市场可以影响对概率事件的激励机制,所以它们不仅仅是预测工具,而应始终被视为激励工具。
在解决创建具有法律约束力的智能合约和Oracle问题的问题之前,智能合约的使用将仅限于涉及低风险的小型实验领域。潜在案例有:由某些成就触发在游戏中的付款,并由代码对其进行客观真实性验证。
正如Jimmy Song所说:“信任第三方的智能合约消除了无信任的最大特色。”要想在不同领域广泛使用无信任的智能合约,还有很长的路要走,但它们绝对是一个值得探索的概念。
总结
你应该知道区块链是什么。我们将其视为数据结构和一组规则。由于账本具有分布式特性,区块链可以可靠地存储数据。只要他遵守协议规则,任何人都可以在没有任何许可或注册的情况下参与网络。这使得公共区块链具有抗审查、无强权、无需信任和有价值。它不仅可以存储数据,还可以存储去中心化的应用程序。
智能合约可以客观执行那些由代码构建,由多方共同达成共识的协议。它们有可能减少中间人,从而降低成本和节约时间。他们很可能会促进软件开发人员与司法系统之间进行密切联系。在我们看到广泛应用之前,我们必须克服一些障碍。监管机构必须建立一个框架,以便部署具有法律约束力的智能合约,并且还需要制定去中心化的Oracle。
这是本章中关于区块链是什么以及它能做什么的最后一篇文章。在下一章中,我们将学习区块链的工作原理。
https://medium.com/@DelphiSystems/the-oracle-problem-856ccbdbd14f
https://medium.com/@jimmysong/the-truth-about-smart-contracts-ae825271811f