智能合约其实就是一段可执行的程序片段,由发布人使用一种类似于 JavaScript 或是 Python 的编程语言来编写。就像最开始那个民间担保的案例一样
把合约代码在本地编译成功后发布到区块链上,可以理解为一个特殊的交易(包括可执行代码),然后会被矿工打包记录在某一个区块中。当需要调用这个智能合约的方法时,只需要向这个智能合约的地址发送一笔交易即可。
每个节点的电脑都需要安装以太坊客户端,客户端自带了一个和 JVM 类似的一个 EVM。通过交易触发智能合约后,智能合约的代码就会在 EVM 中执行了。这种方式相当于把程序部署到了非常非常多的电脑上,随时都可以通过交易来触发这些智能合约的执行,也从而完成了分布式程序的部署和调用。
合同bug
要小心智能合同。有程序的地方就会有 Bug
最著名的例子就是以太坊一个叫 The DAO 的应用,它是一个去中心化的风险投资基金,以智能合约的形式运行在以太坊区块链上。它也是一个盈利性的去中心化自治组织,它将利用自己掌控的以太币资金通过投资以太坊上的应用为其成员创造价值。在 The DAO 创建期,任何人都可以向它的众筹合约发送以太币,获得 DAO 代币。 因为 The DAO 这个程序写得不好,黑客在其智能合约里找到 Bug,把所有的钱给调走了,大约 7000 多万美刀。这成为有史以来最大宗的数字劫案
此文章为4月Day14学习笔记,内容来源于极客时间《左耳听风》,强烈推荐该课程!