什么是智能合约
相信看到智能合约这个概念,许多人还是很懵的,不仅是合约,还是智能的。
现在有很多关于智能合约的解释,简要摘录如下
1 | Smart contract — is a piece of code which is stored in the blockchain network (on each participant database) |
- 这是从智能合约的实现角度对智能合约做出的解释
1 | 智能合約(Smart Contracts) 是在Ethereum 區塊鏈中所屬的物件。它們包含程式碼函式以及能夠與其他合約進行互動、做出決策、儲存資料與傳送乙太幣給其他人。 |
- 这是从智能合约的功能角度对其做出的解释
1 | Smart contracts help you exchange money, property, shares, or anything of value in a transparent, conflict-free way while avoiding the services of a middleman. |
- 这也是从智能合约的功能角度对其做出的解释
智能合约首先得是合约,合约的英文名词为contract
,如果不懂这个单词,我们换一个简单点的deal
也是合约、交易、合同的意思,生活中的各种合同其实就是contract
,就是双方或者多方约定好的一个协议,关键在于智能这个限定词,因为合约自古就有,只是有了区块链技术才有了智能合约,下面我们来看一下智能合约如何智能。
先来看区块链中的转账交易,假设账户A转账到账户B,金额为10,且账户A的金额大于10、账户B存在,转账过程如下
1 | 1. A.账户金额 = A.账户金额 - 10 |
以上就是一个合约,合约的内容为:A账户减去10,B账户增加10.
接下来我们把情况搞复杂一点,假设A是一个买家,B是一个卖家,买家想要买卖家的一件商品,但是A出于对B的商品的质量的怀疑,想要先收到货再付款,而B出于对A的人品的怀疑,想要先收款再发货,此时这桩买卖就陷入了僵局;
听到这里,你可能会说这不就是支付宝吗!
是的,这确实是支付宝,但是我们现在用区块链的方法解决这个问题。总的交易过程还是这样1
21. A.账户金额 = A.账户金额 - 10
2. B.账户金额 = B.账户金额 + 10
只不过为了解决信任问题,需要在这两个操作之间加上一些步骤1
2
3
4
51. A.账户金额 = A.账户金额 - 10
2. 智能合约账户金额 = 10
3. A确认收货
4. 智能合约账户金额 = 0
5. B.账户金额 = B.账户金额 + 10
步骤2-4就是新增加的步骤,有了这些步骤就可以促成这笔交易而双方又不必担心财产的损失,当然步骤2-4也就是区块链中智能合约概念中负责智能
的部分。
除了上述购买商品的例子之外,智能合约还可以
- 用于投票,对多个候选人进行投票
- 共同账户管理,比如只有超过特定比例人数的时候才能对账户进行操作
- 作为其他智能合约的库,因为智能合约是通过执行代码来实现的,既然是代码就可以被复用
- 信息的存储,比如健身房会员信息,域名注册信息等
References
https://www.coindesk.com/information/ethereum-smart-contracts-work/
https://medium.com/startup-grind/gentle-intro-to-blockchain-and-smart-contracts-part-1-3328afca62ab