原文地址:https://hackernoon.com/blockchain-for-non-techies-3-smart-contracts-104f77277297
智能合约是区块链技术的一个重要组成部分,在这篇文章中我将解释什么是智能合约。但首先,让我们快速回顾一下,我在前一篇文章中,用来解释区块链的一些类比。区块链可以想象成:
- 写在文档上的一份共识协议
- 任何人都能参与维护这份协议,只要他持有这些文档中的一份
- 修改文档的规则
- 对一份文档进行的有效修改,会自动的对剩余文档进行同样的修改。
这样,每个参与者都持有共识协议的一份拷贝,即使这个协议真正修改。
一条区块链会遵循一些特定的规则。不同的区块链的规则也不太一样。最初始的区块链就是比特币,它的规则是:
1 每份文档都包含一系列账号和余额
2 用户拥有账号,并且可以把他们的比特币发送给其他账号
本质上,这些规则就创造了数字货币。下图显示了区块链网络上的一份文档。每个账号右边的数字表示这个账号拥有的比特币数额。
另一个区块链是以太坊。组成以太坊的文档所遵循的规则跟比特币的规则有点相似:
1 每份文档都包含一些了账号和余额
2 账号的所有者可以向其他账号发送交易
注意看的同学可能已经注意到了,以太坊的第二条规则和比特币的第二条规则有些许不同。这个不同就是:以太坊上的有些账号不是由人控制的。这些账号是由一系列指令控制的。
下面的图显示的是以太坊区块链上的一份文档。在这个示例中,账号b,e和g是由指令控制而不是由人控制的:
这些指令就是智能合约。这些指令只是计算机代码而已,其实就是逻辑。如果其他账号发送一笔交易过来,智能合约就会:
- 执行计算
- 存储信息
- 把交易发送到其他账号
上面我们提到过,有指令控制的那些账号不是由人控制的,而是完全自动的。最开始的代码是由人写的,但是一旦智能合约代码上传到区块链上,那么那个账号的逻辑就由智能合约来控制了。
有些人不太喜欢“智能合约”这个词。有人说智能合约其实并不智能。它只是一堆指令而已,人人都能写出这些“合约”,而且人们很可能会写出“笨”的智能合约。
智能合约这个名字也有点误导,因为它其实并不是一个真正的合约。在现实世界中,一份普通的合约,是有法律意义的。如果一份合约的一方,不执行他的义务,那么司法系统就会让他付出代价。相反的是,智能合约却不需要人遵守,它只是自动执行的指令而已。它只能在区块链上向其他账号发送交易。
代码即法律
在签署一份现实世界中的合约的时候,有几个因素很重要。最重要的部分,就是你能不能理解合约中的内容。合约用法律术语描述了各种条件,约定,这些都是你将来要遵守的东西。因此,理解这些法律术语以及司法系统如何解释这些术语就很重要。这也是为什么你总是要小心地约定你的facebook/苹果的协议。如果一份协议要求你把你子女给他们,才能使用他们的服务,这样的协议你会签吗?
其次,一份合约中的条件和期限要受到外部现存法律体系的制约。这就意味着,你不能光看合约的内容,就能确定它一定能执行。现在的法律是禁止你用子女来付款的,即使你同意了。因此,理解法律就很重要。
这些法律限制有时候能起到保护作用,让合约的执行是按照人们的目的而不是合约上写的内容方式来执行。
又学习了。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
学习到了
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
我也是觉得没有法律保护的合约其实不能叫合约,应该叫智能执行,因为现在看到的都是拿来做ICO然后自动发送token的所谓的合约
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
又学习到新知识了,感觉区块链真的好神奇。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit