以太坊是一个分布式的公链,由很多台电脑组网而成,每台接入这个网络的电脑本地都会保存一份完整区块链(可理解为一个本地数据库,多个文件组成)。这些组网的电脑中有一些节点电脑担任所谓的矿工,矿工负责将所有这个网络上的交易打包成一个小区块,然后分发到所有的节点(包括你的电脑),这些小区块就构成了刚才前面所说的区块链。智能合约可以简单的理解为一段可执行的程序片段,具体的代码由发布人使用特定的编程语言来编写(以太坊使用的是Solidity编程语言,类似JavaScript),在本地编译成功后可以发布到区块链上。而以太坊的智能合约也可以理解为一个特殊的交易(包括可执行代码的),被发送出去后会被矿工打包记录在某一个区块中,当需要调用这个智能合约的方法时只需要向这个智能合约的地址发送一笔交易即可。每个节点电脑都需要安装以太坊客户端,而这个以太坊客户端自带了EVM,一个以太坊智能合约的执行环境,类似JVM一样,通过交易触发智能合约后智能合约的代码就会在EVM中执行了。这种方式相当于把程序部署到了非常非常多的电脑上(只要这个电脑安装了以太坊客户端并接入了以太坊网络),随时都可以通过交易来触发这些智能合约的执行,也从而完成了分布式程序的部署和调用。当然,目前智能合约的功能还非常有限,不能完成所有的现在编程可以解决的事情(比如访问网络下载文件,这个是目前EVM不允许和不支持的)。但这并不妨碍以太坊和智能合约技术的发展,以及有可能成为下一代互联网基础设施和协议的可能!
作者:铁木箱子
链接:https://www.zhihu.com/question/57056818/answer/187414731
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。