举个例子:你要发行一种币,你不用再考虑挖矿、源代码、性能、安全性等问题,你只需要编制好规则和特性,在以太坊上很快能轻松完成。而借助于以太坊强大的可编程性,这个币几乎可以实现目前已经发行的任何数字货币的功能。 再举个例子:你要做一个建筑工程安全跟踪的区块链项目,用区块链的时间戳方式来跟踪从材料到施工到最后销售到住户手里的路径,实现生产的公开透明和可追溯性。 如果没有以太坊,你需要自己建立一个区块链系统,这个区块链系统本身的维护、管理就是一个巨大的工作量。而使用以太坊,可以直接在以太坊的区块链上做应用编程。 开发者只要写实际应用的部分,基础的区块链部分完全可以依赖以太坊本身,这种方式会让区块链开发的经济性变得非常高。 在没有以太坊之前,写区块链应用是这样的:拷贝一份比特币代码,然后去改底层代码,如加密算法、共识机制、网络协议等。 以太坊平台对底层区块链技术进行了封装,让区块链应用开发者可以直接基于以太坊平台进行开发,开发者只要专注于应用本身的开发,从而大大降低了难度。 以太坊虚拟机(EVM) 其实使用Solidity编写的一般不叫应用,而是叫合约——智能合约。 那么代码写好在什么地方运行呢?肯定不能直接在机器上运行,需要有限制,所以以太坊提供了以太坊虚拟机来执行代码。 虚拟机是不认识像Solidity这样的高级语言的,所以需要编译,把Solidity代码编译为虚拟机字节码(bytecode),其他语言也一样,都会被编译为虚拟机字节码后才能在以太坊上运行。 所以人们能使用不同的语言来编写智能合约,也可以自己设计一门语言来编写智能合约,当然前提是能够编写出编译器,把自己设计的语言编译为以太坊虚拟机字节码的编译器。 以太坊智能合约 什么是智能合约? 智能合约是以太坊区块链上指定地址的代码和数据集合,智能合约能够直接相互发送消息,同时也能执行图灵完备计算。 智能合约是建立在以太坊虚拟机字节码基础之上的。我们一般不会直接编写字节码,而是使用像Solidity这样的以太坊高级语言。 前面我们也提到了Solidity,Solidity是可以用来编写以太坊智能合约的高级语言,它和JavaScript很像,其使用的人比较多,生态环境更好,能找到更多的资源,有问题也更容易找到答案。 智能合约能做些什么? 1.“多签名”账户功能,只有在一定比例的人同意时才能使用资金。这个功能经常用在与众筹或募捐类似的活动中。 2.管理用户之间所签订的协议。例如,一方从另一方购买保险服务。 (责任编辑:admin) |