英文原文链接:http://www.ethdocs.org/en/latest/glossary.html
为便于理解,加入了个人的解读
博主水平有限,若有谬误恳请高人赐教,将不胜感激
注:博主在容易产生歧义处使用了双引号(“”)、方头括号(【】)进行标注,尽量显化语言的嵌套关系
Đ
Đ只是个来自北欧的字母,代表“Eth”。(此外,Đ也被用作狗币的标志)
Dapp(去中心化应用,即decentralized application)
与传统的、由“一个被信任的中心”提供的服务相对的应用(或者叫服务)不同,Dapp是可以让“终端用户间、终端用户和资源间、资源和资源间”在没有中间人的情况下直接进行互动、商定协议或通讯的应用程序
DAO(decentralized autonomous organization,“分布式自治组织”)
DAO是区块链上的一种智能合约(或一套智能合约),它的存在是为了将【组织的管理、筹资、行为等的规则】编制成代码,形成法律一般的规定。
Identity(身份)
一组全部由同一个人创建的可验证加密交互
Digital identity(数字身份)
一组全部由相同的公钥签名的可验证加密交易,它定义了数字身份的行为。在许多真实世界的应用场景中(如投票),数字身份与现实世界的身份最好是一致的。但如何采用非暴力(译者注:依靠强制力的)的方式确认他们的相同仍然是个没有解决的问题
Unique identity(独特身份)
一组全部由同一个人创建的可验证加密交互。一个人不能拥有多个独特身份
reputation(声誉)
一个身份被其他实体信任的属性。其他实体相信这个身份满足以下两点中的一个:(1)能胜任一些特定的任务;或(2)在某些情况下可靠,即:即使在短期利益的诱惑下也不太会背叛其他人。(译者注:即“有声誉=满足特定条件的可信”)
escrow(托管)
当互不信任的双方要进行交易时,他们会希望通过一个双方都信任的第三方传递资金。且只有在第三方确认交易正确完成时才把钱付给该收钱的人。这降低了双方面对另一方的诈骗风险。这种交易方式和这里的第三方都被称为“escrow”
(译者注:这里的第三方就相当于支付宝在淘宝中发挥的作用)
deposit(押金,保证金)
放入一个【与另一方相关的合约】的数字资产。若某些条件不满足合约的要求,这笔钱就会消失(贷记给对方作为对条件的保险 / 被销毁 / 被捐赠给慈善机构等)
web of trust(信任网)
信任可以传递,例如:若A对B评价很高,B对C评价很高,那A大概就可以相信C。
由此,要确定某人的可靠性,就可以通过这个方式来进行
(译者注:信任可以传递,人和人、组织和组织及他们之间的信任关系就可以构成一张网,你可以在这个网络上通过信任的传递来确定某一个个体是否可信)
Incentive compatibility(激励相容)
如果每个个体遵循规则时获得的收益比单独作恶要多,那么这个协议就是激励相容的。除非极多人在同时共同作恶(碰撞)。
(译者注:即如果个体利益与遵守规则带来的集体利益有重合)
collusion(碰撞)
在一个激励协议方案中,一些参与者为了他们自己的利益而共谋作恶。
token system(通证系统)
一种可被交易的可替代虚拟商品。
代币系统是一个数据库,这个数据库是从地址到有财产的数字的映射,这种数字N具有一个最基本的操作——可以被定量地在两方之间进行传递(即转账)。其中,N非负且小于等于发出方的余额(转账时还需附上A的数字签名)。另外,数字还可能有“发行”、“消费”的操作,交易费用也可能被收集。而同时,有多方的多个发送也是有可能的。典型使用案例包括:数字货币、网络中的加密代币,企业分享和数字礼品卡。
block(区块):
区块是:包含交易(0或多个)、父区块(parent)hash及其他数据的数据包。在区块链中,除创世区块的每个区块都要包含其父区块的hash。整个区块链包含一个网络的所有交易历史。注意,有些基于区块链的加密货币自称“账本”而非“区块链”,但实际上这两者大致是等同的。尽管在自称“账本”的系统中,每个区块通常都包含了每个账户当前状态(比如余额、部分完成的合约)的完整副本,但允许用户丢弃过时的历史数据
address(地址)
一个以太坊地址代表一个账户。对EOA(Externally Owned Account外部所有账户)而言,其地址是控制这个账户的公钥的后20位(bytes),(如:cd2a3d9f938e13cd947ec05abc7fe734df8dd826)。刚刚这一串是16进制的,通常会附加一个“0x”来明确指出。有无这个0x前缀的地址都可以被Web3.js和控制台函数接受,但我们鼓励加上这个前缀。因为地址的每一位都由两个16进制字符表示,所以每个加了“0x”前缀的地址长度都是42个字符。
Ether(以太币)
以太币是在以太坊中使用的货币的名称。以太币被用于支付在EVM(以太坊虚拟机)中进行计算所需的开销。ether有时也指系统中的一个单元
EOA(Externally Owned Account,即:外部所有账户)
这种账户由私钥控制。如果你拥有与EOA相关联的私钥,你就可以通过这个账户发送以太币和信息。未来(Serenity版本),合约账户和EOA账户可能会合并成一个单一账户
gas(瓦斯/燃料)
当代码在EVM中执行时所消耗的“加密燃料”的名称。在以太坊区块链中执行的每个操作都需要使用gas支付费用
gas limit(燃料限制)
燃料限制可以应用于单个交易,也可以应用于区块(block-gas-limit,即区块燃料限制)。
(1)对于单个的交易,燃料限制代表着你愿意【为合约执行一个交易】所支付的最大燃料量,它被用来防止用户【因执行有bug的或恶意的】合约而耗尽gas;(2)区块燃料限制代表着一个区块内所有交易所使用的gas总量。Homestead版本发布后,区块燃料限制会增长约50%
gas price(燃料价格)
在一个交易中,对一单位燃料所给出的以太币价格。Homestead版本发布后,默认燃料价格从50shannon降低到了20shannon
transaction(交易)
存储了【从一个EOA发送出的】信息的单个数据包。简单地说,“交易”描述了从一个EOA到另一个EOA(或合约账户)的信息传递。
message(消息)
一个【合约用来和其他合约通信的】数据传输机制。消息也可以被描述为:永不序列化,并只在以太坊运行环境中存在的虚拟对象(virtual objects)
Web3
Web3规范的精确定义仍未被确定。但Web3通常指连通所有种类的设备的事物,服务和应用的分散化,在线信息的语义存储,人工智能在网络中的应用。
译者注:对以太坊平台来说,Web3是一个去中心化app的平台
epoch
Epoch是【被Ethash PoW算法用作种子的DAG】每次再生之间的间隔。epoch被指定为30000个区块
elliptic curve(椭圆曲线,用于加密(cryptography))
指一种公钥加密的方式
wallet(钱包)
钱包,在最普通的意义上来讲,指一切可以存储以太币或其他任何加密通证的东西。通常来讲,在加密界,“钱包”被用来表示:【一个单独的公私密钥对(像一个纸币钱包)】或【管理多个密钥对的应用(如Mist Ethereum钱包)】
contract(合约)
在以太坊区块链上包含数据和可执行函数的持久性代码。合约在【当以太坊中的交易与合约有关并带有某几个参数时】执行。基于输入的参数,函数会执行并与在合约内外的数据进行交互。
suicide(自杀)
即自我毁灭(self-destruct)。自毁是自杀的别名,“自杀”已被弃用
Selfdestruct(自毁)
一个Solidity语言中的全局变量。允许你“毁掉当前的合约,把资金转到给定的地址”。自毁会在区块链上释放空间并避免合约在未来被执行。合约的地址会继续存在,但转移到此地址的以太币将会永久消失。杀死一个合约需要由合约创建者自己使用Solidity的selfdestruct函数进行
transaction fee(交易费用)
即燃料消耗。是矿工为执行你的交易而收取的以太币的量。
mining(挖矿)
在以太坊区块链中通过【挖取每个区块时验证交易、执行合约】换来的以太币回报
mining pool(矿池)
矿工们资源聚集构成的池。这些矿工通过网络共享他们的算力,并根据挖得一个区块所作出的贡献量分得回报。
mining reward(挖矿报酬)
当矿工挖得一个新区块时发给矿工的加密通证量(在这里,加密通证是以太币)
state(状态)
在区块链在特定时间点上所有余额和数据的快照。通常体现了一个特定区块的状况
区块链
一个永远延伸的,由数据区块组成的序列。区块链【当新交易被确认是新区块的一部分时】向后延伸。每个新区块都通过加密PoW链接到已有的区块链
peer
在网络中其他运行着以太坊节点的,有着区块链完整数据拷贝的计算机。
signing(签名)
根据要被签名的数据和自己的私钥生成一段数据,用以证明被签名的数据是来自自己的原始版本。
discovery(peer)(发现(节点))
通过和网络中的其他节点“闲扯”(互发信息)来发现网络中其他节点状态的过程
Gas price oracle
Geth客户端的帮助函数(helper function),用来在发送交易时找出一个适当的默认gas价格
Light client(轻客户端)
一个允许用户在低容量环境中执行和检查交易执行的客户端程序。这个客户端不需要运行完整的以太坊节点(Geth)
etherbase
你在自己节点上的主账户默认名称。如果你进行挖矿,挖矿的回报会被放入这个账户。
coinbase
与etherbase类似。但是是对所有加密货币平台都更加通用的术语
balance
属于一个账户的加密货币量
solidity
一种语法类似JavaScript的高级语言。Solidity会被编译为用于EVM的代码。
serpent
一种语法类似Python的高级语言。会被编译为用于EVM的代码
EVM(Ethereum Virtual Machine,即以太坊虚拟机)
构成以太坊平台核心的分布式计算平台
Virtual machine(虚拟机)
某种特定的计算机系统的仿真
Peer to peer network(P2P网络,点对点网络)
由一堆计算机组成的网络。这个网络有能力提供【通常只有中心化服务器能够提供的】服务
Decentralization(去中心化)
把【运算处理的控制和执行】从一个中心实体转移出来并分散开的概念
distributed hash table(DHT,即分布式hash表)
DHT是提供查询服务的去中心化分布式系统的一个类,与hash表类似,(key, value) 键值对被存储在DHT中,任何参与进来的节点都能高效地检索到与给定key相关联的value
NAT(Network address translation,即网络地址转换)
Nonce(Number Used Once/Number Once,即“只用一次的数字”)
在IT界,nonce代表一个“为特定用途(如会话认证)生成的数字”。
典型地,一个nonce就是一些根据时间改变的值,通常是个非常大的随机数。一般来说,nonce意味着“马上就要用”或“只在现在用”。
在区块链的PoW场景中,被一个矿工找到的、与网络难度相配的、用以证明区块合法性的hash值也叫做nonce
Proof-of-Work(PoW,即工作量证明)
一个可以证明你花费了很多的资源和时间来得到的数值
Proof-of-Stake(PoS,即权益证明)
挖矿的另一种可选方法,需要矿工证明他们拥有一定量的货币。PoS不像PoW那么浪费,但通常情况下PoS和PoW是被共同使用的,以提高网络的安全性
CASPER
这是一个基于保证金的经济的共识算法。这意味着节点(也被称为“担保验证者”)需要交一些保证金来通过产生区块达成共识。如果一个验证者产生了任何Casper认为非法的东西,保证金和参与共识的特权就会被一同没收
Consensus(共识)
网络中所有节点对于以太坊网络状态的认同
Olympic
Frontier的pre-release版本。用于给开发者进行测试
Frontier
以太坊计划通过四个主要步骤发布,Frontier是第一阶段的名称
Homestead
以太坊平台发布的第二个主要版本,包含一些协议修改,并为未来网络升级做准备
Metropolis
以太坊发布版的第三阶段。在这一阶段,用户接口发布(如Mist),包括了一个dapp商店。这时以太坊已经比较适合非技术用户使用了
Serenity
以太坊发布版的第四阶段。这时共识将由PoW转为PoS
Morden
第一个以太坊可选的测试网络(testnet)。
Testnet(测试网络)
以太坊网络的一个镜像网络,用于测试。
private chain(私有连)
被一个组织保持中心化的完全私有的区块链
consortium chain(联盟链)
由预选的一组节点控制共识过程的区块链网络
Micropayment(微支付)
通常指在线进行的小额支付(小于一美元)
Sharding(分片;分表)
将可能账户的空间(包括合约账户)拆分成数个子空间。如,基于它们数字地址的第一个数字进行拆分。这允许合约被在“分片”内执行而非全网执行,这可以加快交易速度并带来更好的可扩展性
Hash
散列函数
crypto-fuel(加密燃料)
与gas(燃料)类似,指代进行一个交易所需要的加密货币量
Cryptoeconomics(加密经济)
加密货币的经济
Protocol(协议)
被用做【定义通过计算机网络交换数据的方法】的标准
block validation(区块验证)
检查区块加密签名和存储在整个区块链网络中的历史的一致性。
Blocktime(区块时间)
连续两个被挖到区块之间的平均时间间隔
network hashrate
区块链网络整体每秒钟可以进行的hash计算次数
Serialization(序列化)
将一个数据结构转化为一个位序列(sequence of bytes)。以太坊内部使用的编码格式叫做“递归长度前缀编码”(recursive-length prefix encoding,RLP)
Double spend(双花)
双花是制造一个故意的区块链分叉。
这个分叉发生在:一个具有庞大算力的用户发送一个交易A来买东西,在收到所买商品后创建另一个交易B来将同一笔虚拟货币发给自己时。
攻击者随后创建一个区块C,这个区块C与包含原有交易A的区块在同一高度,但C中却包含了交易B而非A。此后攻击者在这个分叉上挖矿(从C开始)。如果攻击者拥有全网50%以上的算力,双花最终就能在所有区块深度成功,成为真正的事实。如果攻击者的算力低于50%,他仍有可能成功,但他造成的通常影响的深度只有2-5。
因此,绝大多数加密货币的交易所、赌博网站、金融服务都要等待产生六个区块后再接受支付。(这被称作“six confirmations”)
SPV client(SPV客户端)
一个只下载一小部分区块链的客户端。这种客户端可以在低算力或低容量的硬件(如手机、笔记本电脑)上达到与普通客户端几乎相同的安全程度
Uncle(叔区块,又叫“陈腐区块”)
叔区块是一个被矿工挖到的区块,但与此同时另一个矿工已经在相同高度上挖到了另一个区块。这种区块叫“陈腐区块(stale blocks)”。一个叔区块的父区块也是正在插入的新区块的祖先。与比特币网络不同,以太坊对挖到陈腐区块的矿工也有奖励,以避免对【因网络连接不够好导致挖矿失败的】矿工的惩罚。
这样的机制对于比特币网络而言不是那么重要——比特币生成一个新区块的时间在10分钟左右,远远高于以太坊网络(15秒左右)
GHOST(Greedy Heaviest-Observed Sub-Tree)
Greedy Heaviest-Observed Sub-Tree是一种可选的选链方法,它也被设计用来激励挖到叔区块的矿工,从而减少对矿池挖矿的激励。在GHOST中,即使是由陈腐区块给出的对先前区块的确认也被认为是有效的,挖出陈腐区块的矿工也能得到挖矿奖励。
merkle patricia tree
Merkle patricia tree提供一个被加密认证的,可以被用来存储所有(key, value)对的数据结构。这种树是被完全确定的,就是说一个有着相同数据组成的树中的每一位都是完全相同的,也有着相同的根hash(root hash)。树提供O(log(n))的插入、查询和删除效率。相对于红黑树这种基于比较的方案,它更易于理解和编写。
DAG(Directed Acyclic Graph)
这是一张图,一个由节点和节点间的连接组成的集合。它有着非常特殊的属性。以太坊在Ethash(以太坊的PoW算法)中使用DAG。Ethash DAG的生成需要消耗大量时间,而这经常由一个矿工节点完成并存入一个缓存文件。然后在算法需要来自该图的值时使用文件数据。
Uncle rate
生产每个区块时产生的叔区块数量
Issuance
为挖到新区块的矿工产生新的用作奖励的加密货币
Presale
在网络启动之前发售加密货币的行为
Static node
由Geth(Golang以太坊客户端)支持的特性。它允许总是连接到特定的节点。Static node在失去连接的时候会尝试重新连接。
Bootnode
可以被用来在运行节点时开启发现进程(即查找网络中其他节点)的节点。这些节点的终端被记录在以太坊的源代码中
Exchange(交易所)
可以根据汇率促进加密货币和法币兑换的市场
Genesis block(创世区块)
一个区块链的第一个区块
Network id(网络id)
用于标记以太坊网络版本的数字(即版本号)
Block header(区块头)
在一个区块中的一部分数据。它包含前一区块区块头的hash值,挖到当前区块的软件的版本号,时间戳和本区块内容的Merkle根hash
Pending transaction(未决交易)
还没有被以太坊网络确认的交易
Block propagation(区块广播)
向网络中的所有其他节点广播一个被确认的区块的过程
Sidechain(侧链)
从一个主区块链上分支下来的区块链,这个区块链会定期检查主区块链。但这个链是独立运行的,侧链出现的问题也不会影响主链
Pegging
锁定两条链间币与币/通证与通证之间单向兑换的汇率(通常是一个主链和一个侧链之间)
2-way pegging
锁定两条链间币与币/通证与通证之间双向兑换的汇率(通常是一个主链和一个侧链之间)
Trustless
指网络在不需要相关方信任其他人的情况下即可可信地调解交易的能力
faucet
免费发放加密货币的网站(通常用做测试)
Checksum(校验和)
在一个单元中包含的传输中的位数的计数,以便接收端验证是否已完成整个消息的传输。
RPC(远程过程调用)
程序用来从位于网络中另一台计算机的程序请求服务而不必了解网络详细信息的协议。
IPC(进程间通信)
IPC是一组编程接口。它允许程序员协调可以在操作系统中同时运行的不同程序进程之间的活动。
attach
被用于启动以太坊js控制台的命令
daemon(守护进程)
在后台运行而非可以被操作者直接控制的进程
system service(base layer service)
内置于以太坊平台的服务,如SWARM和Whisper
Syncing(同步)
下载整个区块链的过程
Fast sync(快速同步)
沿着区块下载交易收据并只拉取整个近期状态数据库的同步方式。不同于一次处理整个区块链,并重放历史中发生过的所有交易的同步方式。
Memory-hard
可用内存略有下降时,速度或可用性就随之急剧下降的过程
keyfile(密钥文件)
每个账户的公私钥密钥对都以一个单独的keyfile文件存在。keyfile是包含加密了的账户私钥JSON文本。它只能被创建账户时设置的密码解密
Block(chain) explorer
一个可以简单地从区块链中搜索和提取数据的网页
Geth
Golang实现的以太坊客户端,基于以太坊黄皮书定义的协议实现
Eth
C++实现的以太坊客户端,基于以太坊黄皮书定义的协议实现
Ethereumjs js/node实现
Pyethereum py实现
Ethereumj java实现
Ethereumh Haskell实现
Parity Rust实现
Difficulty(困难度)
笼统地讲:挖到一个新区块所需要的付出的量。
Account(账户)
账户是以太坊网络的中心组成部分,也是任何交易/合约的必要组成部分。以太坊中的账户分为EOA(外部所有账户)和合约账户
Log event(日志事件)
合约被【【作为区块验证的一部分】被执行的】交易触发。如果构思为函数调用,合约异步执行且没有返回值,通过log event与外界通信。Log event是交易收据的一部分,当交易被执行时产生。收据存储在收据trie中,其完整性由以下保证:收据树的当前根与state根、state-trie并列为区块头的一部分。从外部视角广义上来说,收据是以太坊系统状态的一部分,只是——他们在内部不是可读合约