入门 | 智能合约入门: Part 1

hongji   |     |   3340 次阅读

如果你听说过以太坊,那么你很可能也听说过“智能合约”。在不深入挖掘技术细节的情况下,让我们看看智能合约的有趣之处。

我们先从一个简单的例子开始。假设Alice、Bob和Mike三个朋友合伙创业。他们为自己的公司创建了一个银行账户,每个人都将自己的钱存进了公司的账户。他们都是公司的创始人,因此都有权访问该账户。再假设在三人出现意见分歧之后,Bob打算自立门户。他知道自己有权进入公司的银行账户,因此秘密将所有资金取出,用作新公司办公室的首付。

在没有智能合约的情况下,为了防止出现上述状况,Alice、Bob和Mike需要一个“可信的”第三方——很可能是银行。他们会赋予银行对资金的控制权,并创建某种取款协议。例如,将公司账户的钱取出之时,要向银行出具一份由三位合伙人共同签署的表格。之后由银行决定是否符合取款要求,继而将钱相应地分配(或不分配)出去。

1

如果银行系统被黑怎么办?如果出现银行挤兑,Alice、Bob和Mike在提取公司资金之时,银行拿不出足够的钱怎么办?如果银行为了贪污故意将他们的账户从银行记录中抹去该怎么办?虽然这些情况都不可能发生,Alice、Bob和Mike在将银行当做可信的第三方之时确实要承担这些风险。

因此,如果他们不想将太多的控制权让渡给银行的话怎么办?Alice、Bob和Mike可以使用智能合约代替银行。智能合约能够高水平地安全保管这些钱,并控制在什么情况下可以将钱取出。智能合约能够保证,当且仅当符合提款要求,钱能够被取出。例如,Alice、Bob和Mike决定只能在至少两位合伙人给出明确许可的情况下才能将钱取出。

你可能会觉得,无论是将钱交托银行还是智能合同,其流程都大致相同。在两种情况下,Alice、Bob和Mike都是先存钱,再决定一个提款协议。如果一切都能像他们期望的那般顺利,这两种流程会产生相同的结果。区别在于智能合同能避免中间人贪污的风险,而且中间人很可能会向Alice、Bob和Mike收取服务费。

2

智能合约实现的并非是一类全新的交易,而是去信任交易。Alice、Bob和Mike不用相信其他人或组织(如银行)能够像他们所期望的那样行事,只需相信智能合约的代码。一旦代码被执行,就无法取消、无法编辑。因此,只要他们做好尽职调查,先审核好代码再与之交互(这个任务可不轻松),Alice、Bob和Mike就可以确定该代码能像他们预期的那样运行。无论其它参与者有多居心叵测,他们只能在智能合同代码的许可下才能采取行动。因此,只要Alice、Bob和Mike了解代码会允许什么样的行为,他们就能相信任何合作伙伴都会规范行事。他们不用担心Bob会挪用资金,银行会贪污款项,或是Alice会在合约上添加允许她将钱打入自己账户的代码。代码是公正的。

以上讨论的是关于多重签名(multisig)钱包的一则例子。欲知详情,请阅读这篇文章。不过,智能合约还有很多用途。它可以用于供应链管理、分布式治理、身份管理、支付、投票、预测市场等等。

随着越来越多的交易发生在区块链上,人们只会变得越来越需要了解智能合约。在学习上没有过早或过晚之说。如果你想学习如何编写自己的智能合约,你可以查看这份文件


原文链接: https://medium.com/pennblockchain/an-introduction-to-smart-contracts-installment-1-e13f246138e9
作者: Aaron Diamond-Reivich
翻译&校对: 闵敏 & Elisa

本文由作者授权翻译及再出版。作者的领英


你可能还会喜欢:

教程 | 如何在Ethereum上编写自己的CryptoKitties风格的游戏
教程 | 你的第一个Truffle分布式app (1)
教程 | 以太坊编程的简单介绍 ,Part-1

 
2 人喜欢