From 《精通以太坊》(Mastering Ethereum)☞术语表
account
包含:
- nonce (EOA中代表交易序号 从0开始;CA中nonce一直为1,源码中看设为1后就不再改变,参考以太坊EVM笔记)
合约账户CA(contract account)或外部账户EOA(externally owned account)
- balance
- storageRoot 存储树的树根hash MPT树
- codeHash EOA的为空串的hash值而不是空
address
代表一个EOA或一个合约
160位 即40位16进制数
ECDSA公钥的Keccak散列最右边160位
断言Assert
消耗所有gas,并恢复所有更改,严重错误或异常,永远不该发生的才使用assert
BIP
比特币改进协议
bitcoin improvement proposals 比如助记词等相关的BIP39
相应地有EIP
区块
包含区块头区块体,
区块链
由特定系统验证的一系列区块,以太坊没有块大小限制,改为用gasLimit来限制区块的内容
拜占庭分叉
拜占庭是大都会阶段的两大分叉之一,包含EIP-649
- 大都会难度炸弹延迟
- 区块奖励减少
区块奖励由5个减少到3个
君士坦丁堡
大都会阶段的第二部分,2018年中期计划。预计将包括切换到混合工作证明/权益证明共识算法。
编译
将高级语言(如solidity)编写的代码 转换为 低级语言(如EVM字节码)
共识
网络上大多数节点,在其本地验证的最佳区块链中都有相同的区块的情况。
不同于共识机制。
共识机制
完整节点为了与其他节点保持一致,遵循的区块验证规则。
DAO
去中心化自治组织 decentralised autonomous organization
没有层级管理的公司或组织
The DAO
该项目合约2016年6月遭到黑客攻击,最终在第1192000个区块激起了硬分叉,恢复了被攻击的DAO合约,导致分叉为以太坊和以太坊经典。
DApp
去中心化应用 decentralized application
- 狭义上,它至少是智能合约和web用户界面
- 广义上,DApp是一个基于开放式、分散式、点对点基础架构服务的web应用程序。
- 许多DApp包括去中心化存储/消息协议和平台。
difficulty难度
控制工作量证明的难度,需要多少计算
数字签名 digital signature
数字签名算法是一个过程,用户使用私钥为文档生成称为签名的短字符串数据,以便具有签名、文档和响应公钥的任何人,都可以验证:
- 该文件由特定私钥所有者“签名” 不可伪造
- 该文件签署后未被修改 不可篡改
ECDSA
椭圆曲线数字签名算法 以太坊中使用的加密算法
EIP
以太坊改进建议 ethereum improvement proposals
EIP向以太坊社区提供信息的设计文档,描述新功能,或处理过程、环境。
参考: https://github.com/ethereum/EIPs
熵 Entropy
密码学领域,表示可预测性的缺乏或随机性水平。生成秘密信息(如私钥)时,算法通常依赖高熵源来确保输出不可预测。
web3创建账户的方法 参数即为熵
web3.eth.accounts.create([entropy])
ENS
Ethereum Name Service
以太坊名称服务,建立在以太坊区块链上的域名系统。
Ethash
以太坊1.0的工作量证明算法。
Ether 以太
以太坊生态系统中使用的货币,执行智能合约时承担燃气费用。
Event
event事件 允许EVM日志工具的使用,可用来在DApp用户界面中调用JavaScript回调来监听这些事件。
EVM
以太坊虚拟器,Ethereum Vitrual Machine,基于栈的,执行字节码的虚拟机。
回调方法 Fallback function
默认的方法,当缺少数据或声明的方法名时执行
水龙头Faucet
一个网站,为在测试网上做测试的开发人员提供免费测试的以太币。
前沿Frontier
以太坊的试验开发阶段,2015.7~2016.3
Ganache
私有以太坊区块链,你可以在上面进行测试,执行命令,在控制区块链如何运作时检查状态。
燃气Gas
以太坊用于执行智能合约的虚拟燃料。以太坊虚拟机使用会计机制来衡量天然气的消耗量并限制计算资源的消耗。燃气是执行智能合约的每条指令产生的计算单位。燃气与以太币挂钩。
Gas Limit
区块gas limit定义了整个区块中所有交易允许消耗的最大燃气量。
交易gas limit也叫startgas,gas消耗超过startgas则操作会被回滚,但交易费仍然收取。
geth
go语言版本以太坊。
Hard Fork 硬分叉
区块链中的一种永久性分歧,通常发生在非升级节点无法验证升级节点创建的遵循新共识机制规则的区块时。
HD wallet 分层确定性钱包
使用 分层确定性密钥生成/分层确定性地址机制 的电子钱包。 BIP32协议
HD wallet seed 分层确定性钱包种子
HD钱包中资或根种子 可能是一个很短的值,用作生成hd钱包的主私钥和主链码的种子。
钱包种子可以用助记词表示。
家园 Homestead
以太坊的第一个发展阶段,于2016年3余额再1150000区块启动。
内部交易(也叫消息) Internal transaction(message)
从一个合约地址发送到另一个 合约地址 或 EOA 的交易。
一个EOA发起的则是外部交易。
Keccak256
以太坊使用的加密哈希方法, Keccak256 被标准化为 SHA-3。
KDF密钥推导方法
被keystore格式使用,防止对密码加密的暴力破解、字典或🌈彩虹表攻击。
keystore文件
json编码的文件,包含一个私钥,被一个密码加密,以提供更高的安全性。
LevelDB
一种开源的磁盘键值对存储系统,轻量的、单一目标的持久化库,支持很多平台。
库 Library
以太坊中的库,是特殊类型的合约,没有用于支付的方法,没有fallback方法,没有数据存储store。不能接收或存储以太,不能存储数据。 其他合约可以调用只读计算。
轻量级客户端 lightweight client
一个以太坊客户端,不存储区块链的本地副本,也不验证区块和交易。提供了钱包的功能,可以创建和广播交易。
消息 message
内部交易,未被序列化,只在EVM中发送。
大都会阶段 Metropolis Stage
以太坊的第三个开发阶段,2017.10启动。
矿工Miner
通过大量的哈希计算,为新的区块寻找有效的工作量证明解的网络节点。
Mist
以太坊基金会创建的第一个以太坊浏览器,还包含一个基于浏览器的钱包。Mist运行完整节点,提供完整的DApp浏览器,支持基于Swarm的存储和ENS地址。
Network
将交易和区块传播到每个以太坊节点的对等网络。
Node
参与到对等网络的软件客户端。
随机数Nonce
以太坊中用到两类nonce
- 账户nonce 一个账户的交易计数
- 工作量证明随机数 用于获得工作证明的区块中的随机值(取决于当前难度)
Ommer 叔叔
当前块的爷爷的儿子,但不是当前块的父亲,和父亲同级。
对父节点的兄弟姐妹节点的性别中立的称呼,也可表示为“叔叔”。
POS权益证明
proof of stake
权益证明要求用户证明一定数量的加密货币(网络中的“股份”)的所有权,以便能参与交易验证。
POW工作量证明
proof of work
一份需要大量计算才能找到的数据证明。以太坊中,矿工必须找到符合网络难度目标的Ethash算法的数字解决方案。
收据Receipt
以太坊客户端返回的数据,表示特定交易的结果,包括交易的哈希、区块号、使用的gas、部署合约地址。
重入攻击
当攻击者合约调用受害者合约的方法时,可以重复这种攻击。withdraw(),在对该合约函数的原始调用完成之前,再次调用withdraw()方法,持续递归调用他自己。递归调用可以通过攻击者合约的callback方法实现。攻击者必须执行的唯一技巧是在用完燃气之前中断递归调用,并避免盗用的以太被还原。
require
提供了一种停止执行和恢复状态更改的方式,不会消耗所有的gas。
应当使用require函数来确保满足有效条件,例如输入、合约状态变量、验证调用外部合约的返回值。
在拜占庭网络升级前,有两种方式来还原交易:
- 耗尽燃气(gas)
- 执行无效指令
但是这两个选项都消耗完所有剩余gas。
revert
处理与require相同的情况,也会返还gas。有些更复杂的逻辑,可以用revert,例如代码有一些ifelse逻辑流程,用revert更好。返回上一步
require(msg.sender==owner);
相当于 if(msg.sender!=owner){revert();}
RLP
Recursive Length Prefix,递归长度前缀。
是一种编码标准,用于编码和序列化任意复杂度和长度的对象(数据结构)。
私钥 Private Key
允许以太坊用户通过创建数字签名证明账户或合约的所有权的加密数字。
SHA
安全哈希算法,Secure Hash Algorithm。一系列加密哈希函数。
selfdestruct
自毁。一旦执行自毁操作,存储在合约地址的剩余ether会被发送到另一个地址,并将存储和代码从状态中移除。
以前称作suicide,EIP6之后,重命名为selfdestruct。
selfdestruct(addr) 销毁后ether转给addr
宁静 Serenity
以太坊第四个 即最后一个开发阶段。还不确定计划发布日期。
智能合约
以太坊的计算框架上执行的程序。
Swarm
一种去中心化P2P的存储网络。与Web3和Whisper共同使用于构建DApps。
测试网Testnet
测试网络用于模拟以太坊主网的一些行为。
交易 transaction
由EOA账户签署的提交到以太坊区块链的数据,并以特定地址为目标。交易包含源数据,例如交易的燃气限额(gas limit)。
Truffle
一个最常用的以太坊开发框架。包含一些NodeJS包,可以使用NPM进行安装。
图灵完备
一切可计算的问题都能够被计算。有能力执行if/goto/循环类操作。
Wallet
管理你所拥有的密钥/账户的软件。作为访问和控制以太坊账户并与智能合约交互的界面。请注意,密钥不需要存储在你的钱包中,并且可以从脱机存储(usb或纸张)中检索以提高安全性。
并不存储实际的硬币或代币。
Web3
web的第三个版本。Web3代表了Web应用程序的新愿景和焦点:
从中心化控制和管理的应用程序到基于去中心化协议的应用程序。
Wei
以太ether的最小单位
10^18^wei = 1ether
1Gwei = 10^9^wei
Whisper
一种去中心化P2P消息系统。与Web3和Swarm一起用于构建DApps。
Zero address
零地址。特殊的以太坊地址,所有20个位都为0。
