这个简明词汇表包含了许多与以太坊相关的术语。这些术语在整本书中都会使用,因此请将其添加为书签以供快速参考。
- 帐户,Account
-
包含地址,余额,随机数以及可选存储和代码的对象。帐户可以是合同帐户或外部拥有的帐户(EOA)。
- 地址,Address
-
通常,这表示可以在区块链上接收(目标地址)或发送(源地址)交易的EOA或智能合约。更具体地说,它是对ECDSA公钥进行Keccak哈希操作后的最右边的160位。
- 断言,Assert
-
在 Solidity 语言中,assert(false) 编译为 0xfe ,这是一个无效的操作码,它将耗尽所有剩余的燃料gas,并还原所有更改。当 assert() 语句失败时,将发生非常严重的意外错误,你必须要修复代码。你应该使用 assert() 来避免永远不会发生的情况。
- 大端序,或称大尾序, Big-endian
-
一种字节顺序表示形式,其中最高有效数字在第一位。而小端序 little-endian 则相反,最低有效数字在第一位。
- BIPs
-
比特币改进建议 Bitcoin Improvement Proposals 的缩写。比特币社区的成员提交了一套改进比特币的提案。例如,BIP-21是一项改进比特币统一资源标识符(URI)方案的提议。
- 区块,Block
-
有关所包含的交易的必需信息(一个区块头)的集合,以及一组称为ommers的其他区块头。矿工将区块添加到以太坊网络。
- 区块链,Blockchain
-
在以太坊中,由工作量证明系统验证的一系列区块,每个区块都与其前一个区块链接,一直到创世区块。这与比特币协议的不同之处在于它没有区块大小限制。相反,它使用变化的燃料gas来限制区块的容量。
- 字节码,Bytecode
-
一种抽象指令集,旨在由软件解释器或虚拟机高效执行。与人类可读的源代码不同,字节码以数字格式表示。
- 拜占庭分叉,Byzantium fork
-
以太坊大都会 Metropolis 版本开发阶段的两个硬分叉中的第一个。本次分叉包括EIP-649:《大都市难度炸弹延迟》和《降低区块奖励》,其中,冰河世纪 Ice Age(见下文)被延迟了1年,而区块奖励则从5降为3。
- 编译,Compiling
-
将高级编程语言(例如Solidity)编写的代码转换为低级语言(例如EVM字节码)的过程。
- 共识,Consensus
-
当多数节点(通常是网络上的大多数节点)在其本地完成验证的最佳区块链中都具有相同的区块时的网络状态。不要与共识规则相混淆。
- 共识规则,Consensus rules
-
完整节点遵循的区块验证规则,从而可以与其他节点达成共识。不要与共识混淆。
- 君士坦丁堡硬分叉,Constantinople fork
-
("Constantinople fork"以太坊大都会Metropolis版本的第二阶段,最初计划于2018年年中实施。计划中的修改将包括共识转换为混合工作量证明/权益证明共识算法,以及其他更改。
- 合约帐户,Contract account
-
一个包含代码的账户,在本帐号接收到另一个账户(EOA或合约)发送的交易时就执行账户中的代码。
- 合约创建交易,Contract creation transaction
-
以“零地址”为接收者的特殊交易,用于创建智能合约并将其记录在以太坊区块链上(请参阅“零地址”)。
- DAO
-
Decentralized Autonomous Organization 分散的自治组织。没有分级管理的公司或其他组织。也可以参考2016年4月30日发布的名为 “The DAO” 的合约,该合约随后于2016年6月被黑客入侵;这最终在区块#1,192,000中激发了一个硬分叉(代号DAO),这推翻了被黑的DAO合约,并导致以太坊和以太坊经典分成两个竞争系统。
- DApp
-
Decentralized application 去中心化应用。它至少由一个智能合约和一个Web用户界面构成。更广泛地说,DApp是一个Web应用程序,它建立在开放的,去中心化的,点对点基础架构服务之上。另外,许多DApp会包括去中心化存储和/或一个消息协议和平台。
- 契据,Deed
-
ERC721提案引入的不可替代通证(NFT)标准。与ERC20代币不同,契约可以证明所有权并且不可替换,但是目前在所有司法管辖区中均未被视为法律文件,或者说至少在当前尚未被确认有法律效力(请参见“ NFT”)。
- 难度,Difficulty
-
网络范围内的设置,用于控制工作量证明所需的计算量。
- 数字签名,Digital signature
-
用户使用私钥为文档生成的一小段数据,以便具有相应公钥,签名和文档的任何人都可以验证(1)该文档由该特定私钥的所有者“签名”,并且(2)该文档在签名后未更改。
- ECDSA
-
Elliptic Curve Digital Signature Algorithm 椭圆曲线数字签名算法。以太坊使用的一种加密算法,以确保资金只能由其所有者使用。
- EIP
-
Ethereum Improvement Proposal 以太坊改善建议。一个设计文档,向以太坊社区提供信息,描述建议的新功能、流程或环境。有关更多信息,请参见 https://github.com/ethereum/EIPs (另请参见“ ERC”)。
- 以太坊名称服务,ENS
-
以太坊名称服务。有关更多信息,请参见 https://github.com/ethereum/ens/ 。
- 熵,Entropy
-
在密码学中,缺乏可预测性或随机性。在生成秘密信息(例如私钥)时,算法通常依赖于高熵源来确保输出的不可预测。
- EOA
-
Externally Owned Account 外部拥有帐户。以太坊网络的人类用户或为人类用户创建的帐户。
- ERC
-
Ethereum Request for Comments 以太坊注释请求. 一些 EIP 被标记为 ERC,表示是试图定义以太坊使用的特定标准的建议。
- Ethash
-
以太坊1.0的工作量证明算法。更多信息,参见 https://github.com/ethereum/wiki/wiki/Ethash.
- 以太币,Ether
-
以太坊生态系统使用的原生加密货币,涵盖执行智能合约时的燃料gas成本。它的符号是Ξ,希腊大写的Xi字符。
- 事件,Event
-
事件允许使用EVM的日志工具,DApp可以监听这些事件,并通过它们来调用用户界面中JavaScript回调函数。更多信息,参见 http://solidity.readthedocs.io/en/develop/contracts.html#events.
- 以太坊虚拟机,EVM
-
以太坊虚拟机。一个基于堆栈的虚拟机,它执行字节码。在以太坊中,执行模型指定在给定一系列字节码指令和少量元数据的情况下如何更改系统状态。这是通过虚拟状态机的正式模型指定的。
- EVM汇编语言,EVM assembly language
-
一种便于人们阅读的EVM字节码的形式。
- 后备函数,Fallback function
-
在没有数据或声明的函数名称的情况下调用的默认函数。
- 水龙头,Faucet
-
可以在测试网上自动分发免费测试币的服务。
- Finney
-
以太坊系统中货币单位。 1 finney = 1015 wei, 103 finney = 1 ether。
- 分叉,Fork
-
协议更改而导致替代链出现,或者在挖掘过程中两个潜在区块路径出现暂时的差异。
- 前线,Frontier
-
前线,也被译为边境,以太坊的初始测试开发阶段,从2015年7月持续到2016年3月。
- Ganache
-
一个私有以太坊区块链,可用于运行测试,执行命令和检查状态,同时控制区块链的运行方式。
- 燃料,Gas
-
在以太坊中用于执行智能合约的虚拟燃料。 EVM使用一种计费机制来测量燃料gas消耗并限制计算资源的消耗(请参阅“图灵完备”)。
- 燃料gas上限,Gas limit
-
交易或区块可能使用的最大燃料gas量。
- 加文·伍德,Gavin Wood
-
英国程序员,以太坊的联合创始人和前任首席技术官。 2014年8月,他提出了Solidity,一种用于编写智能合约的面向合约的编程语言。
- 创世区块, Genesis block
-
区块链中的第一个块,用于初始化特定的网络及其加密货币。
- Geth
-
Go Ethereum。用Go语言编写的以太坊协议最重要的实现之一。
- 硬分叉,Hard fork
-
区块链中的永久分叉;也称为硬分叉的变化。通常会发生在区块链软件升级后,未升级的节点无法验证已升级节点创建的区块,即未升级节点无法遵循更新的共识规则。不要与分叉,软分叉,软件分叉或Git分叉相混淆。
- 哈希,Hash
-
又译成散列或者杂凑,由哈希函数产生的可变大小输入的定长指纹。
- 硬件钱包,HD wallet
-
使用分层确定性(HD)密钥创建和传输协议(BIP-32)的钱包。
- 硬件钱包的种子,HD wallet seed
-
用于生成HD钱包的主私钥和主链代码的值。钱包种子可以用助记词来表示,使人类更容易复制,备份和还原私钥。
- 家园,Homestead
-
以太坊的第二个开发阶段,于2016年3月在1,150,000区块启动。
- ICAP
-
Inter-exchange Client Address Protocol 交换客户端地址协议。一种与国际银行帐号(IBAN)编码部分兼容的以太坊地址编码,为以太坊地址提供通用,校验和且可互操作的编码。 ICAP地址使用新的IBAN伪国家代码:XE,表示“扩展的以太坊”,用于非管辖性货币(例如XBT,XRP,XCP)。
- 冰河世纪,Ice Age
-
以太坊的硬分叉在#200,000区块处引入了指数难度增加(又名难度炸弹,Difficulty Bomb),促使人们转向权益证明。
- IDE
-
集成开发环境的缩写。通常将代码编辑器,编译器,运行时和调试器结合在一起的用户界面。
- 不可变的部署代码问题,Immutable deployed code problem
-
智能合约(或库的)代码一旦部署到了区块链上,该代码就无法改变。标准软件开发过程需要能够修复可能的错误并添加新功能,因此这种部署后无法改变的特性对智能合约开发构成了挑战。
- 内部交易(也称为“消息”),Internal transaction (also "message")
-
从合约帐户发送到另一个合约帐户或EOA的交易。
- 星际文件系统,IPFS
-
星际文件系统。一种协议,网络和开源项目,旨在创建一种内容可寻址的,用于在分布式文件系统中存储和共享超媒体的点对点方法。
- KDF
-
Key Derivation Function。也称为“密码扩展算法”,密钥库格式使用它通过重复对密码短语进行哈希来防止对密码短语进行暴力破解,以及防止字典和彩虹表攻击。
- Keccak-256
-
以太坊中使用的加密哈希函数库。 Keccak-256就是NIST标准化库SHA-3所使用的库。
- 密钥库文件,Keystore file
-
一个JSON编码的文件,包含一个(随机生成的)私钥,并通过密码短语进行了加密,以提高安全性。
- LevelDB
-
一种开源的轻型磁盘键值存储数据库,具有单一用途,许多平台目前在使用它。
- 库合约,Library
-
一种特殊类型的合约,它没有支付功能,没有备用功能,也没有数据存储。因此,它不能接收或容纳以太币或存储数据。库合约可以用作先前部署的代码,其他合约可以调用该代码进行只读计算。
- 轻量级客户端,Lightweight client
-
一种以太坊客户端,它不存储区块链的本地副本,也不参与区块和交易的验证。它提供了钱包的功能,可以创建和广播交易。
- 默克尔帕特里夏树,Merkle Patricia Tree
-
以太坊中用于有效存储键-值对的数据结构。
- 信息,Message
-
一个仅在EVM内部发送的无需序列化的交易。
- 信息调用,Message call
-
将消息从一个帐户传递到另一个帐户的行为。如果目标帐户与EVM代码相关联,则将以该对象的状态启动VM,并执行该消息。
- METoken
-
精通以太坊通证。本书中用于演示的ERC20通证。
- 大都会,Metropolis
-
以太坊的第三个开发阶段,于2017年10月启动。
- 矿工,Miner
-
通过重复 散列运算 为新块找到有效的工作量证明的网络节点。
- Mist
-
第一个启用以太坊的浏览器,由以太坊基金会构建。它包含一个基于浏览器的钱包,这是ERC20通证标准的第一个实现(ERC20的作者Fabian Vogelsteller,也是Mist的主要开发者)。Mist也是第一个引入camelCase校验和的钱包(EIP-55;请参见[EIP55])。 Mist运行一个完整的节点,并提供完整的DApp浏览器,并支持基于Swarm的存储和ENS地址。
- 网络,Network
-
指的是以太坊网络,一个传播交易和包含交易的区块到每个以太坊节点(网络参与者)的对等网络。
- 非同质化代币,NFT
-
非同质化代币non-fungible token(也称为“契约”)。这是ERC721提案引入的通证标准。可以跟踪和交易NFT,但是每个通证都是唯一且不同的;它们不能像ERC20通证那样互换。 NFT可以代表数字资产或实物资产的所有权。
- 节点,Node
-
参与以太坊网络的客户端软件。
- 随机数,Nonce
-
在密码学中,只能使用一次的值。以太坊使用的随机数有两种类型:帐户随机数是每个帐户中的交易计数器,用于防止重放攻击;工作量证明随机数是一个区块中用于满足工作量证明的随机值。
- 叔区块,Ommer
-
一个祖区块的子区块,其本身不是祖区块。它的产生过程如下,当一个矿工找到一个有效的区块时,另一个矿工可能已经发布了一个竞争区块,该区块被添加到了区块链的尖端。与比特币不同,以太坊中的孤立区块可以作为新的区块包含在新区块中并获得部分区块奖励。术语“ommer”是一个性别中立的术语,用于描述父母的兄弟姐妹,但是有时也通称为“叔”。
- Parity
-
以太坊客户软件最重要的可交互实现之一。
- 私钥,Private key
-
请参阅“密钥secret key”。
- 权益证明,Proof of stake (PoS)
-
一种方法,通过该方法,加密货币区块链协议旨在实现分布式共识。 PoS要求用户证明一定数量的加密货币(它们在网络中的“利益”)的所有权,以便能够参与交易的验证。
- 工作量证明,Proof of work (PoW)
-
需要大量计算才能找到的一条数据(证明)。在以太坊中,矿工必须找到符合全网难度目标的Ethash算法的数值解决方案。
- 公钥,Public key
-
一个数字,通过单向功能从私钥中得出,可以公开共享,任何人都可以使用它来验证使用相应私钥进行的数字签名。
- 收据,Receipt
-
以太坊客户端返回的代表特定交易结果的数据,包括交易的哈希值,其区块号,使用的燃料gas量,如果是部署智能合约的交易,那么会包含新生成合约的地址。
- 重入攻击,Re-entrancy attack
-
一种网络安全攻击方式,由攻击者的智能合约调用受害者的智能合约函数完成。这种方式使得受害者在执行过程中递归地再次调用攻击者的合约。比如,这种方式可能会跳过受害合约中更新余额或计算提款金额的部分而导致受害合约中的资金被盗。
- 激励,Reward
-
在每个新区块中生成的以太币数量,作为网络对完成工作量证明的矿工的奖励。
- 递归长度前缀,RLP
-
Recursive Length Prefix 递归长度前缀。以太坊开发人员设计的一种编码标准,用于对任意复杂度和长度的对象(数据结构)进行编码和序列化。
- 中本聪,Satoshi Nakamoto
-
设计比特币及其原始实现比特币系统的个人或团队的名字。作为实现的一部分,他们也设计了第一个区块链。在这个过程中,他们是第一个解决数字货币的双重支付问题的。他们的真实身份至今仍是个谜。
- 私钥,Secret key (又名 private key)
-
一个具有足够长度的随机数。以太坊用户通过它产生一个数字签名(请参阅“公钥”,“地址”,“ ECDSA”)。
- 宁静,Serenity
-
以太坊的第四个也是最后一个发展阶段。Serenity 尚未计划发布日期。
- Serpent
-
一种过程(命令式)智能合约编程语言,其语法类似于Python。
- SHA
-
Secure Hash Algorithm 安全哈希算法的缩写。美国国家标准技术研究院(NIST)发布的一系列加密哈希函数。
- 单例,Singleton
-
计算机编程术语(一种常见的设计模式),描述了只能存在一个实例的对象。
- 智能合约,Smart contract
-
本书中指在可以在以太坊计算基础设施上执行的程序。
- Solidity
-
一种过程式(命令式)编程语言,其语法类似于JavaScript,C++ 或 Java。以太坊智能合约的最流行和最常用的语言。由加文·伍德(Gavin Wood)博士(本书的合著者)创建。
- Solidity内联汇编,Solidity inline assembly
-
Solidity程序中的EVM汇编语言。 Solidity对内联汇编的支持使编写某些操作更加容易。
- 伪龙,Spurious Dragon
-
以太坊区块链的硬分叉,发生在区块#2,675,000,以解决更多拒绝服务攻击向量和清除状态(另请参见“Tangerine Whistle”)。此外,还提供了重放攻击保护机制。
- Swarm
-
一个分布式(P2P)存储网络,与Web3和Whisper一起用于构建DApp。
- 萨博,Szabo
-
以太坊系统中货币单位。 1 szabo = 1012 wei,106 szabo = 1 ether。是为了致敬尼克·萨博(Nick Szabo),计算机科学家,法学家及密码学家,以数字合约和数字货币的研究而闻名。萨博创建了“智能合同”这个词和概念,最初创建目的是将他所谓的“高度演进”的合同法和惯例算法设计成互联网上陌生人之间的电子商务协议。
- Tangerine Whistle
-
以太坊区块链的硬分叉,发生在区块2,463,000,以更改某些I/O密集型操作的gas计算并清除拒绝服务的累积状态攻击,利用了这些行动的低耗气成本。
- 测试网,Testnet
-
“测试网络”的简称,用于模拟以太坊主网络行为的网络。
- 交易,Transaction
-
由一个原始帐户签名后,提交给以太坊区块链的数据,其目标是一个特定的地址。交易中包含元数据,例如该交易的燃料gas限额。
- Truffle
-
最常用的以太坊开发框架之一。包含一些 NodeJS 包,可以使用 Node Package Manager (NPM) 安装。
- 图灵完备,Turing complete
-
以英国数学家和计算机科学家艾伦图灵 Alan Turing 命名的概念:一个可以按一定规则进行数据处理(例如计算机的指令集,编程语言或细胞自动机)的系统,如果可以用来模拟任何图灵机,则称其为“图灵完备”或“通用计算”。
- 维塔里克·布特林,Vitalik Buterin
-
俄罗斯裔加拿大程序员和作家,被称为以太坊和 Bitcoin Magazine 的共同创始人。
- Vyper
-
一种高级编程语言,类似于Serpent,具有类似Python的语法。旨在更接近纯功能语言。由Vitalik Buterin创建。
- 钱包,Wallet
-
一种帮助用户持有密钥的软件。用于访问和控制以太坊账户并与智能合约进行交互。密钥不必存储在钱包中,而是可以从脱机存储(例如存储卡或纸质)中检索以提高安全性。尽管名称如此,钱包从不存储实际的硬币或代币。
- Web3
-
互联网网络的第三个版本。 Web3由Gavin Wood博士首先提出,代表了互联网应用程序的新视野和新焦点:从集中拥有和管理的应用程序,到基于分布式协议构建的应用程序。
- 维,也译为微,Wei
-
以太坊系统中货币的最小单位。 1018 维 wei = 1 以太 ether。
- 低语系统,Whisper
-
以太坊提供的一个分布式(P2P)消息服务。它可以与 Web3 和 Swarm 一起用于构建 DApp。
- 零地址,Zero address
-
一个特殊的以太坊地址,完全由零组成,被指定为创建智能合约交易的目标地址。