在上一篇【智能合约】有多智能? 里面,大家可能对智能合约充当什么作用大概有了个印象,但是对智能合约具体是如何工作的,可能还心存疑惑,所以今天做个深入探讨!
智能合约的工作内容
我们以以太坊为例,其实智能合约就是 以太坊上面的程序,就是基于以太坊上各种加密货币的合约。用于监管、分配数字货币的发放、流通,读取、记录数字货币的交易详情。如果把以太坊比作银行的话,那么智能合约就像是银行内的操作系统,只要有资金流动,就必须经过系统处理记录!也就是说只要有交易发生,就会触发智能合约!
智能合约与传统程序的区别
发布
传统程序需要发布者自己提供或者租赁服务器,只需要把自己的产品比如数据库、网站、应用程序、app等放到自己服务器上,开发者只需要支付服务器的费用,并且维护好服务器,即可保证程序正常运行,而不用再花费额外的费用。
智能合约在部署的时候,就需要先花去一笔费用。众所周知的矿工,就是专门负责校验、记录数据的,矿工干活当然是需要发工资的,所以这第一笔费用就是支付给矿工的。当智能合约部署好之后,就与区块链融合为一体,分布存储到链上的每一个区块内。
使用
用户在使用传统程序的时候,只需要通过访问该服务器的地址(也就是网址),即可浏览其网页内容,发布信息,下载其应用和 app。
当智能合约部署完之后,只有在每次记录打包数据的时候需要支付矿工奖励以及矿工费,其他查询记录等操作是完全免费的!
存储数据
传统程序中,数据是存储在一个集中的数据库中,而这个集中的数据库又部署在服务器内,所以开发者只需要维护好服务器及支付相应的费用就好。因为是集中的数据库,所以只需要存储一份数据就好!
在区块链上,数据是存储在一个个区块里面的,这些区块之间是互相关联的,它们被一条无形的链条串起来,所以叫区块链。在记录数据的时候,如果新增一个区块,那么与之相邻的区块就会增加一条记录,依次类推,直到整条链上所有的区块都增加了这一条记录,才会停止!就像多米诺骨牌一样,只要第一块倒下,势必会推到所有的多米诺骨牌才算完。
更新
普通的应用程序、app更新,开发者只需要在服务器上发布新版应用,用户通过访问服务器地址,重新下载和安装即可实现更新。
而智能合约一旦在区块链上发布成功之后,就无法更改这个智能合约了。因为这个智能合约作为一段程序,已经深深的嵌入到每一个区块中去运行,而区块链的一大特性就是不可篡改,所以更新智能合约几乎没有可能!
可是,代码是人写的,程序员都知道,只要是程序就必然有bug,如果 bug 外漏,作为开发者,该如何应对呢?下篇为大家揭晓!我们不见不散