什么是以太坊
以太坊是一个开放的区块链技术平台,在这平台上人们可以编译和使用由区块链技术开发的应用。像比特币一样,它是一个开源项目,没有人控制或拥有以太坊。
但不像比特币的协议,以太坊具有很高的灵活性和适应性,它可以被用来创建应用。随着Homestead 版本的发布,现在,任何人都可以安全的使用这些新应用。
下一代区块链技术
区块链是一个分布式的计算网络,网络中的每一个节点都执行和记录相同的交易,这些交易被归入为一个个区块,且一次只能添加一个区块到这个网络中,每一个区块包含了一个数学上的校验,用来确保此次添加的区块和上次的添加的区块是在同一个序列里面的。这样,区块链的分布式数据库就能在所有的网络节点中保存一致性。个人与总账的交互由强大的密码保护。在以太坊的协议中,维护这整个网络的人会有一份奖励。
以太坊虚拟机
以太坊是一个可编程的区块链,不仅仅是给用户一些预定义操作(如比特币只交易),以太坊允许用户创建属于他们自己的复杂的操作。以太坊作为一个平台为不同的区块链应用提供服务。
狭义来说,以太坊是一系列协议,其核心就是一个以太坊虚拟机,能执行遵守协议的任何复杂的代码。开发者可以在虚拟机上使用javascript,python创建应用。
以太坊包含了一个点对点的网络协议,网络中的各个节点的虚拟机都执行相同的指令来共同维护区块数据库。
以太坊全网的大规模并行计算不是只为了提运算效率,而是为了保证全网的数据一致性。全网中的每一台虚拟机的运行都是为确保全网数据库的一致性。分散的一致性给全网极端的容错能力;抗审查能力和永不宕机能力等!
以太坊如何工作的
以太坊包含许多类似比特币的功能和技术,同时也做了某些修改和创新。
以太坊的基本单元是账号。以太坊区块链跟踪每一个账号的状态,账号间的所有状态的转移都是价值和信息的转移。以太坊有2种账户类型:
- 外部自身拥有的账号,简称EOA,是由私钥来控制的。
- 合约帐户,由合约代码控制,且只能由一个EOA账号来激活
对于大多数用户来说,他们最基本的区别是人掌握EOA账号,因为人掌握着控制EOA账号的私钥,而合约账号由内部程序代码控制的。广受欢迎的“智能合约”是合约账号中的代码,是一个交易发送到账号上执行的程序。用户可以通过部署代码到区块链中创建一个新合约。
只有当收到EOA的指示的时候,合约账号才会执行一个操作。
像比特币一样,每次交易,用户都需要支付一定小额的费用,用于维护整个网络。
节点通过收集交易费用来验证整个网络。网络中的节点(矿工)接受、传播、验证和执行交易,然后整理归档这些交易,打包成一个区块,与别的矿工竞争将区块添加到区块链中,添加成功的矿工将收到奖励。通过这样的措施,鼓励人们为全网提供更多的硬件和电力。