From 6a805dcea7979994fab90fd96c5f875ede83bfcd Mon Sep 17 00:00:00 2001 From: "xilibi2003@163.com" Date: Tue, 18 Jun 2024 18:51:39 +0800 Subject: [PATCH] add some baike --- "basic/\345\205\261\350\257\206/PoS.md" | 35 ++++-- .../script.md" | 8 +- eth/EthWeekly.md | 37 +++++++ eth/PoS.md | 34 ------ eth/Vitalik.md | 24 +++++ eth/eips/README.md | 15 +++ eth/ethereum.md | 100 +++--------------- eth/ethereum2.md | 50 +-------- eth/layer2s/Readme.md | 4 +- eth/networks.md | 15 +++ ...12\345\256\242\346\210\267\347\253\257.md" | 73 +++++++++---- ...52\345\235\212\350\212\202\347\202\271.md" | 10 +- "eth/\345\205\261\350\257\206\345\261\202.md" | 36 +++++++ "eth/\346\211\247\350\241\214\345\261\202.md" | 0 .../DeFi.md" | 3 + 15 files changed, 234 insertions(+), 210 deletions(-) delete mode 100644 eth/PoS.md create mode 100644 eth/networks.md create mode 100644 "eth/\346\211\247\350\241\214\345\261\202.md" diff --git "a/basic/\345\205\261\350\257\206/PoS.md" "b/basic/\345\205\261\350\257\206/PoS.md" index f65e52c..59be57b 100644 --- "a/basic/\345\205\261\350\257\206/PoS.md" +++ "b/basic/\345\205\261\350\257\206/PoS.md" @@ -1,16 +1,33 @@ -# 定义 -**PoS** 是 **Proof of Stake** 的缩写,是一种区块链共识算法,用于确保在区块链网络中达成共识,并在添加新区块时选择节点。与Proof of Work (PoW) 不同,PoS不需要节点通过解决复杂的数学问题来竞争添加区块,而是基于持有的加密货币数量来选择下一个区块的创建者。 +### 权益证明(PoS) -# 基本原理和工作方式 +权益证明 Pos( **Proof of Stake** 的缩写) 是一种共识机制,共识机制是一整套由协议、激励和想法构成的体系,使得整个网络的节点能够就区块链状态达成一致。 -1. **资本证明:** 在PoS中,节点被称为"股权证明",它们必须锁定一定数量的加密货币作为抵押品,以参与网络的验证和区块创建过程。这种抵押品或锁定的加密货币通常被称为"股权"或"代币"。 +当前有很多区块链采用 Pos 共识或基于 Pos 的变种,例如:Polkadot采用一种名为Nominated Proof-of-Stake (NPoS) 的变种,Cosmos网络使用一种基于Tendermint协议的PoS机制,以太坊也从工作量证明(Proof of Work,PoW)转向了权益证明(PoS)。 -2. **区块创建:** 与PoW中的挖矿不同,PoS网络中的下一个区块的创建者是根据他们所持有的加密货币数量来选择的。通常情况下,持有更多代币的节点具有更高的概率被选中来创建下一个区块。 -3. **奖励:** 被选中创建下一个区块的节点将获得区块奖励,通常是新铸造的代币和交易手续费。这是激励节点参与网络并提供安全性的方式。 -4. **权益奖励:** PoS还可以根据持有的代币数量奖励节点,通常被称为"权益奖励"。这意味着持有更多代币的节点可以获得更多的奖励。 +#### 基本原理 -PoS的优点包括相对较低的能源消耗,减少了挖矿的计算成本,以及增加了代币的长期持有激励。然而,PoS也面临一些挑战,如富豪攻击(一个持有大量代币的节点能够主导网络)和初始分配问题(新加入网络的节点如何获取代币来参与)等。 +在权益证明机制下,验证者明确地通过原生代币质押(称为 Staking)到网络中。验证者负责检查在网络上传播的新区块是否有效,并偶尔被随机算法选中自己创建和传播新区块。 质押原生代币充当抵押品,如果验证者有失信行为或者消极怠工,系统销减抵押品作为惩罚(slash)。 -许多加密货币和区块链项目都采用了PoS或其变种作为共识算法,以提高性能、可扩展性和能源效率。例子包括以太坊的PoS升级、Cardano、Tezos等。PoS继续在加密货币领域中得到广泛探讨和应用。 \ No newline at end of file + + +#### PoS 与 PoW 对比 + + + +当然,下面是一个详细的权益证明(PoS)和工作量证明(PoW)的优缺点对比表格: + +| **特性** | **权益证明(PoS)** | **工作量证明(PoW)** | +| -------------- | ---------------------------------------- | ------------------------------ | +| **能耗** | 低 | 高 | +| **硬件需求** | 普通计算设备即可 | 需要专用挖矿设备(如ASICs) | +| **激励机制** | 通过质押获得奖励或交易费用 | 通过挖矿获得区块奖励和交易费用 | +| **中心化风险** | 可能因大户控制较多币导致一定程度的集中化 | 大矿池可能集中控制算力 | +| **51%攻击** | 通常需控制51%质押的币 | 通常需控制51%算力 | +| **技术复杂性** | 较高,需要实施复杂的质押和惩罚机制 | 较低,基本上是算力竞争 | +| **公平性** | 初始持币分配可能不均 | 挖矿资源分配可能不均 | +| **惩罚机制** | 存在质押削减机制,违规者可能失去质押币 | 无直接经济惩罚,矿工仅浪费电力 | + + +通过这个对比表,可以更清晰地看到PoS和PoW各自的优缺点。 \ No newline at end of file diff --git "a/bitcoin/\345\237\272\347\241\200\346\246\202\345\277\265/script.md" "b/bitcoin/\345\237\272\347\241\200\346\246\202\345\277\265/script.md" index bcdd3d6..fcd1875 100644 --- "a/bitcoin/\345\237\272\347\241\200\346\246\202\345\277\265/script.md" +++ "b/bitcoin/\345\237\272\347\241\200\346\246\202\345\277\265/script.md" @@ -1,8 +1,6 @@ -# 脚本 +## 比特币脚本 -## 介绍 - -比特币交易脚本语言,也称为脚本,是一种**类似Forth的逆波兰表达式的基于堆栈的执行语言**。放置在UTXO上的锁定脚本和解锁脚本都以此脚本语言编写。当一笔比特币交易被验证时,每一个输入值中的解锁脚本与其对应的锁定脚本同时 (互不干扰地)执行,以确定这笔交易是否满足支付条件。 +比特币交易脚本语言(以下简称脚本),是一种**类似Forth的逆波兰表达式的基于堆栈的执行语言**。放置在UTXO上的锁定脚本和解锁脚本都以此脚本语言编写。当一笔比特币交易被验证时,每一个输入值中的解锁脚本与其对应的锁定脚本同时 (互不干扰地)执行,以确定这笔交易是否满足支付条件。 脚本是一种非常简单的语言,被设计为在执行范围上有限制,可在一些硬件上执行,可能与嵌入式装置一样简单。 它仅需要做最少的处理,许多现代编程语言可以做的花哨的事情它都不能做。 但用于验证可编程货币,这是一个经深思熟虑的安全特性。 @@ -36,7 +34,7 @@ UTXO被永久地记录在区块链中,因此是不变的,并且不受在新 **条件操作码**(Conditional operators)对一个条件进行评估,产生一个 TRUE 或 FALSE 的布尔结果(boolean result)。例如, OP_EQUAL 从堆栈中弹出两个项目,如果它们相等,则推送为 TRUE(由数字1表示),否则推送为 FALSE(由数字0表示)。比特币交易脚本通常包含条件操作码,以便它们可以产生用来表示有效交易的 TRUE 结果。 -![堆栈](../graph/%E5%A0%86%E6%A0%88.png) +![堆栈](../../graph/%E5%A0%86%E6%A0%88.png) 绝大多数解锁脚本都指向一个公钥哈希值(本质上就是比特币地址),因此如果想要使用资金则需验证所有权,但脚本本身并不需要如此复杂。任何解锁和锁定脚本的组合如果结果为真(TRUE),则为有效。 diff --git a/eth/EthWeekly.md b/eth/EthWeekly.md index e69de29..5e90469 100644 --- a/eth/EthWeekly.md +++ b/eth/EthWeekly.md @@ -0,0 +1,37 @@ +### 每周以太坊(Week in Ethereum News) + +#### 概述 + +每周以太坊(Week in Ethereum News)是一个由Evan Van Ness创办的周刊,专门总结和报道以太坊生态系统中的重要新闻和发展动态。自2015年开始,每周以太坊致力于为以太坊社区提供最新的技术进展、项目更新、开发者资源和行业新闻。每周以太坊因其及时、全面和专业的报道,成为了以太坊社区中备受信赖的信息来源。无论是开发者、研究者、投资者还是普通用户,都可以通过该周刊获取有价值的信息,了解以太坊生态系统的最新动态。 + +用户可以访问[每周以太坊官网](https://weekinethereumnews.com/)阅读最新的周刊内容和存档,登链社区对[每周以太坊](https://learnblockchain.cn/people/4295)的进行了跟踪翻译 + + + +#### 周刊主要内容 + +1. **技术进展** + + - **协议更新**:涵盖以太坊协议和相关技术的最新进展,[EIP](https://learnblockchain.cn/tags/EIP)(以太坊改进提案)的讨论和实施。 + - **开发者工具**:介绍新的开发者工具、框架和库,帮助开发者更高效地构建和部署智能合约和DApps。 + - **技术教程**:提供关于智能合约编写、优化和安全性方面的教程和指南。 + +2. **开发者资源** + + - **开源项目**:推荐和介绍有价值的开源项目和代码库,鼓励开发者参与和贡献。 + - **学习资源**:汇总和分享学习以太坊和区块链技术的资源,包括书籍、课程、视频和在线教程。 + +3. **项目更新** + + - **新项目发布**:报道新推出的以太坊项目和DApps,包括DeFi(去中心化金融)、NFT(非同质化代币)、DAO(去中心化自治组织)等领域。 + - **项目进展**:更新现有项目的进展情况、重大升级和合作伙伴关系等。 + +4. **社区活动** + - **会议和黑客松**:预告和回顾全球范围内的以太坊相关会议、研讨会和黑客松活动,促进社区交流和合作。 + - **社区动态**:报道社区成员的观点、讨论和倡议,反映以太坊社区的最新动向和发展趋势。 + +5. **行业新闻** + - **市场动态**:分析以太坊市场的最新走势,包括ETH的价格变化、市场情绪和投资趋势。 + - **政策法规**:跟踪全球范围内关于区块链和加密货币的政策和法规变化,解读其对以太坊生态系统的影响。 + + diff --git a/eth/PoS.md b/eth/PoS.md deleted file mode 100644 index 7661c56..0000000 --- a/eth/PoS.md +++ /dev/null @@ -1,34 +0,0 @@ -# 权益证明机制(PoS) - -## 什么是权益证明 - -权益证明是**构成共识机制的基础**,区块链使用这些机制来实现分布式共识。 - -在工作量证明共识机制中,矿工通过消耗能源来证明他们拥有资本以应对风险。 以太坊采用权益证明机制,在该机制下,验证者明确地通过以太币将资本质押到以太坊上的智能合约中。 这些质押的以太币充当抵押品,如果验证者有失信行为或者消极怠工,那么可以销毁抵押品。 之后,验证者负责检查在网络上传播的新区块是否有效,并偶尔自己也创建和传播新区块。 - -## PoS对比PoW的优势 - -* 能效更高 – 无需在工作量证明计算中使用大量能源 -* 门槛更低、硬件要求下降 – 无需购买高性能硬件以便获得创建新区块的机会 -* 中心化风险降低 – 权益证明应该可以增加保护网络安全的节点 -* 由于能源需求低,发行较少的以太币就可以激励大家参与 -* 与工作量证明相比,对不当行为的经济处罚让 51% 攻击的代价呈指数级增加 -* 如果 51% 攻击是为了攻破加密经济的防御,那么社区可以求助于诚实链的社会恢复 - -## 验证者 - -要想作为验证者参与,用户必须向存款合约存入 32 个以太币并运行三种独立的软件:执行客户端、共识客户端和验证者。 存入以太币时,用户会进入一个激活队列,限制新验证者加入网络的速度。 激活后,验证者将从以太坊网络上的对等节点接收新区块。 区块中交付的交易会被重新执行,并且对区块签名进行检查以确保区块是有效的。 然后验证者在整个网络上发送支持该区块的投票(称为认证)。 - -在工作量证明中,生成区块的时间是由挖矿难度决定的,**而在权益证明中,节奏是固定的**。 权益证明以太坊中的时间分为时隙(12 秒)和时段(32 个时隙)。 在每个时隙中随机选择一位验证者作为区块提议者。 该验证者负责创建新区块并发送给网络上的其他节点。 另外在每个时隙中,都会随机选择一个验证者委员会,通过他们的投票确定所提议区块的有效性。 - -## 工作过程 - -在以太坊2.0中,验证者将通过在官方的存款合约(deposit contract) 中进行存款来质押至少32 ETH,该存款合约由以太坊基金会开发。验证者将下载和运行以太坊2.0客户端软件。在运行客户端软件时,验证者将被随机选中在以太坊2.0区块链上提议区块和对区块进行证明(以一定概率被选中,概率根据质押的ETH数量而定,质押越多,概率越高)。以正确的方式提议区块和证明区块的验证者,将以其质押金的一个百分比获得ETH奖励。 - -如果某个验证者未能保持在线并执行其计算职责,那该验证者的区块奖励将会适度减少,以此来激励验证者尽可能地保持在线。如果某个验证者试图恶意地攻击网络 (即验证不正确的数据历史),那该验证者的所有或部分质押的 32 ETH 将被罚没。 - -在PoS 网络,用于抵御恶意参与者的加密经济激励机制更加强大。在PoW中,某次失败攻击的经济风险等同于攻击者为获得所需的哈希算力所消耗的电力成本;而在PoS中,发起攻击的成本等同于质押的ETH价值,因此惩罚金额也是如此。与更加抽象的电力成本相比,攻击者可能更担心直接拿质押的加密资金冒险来发起攻击。尽管失败的PoW攻击会导致电力成本的损失,而在PoS中的惩罚是罚没验证者的质押金,这相当于矿工在一次失败的攻击中烧毁了整个PoW服务器机群。简言之,PoS中为了网络的最大利益而行动的经济动机更加强烈。 - -*** - -参考文章:https://ethereum.org/zh/developers/docs/consensus-mechanisms/pos/ diff --git a/eth/Vitalik.md b/eth/Vitalik.md index e69de29..26d9553 100644 --- a/eth/Vitalik.md +++ b/eth/Vitalik.md @@ -0,0 +1,24 @@ +### 关于Vitalik Buterin + +Vitalik Buterin是以太坊(Ethereum)的联合创始人之一,他被广泛认为是区块链和加密货币领域的先驱和重要思想家。作为以太坊的主要创始人,Vitalik Buterin推动了智能合约和去中心化应用(DApps)的发展,为区块链技术的广泛应用奠定了基础。 + + + +#### 早期生活与教育 + +1. **出生与成长** + - **出生日期**:1994年1月31日 + - **出生地**:俄罗斯科洛姆纳 + - **移民加拿大**:6岁时,随着父母移民到加拿大 +2. **教育背景** + - **早期教育**:在加拿大接受基础教育,展现出对数学、编程和经济学的浓厚兴趣。 + - **大学**:在加拿大滑铁卢大学学习计算机科学,但在2014年休学以全职投入以太坊的开发。 + + + +#### 区块链结缘 + +17岁的Vitalik首次了解比特币,并对其去中心化特性产生了浓厚兴趣。2011年,他联合创办了《**比特币杂志(Bitcoin Magazine)**》,并担任撰稿人和主编,深入探讨比特币及其技术。 + +2013年末,Vitalik发布了以太坊白皮书,提出了一个支持图灵完备的智能合约平台的构想。2014年,以太坊核心团队正式成立,包括Vitalik在内的几位联合创始人,如Gavin Wood、Joseph Lubin等,并通过众筹筹集了超过1800万美元的资金,用于平台的开发和启动。 + diff --git a/eth/eips/README.md b/eth/eips/README.md index e69de29..5071535 100644 --- a/eth/eips/README.md +++ b/eth/eips/README.md @@ -0,0 +1,15 @@ +以太坊改进提案(EIPs)描述了以太坊平台的标准,包括核心协议规范,客户端 API和合同标准。 任何人都可以参与以太坊的改进,参与的方式是向以太坊EIPs GitHub库提交改进提案的pull request,大家可以阅读EIP-1 了解如何提交改进提案。 + + + +## 以太坊改进提案(EIP) + +以太坊改进提议 (EIP)是为以太坊潜在新功能或流程提出建议的标准。 EIP 包含提议改进的技术规范,并作为社区的“真相来源”。 在 EIP 的过程中,将会讨论和制定以太坊的网络升级和应用标准。 + +以太坊社区中的任何人都可以创造一个 EIP。 以太坊改进提案编写准则在 EIP 1 中提供。 以太坊改进提案应主要包括简明技术规范,并提供一些激励措施。 以太坊改进提案的创作者负责在社区内建立共识并记录不同意见。 从历史上看,大多数以太坊改进提案的创作者通常是应用程序或协议开发者,因为提交高水平的以太坊改进提案需要很强的技术能力。 + + + + + +https://eips.ethereum.org/ \ No newline at end of file diff --git a/eth/ethereum.md b/eth/ethereum.md index 7620f99..26d1128 100644 --- a/eth/ethereum.md +++ b/eth/ethereum.md @@ -1,8 +1,6 @@ -# 以太坊 +## 以太坊诞生 -## 背景 - -Vitalik Buterin在2013年发表了一篇名为《以太坊:终极智能合约与去中心化应用程序平台》的博客,其中他首次提出“以太坊”这个概念,并介绍了一种“图灵完备区块链”的理念——时间和资源充足的去中心化计算机可以运行任何应用程序。 +Vitalik Buterin在2013年发表了一篇名为《以太坊:终极智能合约与去中心化应用程序平台》的博客,他首次提出“以太坊”这个概念,并介绍了一种“图灵完备区块链”的理念。 ## 什么是以太坊? @@ -14,106 +12,42 @@ Vitalik Buterin在2013年发表了一篇名为《以太坊:终极智能合约 ## 以太坊与比特币的区别 -比特币通常被视为第一代区块链,其支持参与者在个人计算机中运行程序,让用户能够在去信任化、去中心化的环境中就金融数据库的状态达成一致意见。开发者考虑到安全性的因素,不愿把比特币打造成过于复杂的系统,在设计上显得缺乏灵活性。同时比特币智能合约的语言极为受限(非图灵完备),无法很好适应交易之外的应用程序。 - -相比之下,作为第二代区块链的以太坊,其功能更加的丰富。除了金融交易外,以太坊还实现了更高程度的可编程性。以太坊赋予开发人员更高的自由度,允许其试验个人代码,创造出各种去中心化应用程序(DApp)。 - -## 智能合约 - -以太坊网络上运行程序就称为智能合约,它和其他的程序一样,也是代码和数据(状态)的集合。 - -智能合约(Smart Contract)和人工智能(Artificial Intelligence )的智能没有关系,智能合约最早由尼克萨博在95年提出,它的概念很简单,就是将法律条文写成可执行代码。让法律条文的执行中立化,这个理念和区块链上的程序可以不被篡改、不被干预(只有有人触发交易,它将自动执行)的执行不谋而合,因此区块链引入了这个概念。 - -比特币的交易是可以编程的,使用的是比特币脚本。但是比特币脚本有很多的限制,能够编写的程序也有限。而以太坊程序则是”图灵完备的“,因此理论上我们可以编写能够做任何事情的程序。 - -智能合约非常适合对信任、安全和持久性要求较高的应用场景,比如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权所有权管理、物联网、点对点交易等等。 - -### 编程语言:Solidity - -智能合约现在的主要编程语言是Solidity和Vyper,其中Solidity更为成熟一些,Solidity的合约拓展名为*.sol*。代码被编译为以太坊虚拟机字节码之后,再部署到以太坊网络。以太坊为我们提供了很好的工具来完成这项工作,比如:Remix就是用来开发、编译、部署智能合约的IDE,它还是一个基于浏览器的Web IDE。 - -此外,Solidity还是静态类型语言,支持继承、库和复杂的用户定义类型等特性。 - -## [以太坊节点](以太坊节点.md) - -以太坊节点指的是以某种方式与以太坊网络交互的程序。从简单的手机钱包应用程序到存储整个区块链副本的计算机,任何设备均可扮演以太坊节点。其中主要包括以太坊全节点、以太坊轻节点、归档节点。 - -## [以太坊客户端](以太坊客户端.md) - -以太坊客户端是实现以太坊规范,并且能够通过网络与其他以太坊客户端进行通信的软件应用程序。其根据协议规则验证数据并保持网络安全。 +比特币主要目标是提供一种无需中介的电子现金系统, 比特币的[脚本语言]()相对简单和非图灵完备,只能执行基本的脚本和条件交易,主要用于支付和简单的合约。 -## [以太坊共识](PoS.md) +以太坊以太坊支持图灵完备的智能合约,能够编写复杂的逻辑,用户可以基于合约编写[去中心化应用程序(DApp)](https://learnblockchain.cn/tags/DApp)。已经广泛用于[DeFi](https://learnblockchain.cn/tags/Defi)、[DAO](https://learnblockchain.cn/tags/DAO)、[NFT](https://learnblockchain.cn/tags/NFT)等领域。 -比特币中使用的共识机制为PoW(工作量证明),在以太坊1.0中,也是通过工作量证明来验证区块。而在以太坊2.0中,以太坊通过名为Casper的升级操作从PoW过度到PoS(权益证明)。在该机制下,验证者明确地通过以太币将资本质押到以太坊上的智能合约中。这些质押的以太币充当抵押品,若验证者有失信行为或者消极怠工,则会销毁抵押品。 -## 以太坊燃料费(Gas)与燃料费限额 -在以太坊中引入了**燃料费**(并不是费用,而是花费的燃料量)这一概念,如同汽车无法在燃料耗尽的情况下行驶,合约也不能在没有燃料费的情况下运行。而燃料费与合约的复杂度和难度有关,复杂度越高的合约其所需支付的燃料费也就越高。利用这一点可以很好规避一些长时间的循环程序,因为这意味着需要支付非常高额的燃料费。 +除此之外,比特币采用 [POW](https://learnblockchain.cn/tags/POW) 共识,以太坊已经过渡到 [POS](https://learnblockchain.cn/tags/POS) 共识,比特币出块时间约为 10 分钟左右,以太坊为 12 秒。 -在交易时,需要使用以太币支付燃料费。燃料费通常只消耗一小部分以太币,并设置了一个单位“ gwei ”。其中1gwei相当于以太币的十亿分之一。如果网络拥挤并且许多用户都在参与交易,燃料费的均价就会上涨。相反,如果交易量少,均价也会下降。 -虽然燃料费的价格不断变化,但是每次操作所需的燃料费是固定的。也就是说,执行复杂合约消耗的燃料费要高于简单交易。可以说,**燃料费成为算力度量的标准**,其可以确保系统根据用户的以太坊资源占用率收取相应费用。 -在进行合约交易时,你可以计算出需要支付的燃料费(通过ETH Gas Station)。你可以设置一个较高的价格来激励矿工尽快处理交易。同时,你也可以设置**燃料费限额**,用于自我保护。当合约出现问题时,消耗的燃料费可能会高于计划值。因此燃料费限额的作用就是在设置的燃料费耗尽后,确保操作停止,相应的合约就会失效。如果执行结束还有燃料费剩余,那么这些燃料费就会返还给用户。 +## 关键概念 -简而言之,燃料费决定了矿工处理交易的速度,而燃料费限额则决定用户愿意为此交易支付的燃料费上限。 - -## 以太坊钱包 - -我们可以将以太币存入个人钱包中,有热钱包和冷钱包两种选择。 - -### 热钱包 - -以某种方式连入互联网的数字货币钱包成为“热钱包”。它通常是一种移动或桌面应用程序,用户可以通过其查看余额或发送接收代币。热钱包连入网络,极易遭受攻击,但日常支付更加青睐这种便捷方式。Trust Wallet是一种便捷的移动钱包买,支持多种货币。 - -### 冷钱包 - - 冷钱包则是一种离线工作的数字货币钱包。这类钱包远离在线攻击向量,显著降低遭受攻击的概率。然而,冷钱包的便捷性一般不如热钱包。硬件钱包均属于冷钱包。 - -## [以太坊二层扩容](以太坊二层扩容.md) - -随着以太坊使用人数的增多,区块链的容量已无法满足用户需求,因此扩容方案就此提出。 - -扩容的主要目的是在不影响去中心化和安全性的前提下,提升交易速度和交易吞吐量。而扩容也分为链上扩容和链下扩容。链上扩容需要更改的是以太坊协议(一层网络/主网),其中分片是主要链上扩容技术;链下扩容则是要与主网分开,在二层网络实现,因此也被称作二层扩容。二层扩容主要包括:Rollups、状态通道、Plasma、Validium、侧链等等。 - -## 以太坊质押 - -在工作量证明协议中,矿工负责保障网络的安全性。矿工不会作弊,因为一旦作弊就代表着其算力要超过全网算力的51%,这种做法会空耗电力并且基本无法成功。而权益证明并不存在这种博弈理论,而是通过其他加密货币经济学措施来保障网络的安全。 - -在权益证明中,验证者必须质押一定数量的代币才能获得验证权。如果节点试图作弊,那么其质押的代币也将会丢失;如果节点无响应或者脱机,这些代币也将逐渐耗尽。 - -## 以太坊改进提案(EIP) - -以太坊改进提议 (EIP)是为以太坊潜在新功能或流程提出建议的标准。 EIP 包含提议改进的技术规范,并作为社区的“真相来源”。 在 EIP 的过程中,将会讨论和制定以太坊的网络升级和应用标准。 +## 智能合约 -以太坊社区中的任何人都可以创造一个 EIP。 以太坊改进提案编写准则在 EIP 1 中提供。 以太坊改进提案应主要包括简明技术规范,并提供一些激励措施。 以太坊改进提案的创作者负责在社区内建立共识并记录不同意见。 从历史上看,大多数以太坊改进提案的创作者通常是应用程序或协议开发者,因为提交高水平的以太坊改进提案需要很强的技术能力。 +以太坊网络上运行程序就称为智能合约,它和其他的程序一样,也是代码和数据(状态)的集合。 -## 去中心化金融(DeFi) +智能合约最早由尼克萨博在95年提出,它的概念很简单,就是将法律条文写成可执行代码。让法律条文的执行中立化,这个理念和区块链上的程序可以不被篡改、不被干预(只有有人触发交易,它将自动执行)的执行不谋而合,因此区块链引入了这个概念。了解更多参考 [智能合约百科](https://learnblockchain.cn/tags/智能合约)。 -去中心化金融(DeFi)是一种对金融应用程序实施去中心化的活动,其构建在公共的开源区块链,互联网中的所有用户均可免费访问。在日趋成熟的DeFi生态系统中,用户可以通过点对点网络和去中心化应用程序与其他用户和智能合约进行交互。 +### 编程语言:Solidity -## [以太坊2.0](ethereum2.md) +以太坊智能合约现在的主要编程语言是[Solidity]()和Vyper,Solidity更成熟,他们编写的代码都会被编译为以太坊虚拟机字节码之后,再部署到以太坊网络。了解更多参考 [Solidity百科](https://learnblockchain.cn/tags/Solidity) 。 -随着以太坊网络使用需求的增加,其可扩展性问题逐渐暴露出来,以太坊的手续费也变得昂贵。因此“以太坊2.0”应运而生。该升级提案的重点在于解决可扩展性问题。在保障安全性和去中心化的前提下,通过实施技术升级来实现整个“共识升级”,从工作量证明机制过渡到权益证明机制,以太坊网络的速度、效率以及可扩展性将得到显著改善。 -## 相关概念 -### Slot +### EVM -“世界计算机”以太坊上的时间以12秒为一个单位计数,称为“slots”。每个slot都会分配一个不同的验证节点来提议一个新区块。若它完成了它的任务,一个有效的区块(在4秒内)将会填充slot,否则slot将传递为空。 +以太坊虚拟机(EVM, Ethereum Virtual Machine), EVM是一个图灵完备的虚拟机,用来执行链上合约字节码,并确保所有节点在执行智能合约时的一致性和安全性。了解更多参考 [EVM 百科](https://learnblockchain.cn/tags/EVM)。 -区块提议者将区块发送到网络中的每个节点,然后由节点负责处理它并更新其EVM的状态。这使所有节点与提议者保持同步,并将EVM的环境转变为集体性的以太坊环境。 +### Gas 机制 -每个slot都有一个专门分配的委员会。这个所谓的委员会是一组验证节点,被指派验证和证明由区块提议者广播的区块的有效性。经过验证,委员会成员会广播其加密认证。 +在以太坊中引入了 Gas 作为驱动程序运性的燃料,如同汽车无法在燃料耗尽的情况下行驶,合约也不能在没有燃料费的情况下运行。而 Gas 与合约的复杂度和难度有关,复杂度越高的合约其所需支付的 Gas 也就越高。 -### Epoch +在交易时,需要使用以太币支付燃料费(也称手续费或交易费)。手续费是**用于执行某些操作的燃料数量(Gas),乘以每单位燃料的成本(Gas price)**。如果网络拥挤并且许多用户都在参与交易,Gas price 就会上涨。相反,如果交易量少,Gas price 也会下降。 -如今有几十万个验证器,如果每个验证节点都在每个委员会中,网络会在大量认证计算下崩溃。因此做了一个去中心化的权衡,每个验证器不会验证每个slot,但会验证每个epoch。 -一个epoch由32个slots组成,因此1个epoch为6分24秒。在每个slot的开始,整个验证节点小组被随机(利用RANDAO进行随机分配)分成32个委员会,对应于即将到来的epoch的32个slots。 -### BLS签名 +在 EIP-1559 升级后,燃料费分为两部分:`base fee` 和 `priority fee`(小费)。`Base fee` 由协议设定,并被系统燃烧掉,`Priority fee` 是小费,用来吸引验证者选择将你的交易添加到下一个区块。了解更多参考 [Gas 百科](https://learnblockchain.cn/tags/EVM)。 -每个slot都会带来一个新的委员会。第一个成员是区块提议者,其余为证明人。区块提议者有4秒时间向委员会发送区块。每个成员验证区块并创建BLS签名(若未指定区块,则会验证最后一个块)。 -BLS签名是一种数字签名,它提供了所有签名应有的作用(证明特定消息是由特定的人签名的),同时它有一个附加属性:它可以被聚合。一旦BLS签名被聚合,一个操作就可以验证数千个签名。 diff --git a/eth/ethereum2.md b/eth/ethereum2.md index 2a35029..45ce26e 100644 --- a/eth/ethereum2.md +++ b/eth/ethereum2.md @@ -1,55 +1,9 @@ -# 以太坊2.0 - ## 什么是以太坊2.0? -以太坊2.0,也称为Eth2或Serenity,也就是现有以太坊区块链的升级版本。本次升级旨在提高以太坊网络的速度、效率和可扩展性,使其能够处理更多交易并缓解瓶颈。 - -然而Eth2并不完全“存在”,2022年1月,以太坊基金会表示将不再把ETH的升级称之为“以太坊2.0”。此次更名旨在反映这样一个事实,即之前被称为“以太坊2.0”只是一次升级,而不会诞生一个新的网络。因此,现在的**Eth1被称为“执行层”**,智能合约和网络规则驻留在其中,而**Eth2被称为Consensus Layer“共识层”**,它确保参与网络的设备按照其规则行事。但业界一直还是延续“以太坊2.0”的叫法。 - -在以太坊社区中,以太坊2.0并不是一个新的想法。改变以太坊底层共识机制以解决PoW区块链的限制,这个想法自以太坊区块链创世以来就存在了。在2015年7月以太坊主网 Frontier 发布之后,以太坊2.0紧随许多计划的以太坊主网升级而至,这些升级包括: - -- Homestead (家园),2016年3月 -- Metropolis: Byzantium (大都会:拜占庭),2017年10月 -- Metropolis: Constantinople (大都会:君士坦丁堡),2019年2月 -- Istanbul (伊斯坦布尔),2019年12月 - -相比于过去的升级,以太坊2.0的发布尤为重要,因为它将实现PoS共识机制,使网络摆脱当前的PoW架构。 - -### PoW存在的问题 - -* **可扩展性**:由于每个区块是按照顺序被挖出的,且每个区块中可以记录的数据量有限 (即一种称为区块大小的度量),以太坊在给定的时间内只能处理数量有限的信息。如果待处理的交易数量超过了1个区块可以容纳的数量,那么剩余的交易就必须等到下一个区块,以此类推。这种可扩展性问题将通过以太坊2.0 PoS 网络上实现的Sharding (分片) 得以解决。 -* **可及性**:虽然PoW区块链很实用,但入场成为一名矿工的障碍是相当高的。个人必须购买并安装所有必要的硬件设施。为了从区块奖励中赚取可观的回报,可能还必须在电力成本较低廉的地区运行设备。另一个更深的层面是,公司和企业的电力成本往往会降低,这意味着单个矿工为了寻求盈利的最大化,将需要成立一家公司并购买足够多的挖矿硬件,以让自己的投入得到回报。几个最大的挖矿集团在竞争中超过了大多数普通的区块链用户,使后者无法参与到网络的维护中,进而导致了矿工的集中化问题。在以太坊2.0中,PoS 的目标之一正是为更多的独立验证者参与进来创造公平的竞争环境,让他们通过维护网络的真实性来获得共享的回报。 - -## 以太坊2.0升级的几个阶段 - -### 阶段0 - -Eth2 将分阶段推出,从2020年的阶段0开始。阶段0将启动以太坊2.0网络的信标链(beacon chain)。信标链将实现PoS并管理验证者的注册,验证者将开始在以太坊2.0上证明和创建区块。 - -信标链要发布创世区块,必须要至少 424,288 ETH 被质押到网络上,也即至少需要 16,384 名验证者(确定这些数字是为了确保网络足够的安全性和去中心化)。只有当这个门槛值达到之后,Staking奖励才会进行分配,这就是阶段0的早期参与者需要进行一些利他行为的部分原因。 - -随着信标链的上线和PoS的实现,最初的以太坊PoW区块链将继续存在。事实上,在阶段0期间,信标链对于大多数以太坊用户来说并不是特别有用;此时的信标链无法处理交易、执行智能合约或者托管Dapp(去中心化应用程序)。根据设计,这样是为了确保在Dapp和用户开始进行每天数以百万计的交易之前,PoS作为一个上线和运行中的网络经过了大量的测试。为了确保以太坊2.0的启动不会干扰当前的以太坊生态系统,当前的以太坊1.0链将会在阶段0期间继续并行运行并获得升级。在阶段1.5期间,这两条链将合并以确保连贯性,成为单一的以太坊网络。 - -### 阶段1 - -阶段1的主要改进是实现分片链 (shard chains),是一种可扩展性解决方案。对于以太坊2.0来说,分片 (sharding) 将使以太坊区块链被分区成64 条独立的链 (称为分片链),这些分片链彼此并行运行并无缝地互操作。分片通过允许以太坊同时处理多笔交易来解决可扩展性问题:理论上来说,一次处理64个区块。通过数十条同时交互运行的区块链 (分片链),数据负担可以分摊到同时被处理的区块之上。 - -### 阶段1.5 - -阶段1期间的一个重要时刻就是将原来的PoW以太坊区块链与全新的PoS链合并。这个时刻在以太坊社区中被称为阶段1.5。具体来说,PoW以太坊区块链将被带入到以太坊2.0中,作为64条分片链中的其中一条与信标链一起存在,这意味不会中断连续性或数据历史。这也意味着ETH持有者将无需在以太坊1.0链和2.0链之间经历任何形式的代币转移或兑换;相反,他们将可以无缝地在以太坊2.0中使用他们的ETH,无需进行任何额外的工作,也不会面临自己的ETH被淘汰的风险。尽管原来的PoW链的历史记录将继续存在,但这条链将不再需要通过PoW共识机制来维护,它将与以太坊2.0上其他的PoS分片链一样运行。 - -### 阶段2 - -随着PoS和分片成功地实现,阶段2将能够实现ETH账户、交易、转账和取款,以及智能合约执行等功能。 - -### 阶段2以后 +以太坊2.0 (或 Eth2 ),原本是指 以太坊全新升级,升级后的以太坊采用 POS及分片扩容。 -阶段2之后,以太坊区块链将不会停止其发展。阶段2之后的几年里,在增加以太坊网络的覆盖面和功能方面将有更多的机遇。 +不过 2022年1月,以太坊基金会表示将不再把ETH的升级称之为“以太坊2.0”。而是将**Eth2被称为Consensus Layer“共识层”**,现在的**Eth1被称为“执行层”** -## 以太坊1.x -预计以太坊2.0在阶段2实现之前不会完全地发挥作用。在此期间,以太坊生态系统将继续发展,以太坊将依旧需要应对来自开发者、Dapp搭建、企业、政府等的需求。因此,至少在阶段1之前,以太坊PoW链将继续作为被称为以太坊1.x的形式存在。开发者们将继续致力于改进以太坊1.x链,即便以太坊2.0的未来正在被构建。 -*** -参考文章:https://mp.weixin.qq.com/s/fBpoeKqNiaOZ8EpGLaycRw \ No newline at end of file diff --git a/eth/layer2s/Readme.md b/eth/layer2s/Readme.md index 97b6489..8d08fe6 100644 --- a/eth/layer2s/Readme.md +++ b/eth/layer2s/Readme.md @@ -2,8 +2,6 @@ - - Layer2 指在区块链技术和网络协议中用于扩展基础区块链(Layer 1)的解决方案的统称。其目的是提高交易速度、降低交易费用,并增强网络的可扩展性和效率。 @@ -16,7 +14,7 @@ Layer2 指在区块链技术和网络协议中用于扩展基础区块链(Laye -![img](https://img.learnblockchain.cn/pics/20240617125056.png&w=1920&q=75!/scale/60) +![img](https://img.learnblockchain.cn/pics/20240617125056.png&w=1920&q=75!/scale/50) diff --git a/eth/networks.md b/eth/networks.md new file mode 100644 index 0000000..64199e9 --- /dev/null +++ b/eth/networks.md @@ -0,0 +1,15 @@ +### 以太坊网络 + + + +以太坊网络由一组使用以太坊协议进行通信的以太坊节点组成。 + + + + + +以太坊只有一个主网,但可以创建符合相同协议规则的独立网络用于测试和开发。 有许多独立的“网络”遵循该协议,但彼此之间没有交互。 你甚至可以在自己的计算机上本地启动一个以太坊网络,以测试你的智能合约和 web3 应用程序。 + + + +以太坊帐户可在不同的网络上使用,但是帐户余额和交易历史记录不会结转到以太坊主网以外。 进行测试时,了解哪些网络可用以及如何获取可以试用的测试网以太币是很有用的。 一般来说,出于安全考虑,不建议在测试网上重复使用主网帐户,反之亦然。 \ No newline at end of file diff --git "a/eth/\344\273\245\345\244\252\345\235\212\345\256\242\346\210\267\347\253\257.md" "b/eth/\344\273\245\345\244\252\345\235\212\345\256\242\346\210\267\347\253\257.md" index 0035a98..849d7e5 100644 --- "a/eth/\344\273\245\345\244\252\345\235\212\345\256\242\346\210\267\347\253\257.md" +++ "b/eth/\344\273\245\345\244\252\345\235\212\345\256\242\346\210\267\347\253\257.md" @@ -1,48 +1,73 @@ -# 以太坊客户端 - ## 什么是以太坊客户端? -以太坊客户端是实现以太坊规范,并通过对等网络与其他以太坊客户端进行通信的软件应用程序。不同的以太坊客户端如果符合参考规范和标准化通信协议,就可以互操作。虽然这些不同的客户端由不同的团队和不同的编程语言实现,但他们都“说”相同的协议并遵循相同的规则。 +以太坊客户端是实现以太坊规范,并通过对等网络与其他以太坊客户端进行通信的软件应用程序。运行客户端的实例(称为[节点](https://learnblockchain.cn/tags/节点))会形成一个网络。 在 POS 升级之后。 一个节点需要运行两种客户端软件:**共识客户端**和**执行客户端**。 + + + +- 执行客户端(也称为执行引擎、EL 客户端或旧称“以太坊 1”客户端)侦听网络中广播的新交易,并在以太坊虚拟机中执行它们,并保存所有当前以太坊数据的最新状态和数据库。对应的以太坊协议的执行层。 +- 共识客户端(也称为信标节点、CL 客户端或旧称“以太坊 2”客户端)实现[共识层](https://learnblockchain.cn/tags/%E5%85%B1%E8%AF%86%E5%B1%82)权益证明共识算法,使网络能够根据来自执行客户端的经验证数据达成一致。 此外还有名为“验证者”的第三种软件,它们可被添加到共识客户端中,使节点能参与保护网络安全。 + + + +两个客户端软件相互协作(如下图),以追踪以太坊的链头,并允许用户与以太坊网络进行交互。 + + + +![关联执行和共识客户端](https://img.learnblockchain.cn/pics/20240618154356.png&w=1920&q=75!/scale/60) + +> 图源:https://ethereum.org/zh/developers/docs/nodes-and-clients/ + -## 为什么会有多种客户端? -存在多种独立开发和维护的客户端,是因为客户端多样性使网络对攻击和漏洞更具恢复能力。 **多种客户端是以太坊独有的优势**,而其他区块链依赖于单一客户端的无误性。 然而,仅仅拥有多种可用的客户端是不够的,这些客户端必须被社区采用,并且全部活跃节点必须相对均匀地分布在它们之间。 +虽然这些不同的客户端由不同的团队和不同的编程语言实现,但他们都“说”相同的协议并遵循相同的规则。 -### 客户端多样性的重要性 +不同的以太坊客户端如果符合参考规范和标准化通信协议,就可以互操作。 -#### 漏洞 +## 客户端多样性 -当代表少数以太坊节点时,一种客户端中的漏洞对网络的风险较小。 由于许多客户端的节点分布大致均匀,大多数客户端出现同一问题的可能性很小,因此网络更加稳健。 -#### 抵御攻击 -客户端多样性还提供了抵御攻击的能力。 例如,要欺骗特定客户端让其接受链的某条分支,这种攻击不太可能成功,因为不大可能以相同方式利用其他客户端,并且规范链未损坏。 客户端多样性程度低增加了主要客户端受到黑客攻击的风险。 已经证实,客户端多样性是抵御网络受到恶意攻击的重要防御手段,例如,由于攻击者能够欺骗主要客户端 (Geth) 对每个区块执行数万次慢速磁盘输入/输出操作,2016 年的上海拒绝服务攻击得以实施。 由于有其他客户端在线且没有同样的漏洞,因此以太坊能够抵抗那次攻击并继续运行,同时修复了 Geth 中的漏洞。 +不同团队开发的各种编程语言中都有[执行客户端](#执行客户端)和[共识客户端](#共识客户端)。 **多种客户端是以太坊独有的优势**,客户端多样性使网络对攻击和漏洞更具恢复能力。从而排除潜在的单点故障。 -#### 权益证明的最终确定性 -占据超过 33% 的以太坊节点的共识客户端中有一个漏洞,它可能会阻止信标链最终确定,这意味着用户可能无法相信交易在某些时候不会被回滚或更改。 对于许多建立在以太坊之上的应用程序,尤其是去中心化金融,这将是一个很大的问题。 - 更糟糕的是,当拥有三分之二多数节点的客户端出现严重漏洞,可能会导致链错误地分叉并最终确定,让大量验证者困陷在无效链上。 如果这些验证者想重新加入正确的链,他们将面临罚没或缓慢而昂贵的自愿退出和重新激活过程。 罚没的轻重随过错节点数量而异,三分之二多数将受到最严重的惩罚。 +这些实现的共同点是它们都遵循同一套规范。 这些规范规定了以太坊网络和区块链如何运作。 此外,它们还定义了每项技术细节,你可以在以下内容中了解这些规范: -尽管这些情况不太可能发生,但为了降低这类风险,以太坊生态系统可以使客户端均衡分布在活跃节点上。 理想情况下,任何共识客户端任何时候都不会达到总节点数的 33%。 +- 最初为[以太坊黄皮书](https://ethereum.github.io/yellowpaper/paper.pdf) +- [执行规范](https://github.com/ethereum/execution-specs/) +- [共识规范](https://github.com/ethereum/consensus-specs) +- 在各种[网络升级](https://ethereum.org/zh/history/)中实现的[以太坊改进提案](https://learnblockchain.cn/tags/EIP) -#### 共担责任 -采用主流客户端也需要人力成本。 这给小型开发团队带来了过多的压力和责任。 客户端多样性程度越低,维护主流客户端的开发者的责任负担就越大。 将这一责任分摊到多个团队,不但有利于以太坊节点网络的健康,也对相关人员的健康有益。 -## 使用非主流客户端 +#### 执行客户端 + +有多种开源的执行客户端,它们由不同的团队使用不同的编程语言开发。 这使得网络更强大、更多样化。 它的理想目标是实现多样性,即没有任何客户端占据主导地位,从而减少任何单点故障。 + +下表汇总了不同的客户端: + +| 客户端 | 语言 | 操作系统: | 网络 | 同步策略 | 状态缓冲 | +| ----------------------------------------------- | -------- | --------------------- | ---------------------------------- | ------------------------------ | --------------- | +| [Geth](https://geth.ethereum.org/) | Go | Linux、Windows、macOS | 主网、Sepolia、Goerli | 快照、完全 | Archive、Pruned | +| [Nethermind](http://nethermind.io/) | C#、.NET | Linux、Windows、macOS | 主网、Sepolia、Goerli 及其他 | 快照(不提供服务)、快速、完全 | Archive、Pruned | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux、Windows、macOS | Mainnet, Sepolia, Goerli, 以及更多 | 快照、快速、完全 | Archive、Pruned | +| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux、Windows、macOS | Mainnet, Sepolia, Goerli, 以及更多 | 完全 | Archive、Pruned | +| [Reth](https://github.com/paradigmxyz/reth) | Rust语言 | Linux、Windows、macOS | 主网、Sepolia、Goerli 及其他 | 完全 | Archive、Pruned | + +有关受支持网络的更多信息,请仔细阅读[以太坊网络](https://ethereum.org/zh/developers/docs/networks/)。 + + + +每种客户端都有独特的用例和优势,所以你应该根据自己的偏好来选择。 + -解决客户端多样性问题不仅需要个人用户选择非主流客户端,还需要矿池/验证者池以及主要去中心应用程序和交易所等机构改用客户端。 然而,所有用户都可以尽一份力量,纠正目前的失衡状况并且实现所有可用以太坊软件的使用正常化。 合并后,所有节点运营商都需要运行执行客户端和共识客户端。 选择下面建议的客户端组合将有助于提高客户端多样性。 -### 执行客户端 -* [Besu](https://www.hyperledger.org/use/besu) -* [Erigon](https://github.com/ledgerwatch/erigon) -* [Nethermind](https://downloads.nethermind.io/) -* [Geth](https://geth.ethereum.org/) ### 共识客户端 +共识客户端负责所有共识相关的逻辑,包括分叉选择算法、处理认证与管理[权益证明](https://ethereum.org/zh/developers/docs/consensus-mechanisms/pos/)奖励及惩罚。 + * [Lighthouse](https://github.com/sigp/lighthouse) * [Lodestar](https://github.com/ChainSafe/lodestar) * [Nimbus](https://nimbus.team/) @@ -51,6 +76,8 @@ *** + + 节选文章: https://ethereum.org/zh/developers/docs/nodes-and-clients/client-diversity/ diff --git "a/eth/\344\273\245\345\244\252\345\235\212\350\212\202\347\202\271.md" "b/eth/\344\273\245\345\244\252\345\235\212\350\212\202\347\202\271.md" index c437540..a07430b 100644 --- "a/eth/\344\273\245\345\244\252\345\235\212\350\212\202\347\202\271.md" +++ "b/eth/\344\273\245\345\244\252\345\235\212\350\212\202\347\202\271.md" @@ -1,12 +1,12 @@ -# 以太坊节点 +## 以太坊节点 -## 什么是以太坊节点? +### 什么是以太坊节点? -“节点”是指任何以太坊客户端软件的实例,它连接到也运行以太坊软件的其他计算机,形成一个网络。 +“节点”是指任何以太坊客户端软件的实例,它连接到其他也运行以太坊软件的计算机,形成一个网络。 客户端是以太坊的实现,它根据协议规则验证数据并保持网络安全。 一个节点需要运行两种[客户端](https://learnblockchain.cn/tags/以太坊客户端)软件:**共识客户端**和**执行客户端**。 -运行一个节点可以让你直接、无需信任和私密地使用以太坊,同时通过保持网络更加健壮和去中心化来支持网络。 -## 节点类型 + +### 节点类型 以太坊客户端可以运行三种不同类型的节点:**全节点、轻节点**和**归档节点**。 diff --git "a/eth/\345\205\261\350\257\206\345\261\202.md" "b/eth/\345\205\261\350\257\206\345\261\202.md" index e69de29..e23bb4a 100644 --- "a/eth/\345\205\261\350\257\206\345\261\202.md" +++ "b/eth/\345\205\261\350\257\206\345\261\202.md" @@ -0,0 +1,36 @@ +## 共识层 + +以太坊从[工作量证明](https://learnblockchain.cn/tags/POW)转向[权益证明](https://learnblockchain.cn/tags/POS) 后,以太坊协议开始有两个核心部分组成:共识层(Consensus Layer)和执行层(Execution Layer),它们承担着不同的功能和任务。 + + + +共识层负责确保网络的安全性和完整性。使所有参与者能够就网络的当前状态达成一致,并就应将哪些交易添加到下一个区块达成共识。 + +共识层的工作有几个部分:成为验证者,参与见证和出块,作恶惩罚。 + + + +### 工作原理 + +在 PoS 中,验证者是关键参与者。他们质押 32 ETH 作为抵押品来参与保护网络安全。 存入以太币时,用户会进入一个验证者激活队列,激活后,验证者需要同时运行执行客户端、共识客户端来进行区块验证及出快,验证者会从以太坊网络上的对等节点接收新区块。 并对一些区块检查并签名投票以确认区块是有效的(称为见证)。 + +以太坊上的时间以12秒为一个单位计数,称为“**slot**”。 32个 slot 组成一个epoch,epoch 可以理解为一个完整的回合( epoch 大约 6.4 分钟)。在每个回合的开始,整个验证节点小组被随机(利用RANDAO进行随机分配)分成32个委员会,对应于即将到来的epoch的32个slots。 + + + +> 将验证者集合划分为若干个委员会对于保持网络负荷易于管理非常重要。 委员会将验证者集合分成不同部分,每个slot都有一个专门分配的委员会,以便每个活跃的验证者在每个 epoch 都会出示证明,而不需要每个 solt 都这样做。 + +在每个Slot中,会从委员会随机选择一位验证者作为区块提议者。 该验证者负责创建新区块并发送给网络上的其他节点。如果某个验证者未能保持在线并执行其计算职责,那该验证者的区块奖励将会适度减少,以此来激励验证者尽可能地保持在线。如果某个验证者试图恶意地攻击网络 (即验证不正确的数据历史),那该验证者的所有或部分质押的 32 ETH 将被罚没。 + + + +每个 epoch 结束时,验证者会对前一个 epoch 的提议和证明进行评估。这种评估会影响验证者的奖励和惩罚。并使用最终性检查点(finality checkpoints)来确认区块链的状态。每个 epoch 的第一个区块通常被用作一个检查点。通过“检查点”区块来管理最终确定性。如果检查点吸引了至少代表质押 ETH 总量三分之二的选票(经过两个 epoch ),那么检查点就会升级为Finalized。 + + + +> 因为只有一部分活跃验证者在每个 slot 中进行证明,但所有活跃验证者都在每个 Epoch 中进行证明。因此,在经过2 个Epoch才能证明“绝对多数投票”(即网络上质押 ETH 总量的 66% 在两个检查点上达成一致)。 +> +> 在区块链浏览器上,通常显示 3 个状态:Unfinalized -> Safe (经过一个Epoch) -> Finalized(经过二个Epoch) + + + diff --git "a/eth/\346\211\247\350\241\214\345\261\202.md" "b/eth/\346\211\247\350\241\214\345\261\202.md" new file mode 100644 index 0000000..e69de29 diff --git "a/eth/\347\224\237\346\200\201\345\272\224\347\224\250/DeFi.md" "b/eth/\347\224\237\346\200\201\345\272\224\347\224\250/DeFi.md" index e69de29..45d1a4d 100644 --- "a/eth/\347\224\237\346\200\201\345\272\224\347\224\250/DeFi.md" +++ "b/eth/\347\224\237\346\200\201\345\272\224\347\224\250/DeFi.md" @@ -0,0 +1,3 @@ +## 去中心化金融(DeFi) + +去中心化金融(DeFi)是一种对金融应用程序实施去中心化的活动,其构建在公共的开源区块链,互联网中的所有用户均可免费访问。在日趋成熟的DeFi生态系统中,用户可以通过点对点网络和去中心化应用程序与其他用户和智能合约进行交互。 \ No newline at end of file