主页 > imtoken官方app > 真正的以太坊远比你想象的简单

真正的以太坊远比你想象的简单

imtoken官方app 2023-05-23 07:41:03

以太坊为什么叫以太坊_以太坊是真的吗_以太坊是怎么做起来的

区块链应用社区

这篇文章是关于

7000字

20分钟完成

在以往的文章中,关于区块链的内容我们看得太多了,但又如水中镜,看完还是一头雾水。 于是我们本能地反思,难道真的只有技术人员才能看懂区块链吗? 其实并非如此…… 除了市场上的小众在吹牛皮之外,其实区块链所涵盖的加密技术和分布式存储并不是什么新鲜事。 有些文章太深入太简单了,我们没看过,让我们觉得这个领域太神秘了。

今天的文章来自 Josh Stark。 虽然有7000字以太坊是真的吗,看起来很长,但是整篇文章没有废话和矫饰。 它是为数不多的能够通俗易懂地解释区块链技术原理的文章之一。 如果你能耐心看完,一定会对以太坊和layer2有一个全新的认识,也可能会重燃对以太坊的信念。

以后我们会带来更多这样的文章。 我们要做的是让更多人看到和了解区块链,更多人转发这种通俗易懂的好文章。 只有更多的人进入这个领域,所谓的区块链“共识”才会有未来。

—DapDap 全部

2018 年是以太坊构建其基础设施的一年。 在这一年中,我们测试了网络的局限性,并将我们的努力重新集中在扩展技术上。

以太坊仍处于初期阶段,不够安全,无法在今天扩展。 这是所有熟悉以太坊的人的共识。 但在过去的一年里,投机炒作大大夸大了区块链的能力。

Ethereum 和 web3——一种由一套共识机制管理并被数十亿人使用的安全、易于使用的分布式网络——仍处于地平线上,并且在关键基础设施到位之前都无法实现。

构建此基础设施并扩展以太坊容量的项目称为扩展解决方案。 有许多不同形式的方案,但通常都是相互兼容或互补的。

在这篇文章中,我将深入探讨一种扩展解决方案:“链下”或“layer2”。

首先,我将讨论以太坊(以及所有区块链)的扩展挑战。

其次,我将讨论缩放问题的不同解决方案,并解释“layer1”和“layer2”的不同之处。

第三,我会介绍layer2并分析它是如何工作的,特别是状态通道、Plasma和Truebit。

本文的重点是让读者全面详细地了解layer2是如何工作的。 但我不会深入研究代码和具体的使用场景。 相反,我们专注于让读者了解构建这样一个系统的经济性,以及所有第 2 层技术的基本原理。

01

公链的扩展挑战

以太坊为什么叫以太坊_以太坊是真的吗_以太坊是怎么做起来的

首先,要有这样一个概念——“缩放”不是一个单一的、具体的问题,它是一系列的问题。 如果以太坊想要为全球数十亿用户提供服务,就必须克服这些障碍。

最常见的问题是交易吞吐量。 目前,以太坊每秒可以处理 15 笔交易。 相比之下,Visa 每秒可以处理 45,000 笔交易。 在过去的一年里,像 Cryptokitties 这样的应用程序的流行已经减缓了整个网络并提高了交易价格。

像以太坊这样的公链要求网络中的每个节点都参与处理每一笔交易,这是它的主要限制。 以太坊上的每一项操作——转账、Cryptokitty 的诞生、ERC20 合约的生成——都必须由网络中的每个节点执行。 这是设计时确定的,也是公链权威性的保证。 节点不需要从外部知道区块链的状态,可以自己解决。

这意味着以太坊的交易吞吐量有一个基本的限制:它不能高于从单个节点获取数据的速度。

我们可以要求每个节点做更多的工作。 如果我们将块大小加倍(忽略气体限制),这意味着每个节点将完成大约两倍于现在的工作。 但这是以去中心化为代价的:每个节点都需要做更多的工作,功能较弱的计算机(例如消费设备)可能会从网络中退出,挖矿能力将集中在强大的节点上。 在操作员的手中。

因此,我们需要一种在不增加单个节点负载的情况下处理更多事务的解决方案。

从概念上讲,我们可以采取两种方法来解决这个问题:

1) 如果每个节点不必并行处理每个操作怎么办?

第一种方法是改变前提:我们能不能建立一个区块链,链上的节点不必参与处理每一笔交易? 是否可以将网络分成两部分并半独立运行?

分离之后,A部分可以处理一批交易,B部分也可以处理一部分,这样区块链的交易吞吐量就翻倍了,因为我们现在设置每两个节点可以同时工作。 如果我们把区块链分成很多很多不同的区域,吞吐量可以提高很多倍。

这就是“分片”背后的思想,由以太坊 Vitalik 等研究人员提出。 将一条区块链分成许多不同的“切片”,每个“切片”都可以独立处理交易。 分片一般是指layer1的扩容方案,因为它是在以太坊底层协议上实现的。

2)如果为以太坊构建一个协议层网络会怎样?

第二种选择与第一种完全相反:与其增加以太坊自身的处理能力,不如在已有的基础上进行构建。 在以太坊区块链基础层的恒定吞吐量之上,尝试执行更多的操作,例如交易、状态更新或简单的计算。

这是“链下”技术背后的原理,包括状态通道、Plasma 和 Truebit。 虽然每种技术都旨在解决不同的问题,但它们都需要在不影响安全性的情况下“脱链”运行。

它们也被称为第 2 层,因为它们建立在以太坊主链之上,不需要在基础层进行更改,而只是作为与链下软件交互的智能合约存在。

02

Layer2 是加密经济解决方案

以太坊为什么叫以太坊_以太坊是真的吗_以太坊是怎么做起来的

在深入讲解layer2方案之前,我们先了解一下其背后的原理。

公链的基础力量在于加密经济共识。

通过仔细调整激励措施并将其与软件和密码学相结合,我们能够在整个网络的系统内达成共识。 这也是中本聪在白皮书中提到的一点,现在已经应用于很多不同的公链,包括比特币和以太坊。

加密经济共识给了我们一个确定性的内核——除非发生51%攻击等极端事件,否则所有操作(包括支付,或者智能合约)都会按照写好的程序执行。

Layer 2 背后的基本原理是我们可以使用这个确定性核心作为锚点——在其之上附加其他经济机制。 Layer 2 可以将公链的效用扩展到链外,让我们在链外进行交互成为可能,而且这些交互在需要的时候仍然可以返回主链。

这些层都建立在以太坊主链上,因此无法继续保证与链上操作一样的安全性。 但仍然可以确保它们是最终的、安全的、实用的——尤其是通过牺牲一点操作权限,可以提高操作效率,降低交易成本。

密码经济学的起源不是中本聪的白皮书,但这也不是终点——它是我们正在尝试应用的技术。 不仅在核心协议的设计上,在layer2的设计上也是如此,旨在扩展底层链的功能。

03

通道状态特征和限制

以太坊为什么叫以太坊_以太坊是真的吗_以太坊是怎么做起来的

一、 状态通道

状态通道是指一种用于处理交易和其他“链下”操作的技术。 然而,状态通道中发生的事情仍然是高度安全和最终的:如果出现问题以太坊是真的吗,我们仍然可以选择回退到链上交易。

许多读者会熟悉支付渠道,这些渠道已经存在多年,最近通过闪电网络在比特币上实现。 状态通道是一种更通用的支付通道形式——它们不仅可以处理支付,还可以处理对区块链的“状态更新”——比如智能合约变更。 状态通道最早由 Jeff Coleman 于 2015 年提出。

通过一个案例我们可以更好的理解状态通道的工作方式。 这仍然是一个概念性的解释,我们不会深入到具体的技术细节。

例如,Alice 和 Bob 正在玩井字游戏,获胜者可以获得 1ETH 作为奖励。 最简单的方法是在以太坊上创建一个智能合约,将西洋双陆棋的游戏规则写入智能合约,跟踪每个玩家棋子的动向。 每次玩家移动一块时发送到合同。 当玩家获胜时,合约将向获胜者支付 1ETH。

这种做法虽然可行,但缺点也很明显,效率低,速度慢。 整个以太坊网络都在为这个游戏运行,造成资源浪费。 玩家每走一步都需要支付费用,并且必须等待矿工完成验证才能进行下一步。

这时候我们可以设计一个系统,让Alice和Bob的交互尽可能在链下完成。 Alice 和 Bob 可以在链下更新状态,并在需要时返回链上交易。 我们称这个系统为“状态通道”。

首先,我们作为“裁判”在以太坊主链上创建一个智能合约,将游戏规则写入合约,并确定爱丽丝和鲍勃为这场游戏的两个玩家。 然后为这个合约设置1ETH的奖励。

随后,爱丽丝和鲍勃开始互动。 Alice开始迈出第一步,签名并发送给Bob,Bob也会签名,将签名后的版本发回,自己留一份。 然后来回,每次他们更新他们的状态。 每个交互都包含一个“随机数”,以便于按时间对每个交互进行排序。

到目前为止,所有的操作都没有发生在链上。 Alice 和 Bob 只是在互联网上进行了交易,但是所有的交易都可以上传到合约中——也就是说,它们仍然是有效的以太坊交易。 你可以理解为这两个人来回写区块链认证的支票。 事实上,银行不提供存款或取款业务,但每张支票都可以随时存入。

如果 Alice 和 Bob 的游戏结束,假设 Alice 赢了,他们可以上传最终状态(交易列表)并关闭通道。 这样,您只需支付一次交易费用。 合约可以确保“最终状态”由双方签署,等待一段时间以确保结果可靠,最后将 1ETH 的奖金支付给 Alice。

为什么需要这段等待时间?

假设 Bob 上传的不是最终版本,而是他赢得的版本。 但是合约只会执行指令,没有办法知道哪一个是最终版本。 这时,设置一个等待期可以让爱丽丝提供证据证明她提供的是最终版本。

Alice提交一份双方签署的交易副本,合约传递的nonce确定Alice提交的版本为最终版本,拒绝Bob的请求。

特点和局限性

状态通道可以适用于许多应用程序,并为传统的链上操作提供许多升级。 但是,在引入状态通道之前必须考虑其他因素:

l 状态通道取决于可用性。 如果Alice在这个过程中掉线了(假设是因为Bob急于拿到奖金,破坏了Alice的家庭网络),那么她可能无法及时提交状态信息。 但是尽管如此,爱丽丝还是可以付钱给其他人来保存她的交易状态,并代表她维护数据的可用性。

l 如果用户需要进行多次状态更新且持续时间较长,那么这种状态通道特别适合。 因为虽然在创建状态通道的时候需要付费,但是之后的维护成本会非常低。

l 状态通道适用于固定用户的应用。 因为合约必须知道通道内的所有实体(地址)。 虽然可以添加或删除人员,但这需要更改合同。

l 状态通道具有很强的隐私属性。 因为所有的操作都发生在“内部”渠道和参与者之间,不会在链上发布,也不会在链上记录。 只有交易的开始和结束状态是公开的。

l 状态通道具有即时终结性。 也就是说,一旦双方都签署了状态,就可以认为是最终状态。 如果需要,也可以“强制”在链上执行。

在 L4,我们正在构建 Counterfactual:一个基于以太坊的状态通道框架。 我们的通用模块化模板将允许开发人员在他们的应用程序中使用状态通道,而无需自己研究状态通道。

另一个值得关注的状态通道项目是 Raiden,它旨在使用类似于闪电网络的模型来构建支付通道。 这意味着你不仅可以与特定的人开一个频道,你还可以与一个更大的频道网络开一个频道,让你与同一频道的所有成员进行交易而不收取费用。

除了 Counterfactual、Raiden,还有几个基于以太坊的应用程序。 例如,Funfair 为其去中心化平台构建了状态通道(“Fate 通道”),Spankchain 为成人演员构建了单向支付通道(他们还为 ICO 创建了状态通道),Horizo​​n Games 构建了他们的第一个以太坊游戏创建了一个状态通道。

04

Plasma——创建子链以扩大吞吐量

以太坊是真的吗_以太坊为什么叫以太坊_以太坊是怎么做起来的

2017 年 8 月 11 日,Vitalik Buterin 和 Joseph Poon 发表了一篇题为“Plasma: Autonomous Smart Contracts”的论文。 本文介绍了一项可以提高以太坊处理效率的新技术。

与状态通道一样,Plasma 也是一种处理链下交易的技术,需要依赖以太坊底层技术来保证其安全性。 但 Plasma 的切入点不同,它是通过在以太坊主链上创建一个“子”区块链。 这些“子链”反过来也可以创建自己的“子链”,等等。

结果是我们可以在子链级别执行许多复杂的操作,运行具有数千个用户的应用程序,而与以太坊主链的交互最少。 Plasma 子链可以运行得非常快并且收取较低的交易费用,因为整个过程不需要在以太坊主链上发生。

同样,我们用一个例子来理解 Plasma 是如何工作的。

比如说,你在以太坊上制作了一个纸牌交易游戏。 这些卡片是 ERC 721 资产(类似于 Cryptokitties),但它们具有某些特征和属性,允许用户通过它们进行游戏和赌博——类似于炉石传说。 在链上执行这些复杂的操作非常昂贵,因此使用 Plasma 是一个不错的选择。

首先,我们在以太坊主链上创建一套智能合约作为“根”服务于我们的 Plasma 子链。 Plasma Root 包含我们子链的“状态转换规则”(比如资产只能交易一次),记录子链状态的哈希值,作为一种让用户与以太坊主链交互的“桥梁”和子链。

然后,我们创建我们的子链。 子链可以有自己的一套共识机制——在这种情况下是权威证明(PoA),这是一种依赖于受信任的区块生产者的共识机制。 区块生产者类似于工作量证明中的矿工——它们是接受交易、生成区块并收取交易费用的节点。 作为一个简单的类比,假设您(即制作游戏的公司)是唯一生产区块的实体——也就是说,您的公司运行了几个节点,这些节点是我们子链的区块生产者。

一旦子链被创建或激活,区块生产者就会提交给根合约。 这意味着他们实际上是在说“我证明子链中的最新区块是 X”。 这些承诺都记录在 Plasma 根中,以证明子链中发生的交易。

现在子链已准备就绪,我们可以创建集换式卡牌游戏的基本部分。 该卡是基于以太坊主链创建的ERC 721资产,通过Plasma Root转移到子链。 这就提出了一个关键点:Plasma 允许我们与基于以太坊的数字资产进行大规模交互。 然后,我们在子链上部署游戏应用的智能合约,将游戏逻辑和规则写入合约。

在游戏过程中,游戏用户其实只是在和我们的子链进行交互。 他们可以持有资产(ERC 721 代币),与以太币交易,与其他用户一起玩游戏,但他们根本不需要直接与主链交互。 因为只有少数节点需要处理交易,所以交易费用会低很多,操作也会更快。

但这如何确保安全呢?

显然,通过将主链上的更多操作转移到子链上,整个区块链网络可以处理更多的交易。 但是如何保证它的安全呢? 发生在子链上的交易是最终的吗? 毕竟我们刚才说了,会有实体公司控制区块的产生。 这不是去中心化吗? 这家公司可以随时窃取您的资金或游戏卡吗?

简单的说,即使一家公司对子链的出块拥有100%的控制权,Plasma也为你提供了一个基本的保障,你可以随时将你的资金和资产取出并放回主链。 如果区块生产者行为不端,最坏的情况是它会迫使你离开子链。

且看区块链生产者会做出什么样的恶意行为,再看看Plasma会做出什么样的应对措施。

首先,想象一下区块生产者如何欺骗你:通过创建一个假的新区块来控制你的资金。 他们是唯一有权生成区块的人,因此他们可以创建不遵循区块链规则的区块。 与其他区块一样,他们发布了对包含区块证明的 Plasma Root 合约的承诺。

如前所述,保证用户可以将资产提现回主链。 在这种情况下,用户(或者更确切地说,代表他们的应用程序)将检测到盗窃企图,并在区块生产者尝试花费他们“被盗”的资产之前退出。

Plasma 还创建了一种机制来防止欺诈性退出主链。 Plasma 包含一种机制,任何人(包括您)都可以通过该机制向阻止生产者作弊的 Root 合约发布欺诈证明。 此欺诈证明将包含有关前一个块的信息。 根据子链的状态转移规则,假区块不符合之前的状态。 如果欺诈被确认,子链将被“回滚”到之前的区块。 更令人欣慰的是,我们建立了一个系统,任何签署假区块的区块生产者都会因为失去链上存款而受到惩罚。

但是提交欺诈证明需要访问底层数据,即用于证明欺诈的区块的实际历史。 如果区块生产者也不共享先前区块的信息以防止 Alice 向 Root 合约提交欺诈证据怎么办?

在这种情况下,爱丽丝需要撤回她的资金,离开子链。 实际上,爱丽丝向根合约提交了“资金证明”。 在等待一段时间任何人都可以挑战她的证明(例如,证明她在后来的有效区块中花了这笔钱)之后,爱丽丝的资金被转移回以太坊主链。

最后,区块生产者可以审查子链的用户。 如果用户愿意,区块生产者可以有效地阻止用户在子链上做任何事情。 这种情况的解决方案也很简单,如上所述将我们所有的资产撤回主链。

然而,取款也有其自身的风险。 如果子链上的所有用户同时想要取出所有资产,以太坊主链可能无法实现这一操作,这意味着用户可能会损失资金,但也有很多技术可以防止这不会发生。 例如延长提款的响应时间。

事实是一家公司控制100%的出块权是非常极端的情况,一般不会发生。 也就是说,子链和公链一样是去中心化的。 因此,诉求中提到的风险会相对较小,用户可以轻松将资产转回以太坊主链。

既然我们已经解释了状态通道和 Plasma,那么有必要对两者进行比较。

l 一个区别是状态通道可以在同一通道中的所有用户都同意退出时立即退出。 例如,如果 Alice 和 Bob 都同意关闭一个通道并取回他们的资金,他们可以立即取回他们的资产。 这在 Plasma 上是不可能的,用户必须等待一定的时间才能注销。

l 状态通道也比 Plasma 更便宜、更方便。 这意味着我们可以将两者结合起来在 Plasma 子链上构建状态通道。 例如,在一个应用程序上,两个用户可以进行一系列小额交易。 在子链上创建状态通道比直接在子链上进行交易更便宜、更高效。

l 最后,这篇文章可能遗漏了一些细节。 Plasma 仍处于早期阶段。 大家可以看看V神最近提出的“Minimal Viable Plasma(最小可行等离子体)”。 还有一个台湾团队也在做这方面的工作。 OmiseGo 也在尝试将这项技术应用到其交易所中。

05

Truebit——完成繁重的链下计算

以太坊为什么叫以太坊_以太坊是真的吗_以太坊是怎么做起来的

Truebit 是一项帮助以太坊完成繁重的链下计算的技术。 状态通道和Plasma扩大了吞吐量,所以这就是Truebit的区别。 正如我们在文章开头提到的,以太坊面临的困难不仅仅是 1 Scaling throughput。 Truebit 不会增加交易吞吐量,但它会让基于以太坊的应用程序做更复杂的事情。

有些操作的计算成本太高,无法在链上执行。 例如,验证来自其他区块链的简单支付验证 (SPV) 证明,它允许以太坊智能合约“检查”交易是否发生在另一条链(如比特币)上。

例如,您需要在基于以太坊的应用程序上执行一些昂贵的计算(例如 SPV 证明)。 不能简单的做成以太坊主链智能合约的一部分,因为SPV计算成本太高。 事实上,在以太坊上进行所有计算是昂贵的,因为总是需要所有节点参与计算。

但是,您可以向某人(我们称其为求解器)支付少量费用来进行链下计算。

首先,解决者将费用存入智能合约,然后您将要求告知解决者。 他进行计算并将结果反馈给您。 如果计算正确,他的押金将被退还。 如果计算出错(他犯了错误或作弊),他将失去存款。

那么我们怎么知道结果是正确的呢? Truebit 使用一种称为“验证游戏”的经济机制。 从本质上讲,我们创建了一种激励机制,鼓励“挑战者”验证解决者提交的结果。 如果挑战者能够验证游戏,证明解决者提交了错误的结果,他们将获得奖励,而解决者将失去押金。

因为验证游戏是在链上执行的,所以它不能简单地计算结果(这会破坏整个系统的目的,因为如果我们可以在链上进行计算,我们就不需要 Truebit)。 相反,我们迫使解决者和挑战者确定他们不同意的具体操作。 实际上,我们正试图让双方对结果提出异议。

一旦操作被识别,就可以在以太坊主链上运行。 然后,我们通过智能合约执行细节,一劳永逸地解决哪一方说的是真话,哪一方说谎或错了。

06

layer2的common kernel等结论

以太坊是怎么做起来的_以太坊为什么叫以太坊_以太坊是真的吗

Layer 2 有一个共同的核心:一旦我们拥有公链提供的确定性硬核,我们就可以将其用作数字经济系统的锚点,从而扩展区块链应用程序的有效性。

上面我提到了一些例子,可以让我们更具体的了解Layer2的应用场景。 Layer 2 使用的经济机制往往是互动游戏:它们通过为不同玩家创造激励来竞争或“检查”来运作。 区块链应用程序可以假设给定的声明可能是真实的,因为我们已经为另一方提供了证明它是错误的信息的强烈动机。

在状态通道中,我们通过给每一方“反驳”另一方的机会来确认通道的最终状态。 在 Plasma 中,这就是我们管理欺诈证明和取款的方式。 在 Truebit 中,这就是我们确保求解器说实话的方式——通过激励验证者证明求解器是错误的。

这些系统将有助于解决将以太坊扩展到庞大的全球用户群所涉及的一些挑战。 一些工具,例如状态通道和 Plasma,将增加平台的交易吞吐量。 其他工具,如 Truebit,将可以将更困难的计算作为智能合约的一部分,从而开辟新的用例。

这三个示例仅代表加密经济扩展方案的一小部分。 我们甚至还没有开始研究像 Cosmos 或 Polkadot 这样的“区块间协议”。 我们还应该期望创建新的和意想不到的第 2 层系统,以改进现有模型或在速度、最终性和成本之间提供新的权衡。

比任何特定的第 2 层更重要的是底层技术和机制的进一步发展——加密经济设计。

这些第 2 层解决方案有力地证明了以太坊等可编程区块链的长期价值。 只有区块链是可编程的,才能构建第 2 层解决方案的经济性:你需要一种脚本语言来编程。 对于像比特币这样只提供有限脚本的区块链,这要困难得多(或者在某些情况下几乎不可能)。

我们可以在以太坊上构建 Layer 2,并在访问速度、最终性和成本之间取得平衡。 这使得底层区块链更适用于更广泛的应用。 对于高价值和极其重要的交易,我们仍然推荐使用主链。 对于速度更重要的数字收藏品交易,我们可以使用 Plasma。 第 2 层让我们在不损害底层区块链的情况下做出这些权衡,保持去中心化和最终性。

目前,我们很难预测需要扩展哪些功能进步。 设计以太坊时,Plasma 和 Truebit 还没有发明。 但是因为以太坊是完全可编程的,它几乎可以实现我们可以发明的任何经济机制。

本文由 Josh Stark 编译,作者授权