主页 > imtoken > 精通以太坊 - 快速词汇表

精通以太坊 - 快速词汇表

imtoken 2023-02-01 07:25:01

原文:快速词汇表

这个快速词汇表包含许多与以太坊相关的术语。 本书通篇使用这些术语,因此请将它们加入书签以供快速参考。

帐户

包含地址、余额和随机数的对象,以及可选的存储和代码。 账户可以是合约账户和 EOA(外部拥有账户)。

地址

一般来说,这代表一个EOA或合约,可以在区块链上接收(目的地址)或发送(源地址)交易。 更具体地说,它是 ECDSA 公钥的 keccak 哈希最右边的 160 位。

断言

在 Solidity assert(false) 中编译为 0xfe,这是一个无效的操作码,用完所有剩余的气体,并恢复所有更改。 当 assert() 语句失败时,应该会发生一些非常错误和意想不到的事情,您需要修复您的代码。 您应该避免使用断言,以免它发生。

大端

位置数字表示最重要的数字首先出现的位置。 little-endian 相比之下,最低有效位在前。

BIP

比特币改进建议。 比特币社区成员提交的一组改进比特币的提案。 例如,BIP-21 是一项改进比特币统一资源标识符 (URI) 方案的提案。

堵塞

区块是关于所包含交易的所需信息(区块头)的集合,以及一组称为 ommers 的其他区块头。 它由矿工添加到以太坊网络。

区块链

由工作量证明系统验证的一系列块,每个块都连接到它之前的块,一直到创世块。 这与比特币协议的不同之处在于它没有块大小限制; 它使用不同的气体限制。

拜占庭叉

拜占庭是 Metropolis 发展阶段的两个硬分叉之一。 它包括 EIP-649:大都会难度炸弹延迟和区块奖励减少,其中冰河时代(见下文)延迟 1 年,区块奖励从 5 eth 减少到 3 eth。

编译

将高级编程语言(如 Solidity)编写的代码转换为低级语言(如 EVM 字节码)

共识

当大量节点(通常是网络上的大多数节点)在其本地验证的最佳区块链中都具有相同的区块时,达成共识。 不要与共识规则相混淆。

共识规则

全节点遵循的区块验证规则与其他节点一致。 不要与共识相混淆。

君士坦丁堡

大都会开发的第二部分计划于 2018 年年中进行。 预计将包括切换到混合 POW/POS 共识算法,以及其他变化。

合约账户

一个包含代码的帐户,只要它从另一个帐户(EOA 或合约)收到交易,就会执行该代码。

合约创建交易

以“零地址”作为接收方的特殊交易精通以太坊代码,用于注册合约,必须记录在以太坊区块链中。 (见“零地址”)

DAO

去中心化的自治组织。 没有分级管理的公司和其他组织。 也可能指的是2016年4月30日发布的名为“The DAO”的合约。该合约在2016年6月被黑客攻击,最终在第1192000个区块触发了硬分叉(代号DAO),逆向破解了DAO合约并导致以太坊和 Ethereum Classic 分成两个相互竞争的系统。

去中心化应用程序

分散的应用程序。 至少,它是一个智能合约和一个网络用户界面。 更广泛地说,DAPP 是一种基于开放、去中心化、点对点基础设施服务的网络应用程序。 此外,许多 DAPP 包含分布式存储/消息传递协议和平台。

契据

精通以太坊代码_以太坊go代码_以太坊开源代码查询

非同质代币标准在 ERC721 提案中被引入。 与 ERC20 代币不同,契约证明所有权并且不可替代,尽管它们在任何司法管辖区都不被承认为法律文件,至少目前不是。

困难

一种网络范围的设置,用于控制生成工作量证明所需的计算量。

电子签名

数字签名算法是用户使用私钥生成称为文档“签名”的短数据串的过程,这样任何拥有相应公钥、签名和文档的人都可以验证 (1) 文档由该特定私钥的所有者“签名”

, (2) 文件自签名后未被更改。

ECDSA

椭圆曲线数字签名算法 (ECDSA) 是以太坊使用的加密算法,以确保资金只能由其合法所有者使用。

生态工业园区

以太坊改进提案描述了以太坊平台的拟议标准。 EIP 是一种设计文档,它向以太坊社区提供信息,描述新功能或其过程或环境。 有关更多信息,请参见(另请参见下面的 ERC 定义)。

在密码学的背景下,缺乏可预测性或随机性水平。 在生成主私钥等秘密信息时,算法通常依赖于高熵源来确保输出的不可预测性。

英语

以太坊名称服务。 有关详细信息,请参阅。

EOA

外部账户。 由以太坊网络的人类用户创建的帐户。

欧洲资源委员会

以太坊征求意见。 一些 EIP 被标记为 ERC,表示试图定义以太坊使用的特定标准的提案。

以太坊

以太坊 1.0 的工作量证明算法。 有关详细信息,请参阅。

以太币是以太坊生态系统使用的原生加密货币,在执行智能合约时支付 gas 费用。 它的符号是 Ξ,希腊大写的 Xi 字符。

事件

一个事件允许使用 EVM 日志记录工具,这反过来又可以用来在 DAPP 的用户界面中调用 JavaScript 回调来监听这些事件。 有关详细信息,请参阅。

EVM

以太坊虚拟机,一个执行字节码的基于堆栈的虚拟机。 在以太坊中,执行模型指定如何在给定一系列字节码指令和少量环境数据的情况下更改系统状态。 这是通过虚拟状态机的正式模型指定的。

EVM 汇编语言

EVM 字节码的人类可读形式。

打回来

默认函数,在缺少数据或声明函数名称的情况下调用。

水龙头

对于想要在测试网上进行测试的开发人员,可以使用以太坊形式的免费测试奖励网站。

边境

以太坊开源代码查询_精通以太坊代码_以太坊go代码

以太坊的初始测试开发阶段从 2015 年 7 月持续到 2016 年 3 月。

伽纳彻

个人以太坊区块链,可用于运行测试、执行命令和检查状态,同时控制链的运行方式。

气体

以太坊用于执行智能合约的虚拟气体。 以太坊虚拟机使用一种记账机制来衡量 gas 消耗并限制计算资源的消耗。 参见图灵完备。 Gas是执行智能合约的每条指令产生的计算单位。 气体与以太挂钩。 Gas 类似于蜂窝网络上的通话时间。 因此,法币交易的价格为gas*(ETH/gas)*(法币/ETH)。

气体限制

在谈论区块时,他们也有一个称为气体限制的区域。 它定义了允许消耗整个区块组合中所有交易的最大气体量。

创世区块

区块链中初始化特定网络及其加密货币的第一个区块。

盖思

去以太坊。 用 Go 编写的以太坊协议最重要的实现之一。

硬分叉

硬分叉,也称为硬分叉变更,是区块链中的永久性分歧,通常发生在未升级节点无法验证升级节点创建的遵循新共识规则的区块时。 不要与分叉、软分叉、软件分叉或 Git 分叉相混淆。

散列

哈希函数生成的可变长度输入的固定长度指纹。

高清钱包

使用分层确定性(HD 协议)密钥创建和传输协议 (BIP32) 的钱包。

HD钱包种子

HD 钱包种子或根种子是一个潜在的做空值,用作生成 HD 钱包的主私钥和主链代码的种子。 钱包种子可以用助记词表示,方便人们复制、备份和恢复私钥。

家园

以太坊的第二个开发阶段于 2016 年 3 月在区块 1,150,000 启动。

冰河世纪

以太坊硬分叉在第 200,000 个区块引入了指数难度增加(又名难度炸弹),激励向权益证明的过渡。

集成开发环境

集成的用户界面,结合了代码编辑器、编译器、运行时和调试器。

不可变的部署代码问题

一旦部署了合约(或库)代码,它就变得不可变了。 能够修复可能的错误并添加新功能是软件开发周期的关键。 这对智能合约的发展提出了挑战。

国际交易客户地址协议 (ICAP)

一种以太网地址编码,与国际银行帐号 (IBAN) 编码部分兼容,为以太坊地址提供通用、可验证和可互操作的编码。 ICAP 地址可以对以太坊地址或通过以太坊名称注册中心注册的通用名称进行编码。 他们总是以 XE 开头。 目的是引入一个新的 IBAN 国家代码:XE,以“扩展”X 为前缀的以太坊 E,用于非管辖货币(例如 XBT、XRP、XCP)

内部交易(也称为“消息”)

从一个合约账户发送到另一个合约账户或 EOA 的交易。

凯卡克256

以太坊中使用的加密哈希函数。 Keccak256 被标准化为 SHA-3。

以太坊go代码_以太坊开源代码查询_精通以太坊代码

密钥派生函数 (KDF)

也称为加密扩展算法,密钥库格式使用它来防止对密钥的暴力攻击、字典攻击或彩虹表攻击。 它反复散列密码。

密钥库文件

包含单个(随机生成的)私钥的 JSON 编码文件,使用密码加密以提高安全性。

水平数据库

LevelDB 是一个开源磁盘键值存储。 LevelDB 是一个轻量级的、专门构建的库,用于与许多平台绑定持久性。

图书馆

以太坊的库是一种特殊类型的合约,没有收款功能,没有回调功能,也没有数据存储。 因此,它不能接收或保存以太坊数据或存储数据。 使用库作为之前部署的代码,其他合约可以调用只读计算。

轻量级客户端

轻量级客户端是一种以太坊客户端,它不存储区块链的本地副本,也不验证块和交易。 它提供了钱包的功能,可以创建和广播交易。

信息

内部交易从不序列化,只在 EVM 内发送。

都市舞台

Metropolis 是以太坊的第三个发展阶段,于 2017 年 10 月启动。

ME令牌

“掌握以太坊”令牌。 本书中用于演示的 ERC20 代币。

矿工

重复哈希计算以找到新块的有效工作量证明的网络节点。

蒙蒙

Mist 是以太坊基金会创建的第一个支持以太坊的浏览器。 它还包括一个基于浏览器的钱包,这是 ERC20 令牌标准的第一个实施(Fabian Vogelsteller,ERC20 的作者和 Mist 的首席开发人员)。 Mist 也是第一个引入驼峰式校验和(EIP-155,参见 eip-155)的钱包。 Mist 运行一个完整的节点,并提供一个完整的 DApp 浏览器,支持基于 Swarm 的存储和 ENS 地址。

互联网

将交易和数据块传播到每个以太坊节点(网络参与者)的 P2P 网络。

节点

参与 P2P 网络的软件客户端。

随机数

在密码学中,术语 nonce 用于指代只能使用一次的值。 以太坊使用两种类型的随机数。

奥默

本身不是父块的父块的子块。 当一个矿工找到一个有效区块时,另一个矿工可能已经发布了一个竞争区块并将其添加到区块链的顶部。 与比特币不同,以太坊中的孤立区块可以作为 ommers 被新区块包含并获得一部分区块奖励。 术语“ommer”是父节点兄弟姐妹的首选性别中立术语,但也被称为“叔叔”。

瘫痪问题

一种常见的强大的加密密钥管理方法是多重签名,通常称为密钥共享。 但是,如果其中一个共享密钥丢失了怎么办? 结果将是所有资金的完全损失。 这不是唯一有问题的情况。 Keyshare 持有者也可能对资金将如何使用有不同看法,无法达成一致。 我们使用术语“瘫痪问题”来指代任何这些尴尬的情况。

瘫痪证明系统

瘫痪证明有助于解决加密货币中普遍存在的密钥管理问题。 见瘫痪问题。

防瘫系统可以在没有用户协调的情况下容忍系统崩溃。

以太坊go代码_以太坊开源代码查询_精通以太坊代码

使用智能合约,以太坊可以相对容易地实现瘫痪证明系统。

平价

以太坊客户端软件最著名的可互操作实现之一。

权益证明 (PoS)

股权证明是一种加密货币区块链协议,旨在成为实现分布式共识的一种方法。 股权证明要求用户证明拥有一定数量的加密货币(网络中的“股权”),以便能够参与交易验证。

工作量证明 (PoW)

需要大量计算才能找到的一段数据(证明)。 在以太坊中,矿工必须找到满足网络难度目标的 Ethash 算法的数值解。

收据

以太坊客户端返回的代表特定交易结果的数据,包括交易的哈希值、区块编号、使用的气体量,如果部署了智能合约,还包括合约地址。

重入攻击

当攻击者合约调用 Victim 合约函数时可以复制这种攻击,我们称之为 victim.withdraw(),在原始调用合约函数完成之前,它再次调用 victim.withdraw() 方法继续递归调用自己。 这个递归调用可以通过Attacker合约的回调函数来实现。 攻击者必须执行的唯一技巧是在耗尽气体之前中断递归调用并避免恢复被盗的以太币。

要求

在 solidity 中,require(false) 被编译为 REVERT 操作码 0xfd。 REVERT 指令提供了一种停止执行并恢复状态转换的方法,而无需消耗所有提供的气体并能够返回原因。 require 函数应用于确保满足有效条件(例如输入或合约状态变量),或验证调用外部合约的返回值。 在拜占庭网络升级之前,有两种实用的方法可以恢复交易:耗尽 gas 或执行无效指令。 两种选择都会消耗所有剩余的气体。 拜占庭网络升级前在黄皮书上查这个opcode,找不到,而且因为没有规范那个opcode,所以EVM执行的时候,会抛出invalid opcode的错误。

恢复

当您需要处理与 require() 相同类型但逻辑更复杂的情况时,请使用 revert()。 例如,如果您的代码有一些嵌套的 if/else 逻辑流,您可能会发现使用 revert() 而不是 require() 是有意义的。

报酬

每个新区块中包含的数量(以太币(ETH))作为网络对找到工作量证明解决方案的矿工的奖励。

递归长度前缀 (RLP)

RLP 是以太坊开发人员设计的一种编码标准,用于编码和序列化任意复杂度和长度的对象(数据结构)。

中本聪

中本聪是设计比特币和创建原始参考实现比特币核心的人使用的名字。 作为实施的一部分,他们还设计了第一个区块链数据库。 在此过程中,他们率先解决了数字货币的双重支付问题。 他们的真实身份仍然未知。

维塔利克布特林

Vitalik Buterin 是一位俄裔加拿大程序员和作家,主要以以太坊的联合创始人和比特币杂志的联合创始人而闻名。

加文·伍德

Gavin Wood 是英国程序员,以太坊的联合创始人和前 CTO。 2014年8月,他提出了Solidity,一种用于编写智能合约的编程语言。

秘密密钥(又名私钥)

一个秘密号码,允许以太坊用户通过生成数字签名(参见公钥、地址、ECDSA)来证明帐户或合同的所有权。

上海

安全哈希算法或 SHA 是由美国国家标准与技术研究院 (NIST) 发布的一系列加密哈希函数。

自毁操作码

只要整个网络存在,智能合约就存在并且可以执行。 如果它们被编程为自毁或使用委托调用或调用代码来这样做,它们将从区块链中消失。 一旦执行自毁操作,存储在合约地址的剩余 Ether 将被发送到另一个地址,存储和代码将从状态中移除。 尽管这是预期的行为,但以太坊客户可能会或可能不会执行自毁合约的修剪。 SELFDESTRUCT之前被称为SUICIDE,在EIP6中,SUICIDE更名为SELFDESTRUCT。

宁静

以太坊发展的第四个也是最后一个阶段。 Serenity 还没有计划的发布日期。

以太坊开源代码查询_精通以太坊代码_以太坊go代码

一种过程式(命令式)编程语言,语法类似于 Python。 也可用于编写功能性(声明性)代码,尽管它并非完全没有副作用。 谨慎使用。 首先由 Vitalik Buterin 创建。

智能合约

在以太坊的计算基础设施上执行的程序。

坚固性

一种过程式(命令式)编程语言,其语法类似于 JavaScript、C++ 或 Java。 以太坊智能合约最流行和最常用的语言。 最初由 Gavin Wood(本书的合著者)创建。

Solidity 内联汇编

内联汇编包含使用 EVM 组装的 Solidity 中的代码,可以将其视为 EVM 代码的人类可读形式。 内联汇编试图解决在编写手写汇编时遇到的固有困难和其他问题。

伪龙

在区块 #2,675,00 硬分叉以解决更多的拒绝服务攻击向量和另一个状态清除。 此外,还有重放攻击保护机制。

一群

去中心化 (P2P) 存储网络。 它与 Web3 和 Whisper 一起用于构建 DApp。

橘子口哨

区块 #2,463,00 的硬分叉更改了某些 IO 操作的气体计算,并清除了利用这些操作的低气体成本的拒绝服务攻击的累积状态。

测试网

测试网络(简称testnet)用于模拟以太坊主网的行为。

交易

提交给以太坊区块链的数据由原始帐户签名并定向到特定地址。 交易包含元数据,例如交易的气体限制。

松露

最常用的以太坊开发框架之一。 它由几个可以使用节点包管理器 (NPM) 安装的 NodeJS 包组成。

图灵完备

在可计算性理论中,如果一个数据操作规则系统(例如计算机的指令集、编程语言或元胞自动机)可以用来模拟任何图灵机,则它被称为图灵完备或计算通用。 这个概念以英国数学家和计算机科学家艾伦图灵的名字命名。

毒蛇

一种类似于使用 Python 语法的 Serpent 的高级编程语言。 旨在接近纯函数式语言。 首先由 Vitalik Buterin 创建。

钱包

拥有所有密钥的软件。 用作访问和控制您的以太坊帐户并与智能合约交互的界面。 请注意,密钥不需要存储在您的钱包中精通以太坊代码,可以从 USB 闪存驱动器或纸张等离线存储中检索,以提高安全性。 尽管有这个名字,但钱包从不存储实际的硬币或代币。

Web3

网络的第三个版本。 由 Gavin Wood 首次提出,Web3 代表了 Web 应用程序的新愿景和焦点:从集中拥有和管理的应用程序到分散的基于协议的应用程序。

以太的最小面额。

10^{18}

wei = 1 以太币

耳语

去中心化(P2P)通信服务。 它与 Web3 和 Swarm 一起用于构建 DApp。

零地址

一个特殊的以太坊地址,所有 20 个字节为零,被指定为“合约创建交易”中的目标地址。