以太坊的相关概念

2019/03/18 区块链

在进行以太坊开发之前,了解一下以太坊和区块链的一些术语对开发有所帮助。

区块链

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,本质上是一个去中心化的分布式数据库

Transaction交易

区块链中的Transaction交易就是一批输入输出的集合,账户与账户之间的交易是通过Transaction操作来完成。任何账户之间的交易或者是调用智能合约在以太坊的底层来看都认为是一个Transaction。这个概念类似于数据库中的事务,事务是数据库管理系统执行过程中的一个基本逻辑单位,由有限的数据库操作序列构成。

Blocks区块

一个区块是若干个交易的集合。区块在经过哈希运算后生成工作量证明,从而验证区块中的交易。有效的区块经过全网络的共识之后会被追加到区块链中。

Genesis Block创世区块

区块链的第一个区块,唯一一个不指向前一个区块的区块。只有当网络中的两个节点有相同的创世区块时,它们才会彼此匹配。

Proof-of-Work(PoW)工作量证明

工作量证明是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。

以太坊中使用工作量证明共识协议来避免区块链被篡改。PoW要求解决一个难的数学问题来创建新的区块,创建区块的过程又称为“挖矿”,提供算力的节点称为“矿工”。

Proof-of-Stake(PoS)权益证明

工作量证明存在一个问题是,解决难的数学问题需要消耗大量的算力,这意味着计算节点(矿机)消耗大量的电能去做无实际意义的运算,同时,计算能力越强的矿工能够获得更多的奖励,他们联合一起形成矿池进一步提高算力,这使得去中心化的区块链变得中心化。以太坊正在切换到PoS权益证明来取代PoW工作量证明。

PoS中存在验证者(validator),矿工不是挖矿,而是铸造(mint)新区块。想要成为验证者,节点需要在网络中存入货币作为权益(好比是保证金),权益越大则被选中为验证者的几率越大。如果验证者通过了恶意或者错误的区块,那么就会被扣去权益(保证金被没收)。

以太坊账户

以太坊有两种账户:

  1. 外部拥有账户:由公私钥对控制,没有关联代码。
  2. 合约账户:由存储在账户中的代码控制。

一个外部账户可以通过创建和用自己的私钥对交易进行签名,以发送消息给另一个外部账户或者合约账户。而合约账户不可以自己发起交易;外部账户之间传送消息只是简单的价值转移,而外部账户到合约账户的消息会激活合约账户中的代码,执行一些额外的动作。

以太坊钱包

以太坊钱包是以太坊账户的管理工具,可以生成账号、账户转账等等。Geth是以太坊官方提供的客户端,是开发智能合约常用的工具之一,Geth是基于Go语言开发的。例如创建一个账户:

$ geth account new

gas费用

以太坊上的每一笔交易会收取一定的费用,称为gas,施加费用可以防止用户超负荷使用网络,如果没有费用的话,恶意的执行者通过执行一个包含无限循环的交易就可以瘫痪网络。在交易过程中一旦gas消耗尽,会触发费用不足的异常,当前调用帧所做的所有状态修改都将还原。

Search

    Table of Contents