Skip to main content

看一下一些流行的非 EVM 区块链

目录

  • 简介
  • 第 1 层与第 2 层
  • NEAR 协议
  • 流程
  • 雪崩
  • 呼叫中心

简介

到目前为止,我们已经看了以太坊,并对第二层解决方案做了一些阅读。然而,还有其他多个第一层区块链也值得关注。在这篇文章中,我们将谈一谈几个不同的流行的第一层区块链。

第 1 层与第 2 层

第 1 层和第 2 层是用来描述区块链 "类型 "的术语。第 1 层区块链是那些主要的区块链本身,而第 2 层区块链是那些在第 1 层区块链之上的覆盖网络。

例如,以太坊和比特币是第 1 层区块链,而 Polygon、Arbitrum、Optimism、Lightning Network 等是第 2 层区块链的例子。

第 1 层区块链直接改变协议的规则,试图扩大规模或提供更好的实用性。它们可以包括,例如,增加每个区块包含的数据量,或加速每个区块的确认时间,以提高整体吞吐量。通常,这是以降低安全性和/或去中心化为代价的,因为增加了运行节点的硬件要求,或增加了成为抽样证明系统中验证者的成本,等等。

第一层区块链的例子包括以太坊、NEAR、Flow、Avalanche、Solana、Algorand、比特币等。

第二层区块链是指在第一层区块链基础上运行的网络,试图提高可扩展性和效率,同时从主链上获得安全和去中心化的好处。这需要将第 1 层区块链的一些工作转移到第 2 层网络,并且只使用第 1 层交易进行结算--例如,在第 2 层网络上执行 1000 个交易,将其结果汇编在一起,并在单一交易中在第 1 层区块链上发布有效性证明。

第二层区块链的例子包括 Polygon*、Optimism、Arbitrum、zkSync、Lightning Network 等。

Polygon 的 PoS 链是第 2 层的一个松散的例子,因为它是 Plasma 的实现,本质上是一个侧链,也向主链发布汇总的数据快照。它确实定期在以太坊网络上以压缩的形式编译和锚定 Polygon 的链的状态。但是,由于它不提供被执行的交易的有效性证明,所以信任仍然放在 Polygon 网络的验证器组中。所以它并没有完全获得以太坊的安全优势,但确实定期向以太坊发布状态更新,所以如果 Polygon 被破坏,它可以在以太坊网络的最新检查点恢复。

现在,我们将看看几个不同的第一层区块链,并尝试将它们与以太坊进行比较。

NEAR 协议

NEAR 是一个第一层智能合约平台,利用平行分片存储和计算技术进行扩展。它还使用权益证明(Proof of Stake)共识,而不是以太坊目前的工作证明(Proof of Work),并且有超过 50 个验证者在网络上确保数百万美元的安全。

什么是分片?

分片这个词意味着一个整体的一小部分。在区块链的背景下,分片只是意味着网络上的每一个节点都需要处理每一笔交易(就像以太坊写的那样),而区块链被分割成多个小部分,每个验证者只需要担心它所属的分片上正在执行的交易。

这允许在不同的分片上对交易进行并行计算。这使得交易的处理速度更快,因此可扩展性更高。

如何管理分片?

管理所有单个分片的常见方法是有一个 Beacon 链,作为所有分片的 "管理者"。它负责将验证者随机分配给特定的分片,单独接收来自每个分片的更新,并对其进行全局快照,以及在权益证明共识中处理赌注和削减。

可扩展性的瓶颈现在变成了 Beacon 链,因为它负责整个全球状态。然而,如果网络中的每个节点都变得快 4 倍,包括 Beacon 链上的节点,每个碎片将能够处理 4 倍的交易,同时 Beacon 链也将能够管理 4 倍的碎片。因此,总体而言,这将导致总交易处理量增加 16 倍。这就是所谓的二次分片。

如果出现分叉怎么办?

虽然分片链+信标链的模式很强大,但当我们谈论到如果分叉会发生什么时,它也有复杂性。哪个链成为 "真正的 "链的决定需要在每个分片上单独做出,而信标链和分片链的逻辑是不同的。

由于这个原因,NEAR 采用了一个稍微改进的模型。在 NEAR 中,系统在逻辑上被建模为一个单一的区块链,每个区块包含所有区块的所有交易,并同时改变所有分片的状态。因此,如果发生分叉,整个链条有效地最终选择一个单一的、逻辑上最长的链条。然而,在物理上,没有一个参与者需要下载区块的全部状态,而只下载与他们的分片相关的状态。

与多个分片互动的交易是如何运作的?

如果单个分片不能相互通信,那么分片就很无用,它们并不比多个独立的区块链相互通信好。

考虑一下下面的例子。

  • 爱丽丝有一个生活在 1 号分片上的账户
  • 鲍勃有一个生活在 2 号分片上的账户
  • 爱丽丝想给鲍勃送钱
  • 1 号分片区的验证者不能把钱存入鲍勃的账户。
  • 2 号分片上的验证人不能从 Alice 那里扣钱

这将如何运作?

在 NEAR 中,如果一个交易影响到 1 个以上的分片,它将在每个分片中分别连续执行。整个交易首先被发送到第一个被影响的分片。一旦交易被执行,就会产生一个收据交易,它被传递给下一个受影响的分片。如果有更多的分片受到影响,就会产生更多的收据交易,并进一步向下传递。

每个后续的分片可以验证收据事务,并得到确认,前面的分片已经完成了他们的工作。然后,它执行该分片上需要发生的任何事情,如果有更多的分片受到影响,则结束交易或进一步传递交易。

在 NEAR 上开发

NEAR 第一层区块链的智能合约可以用 Rust 或 AssemblyScript 编写。与区块链节点的通信可以通过 HTTP API 完成(类似于 Ethereum)。

值得注意的是,NEAR 还运行一个名为 Aurora 的以太坊第二层区块链,它也使用原生 ETH 代币作为第二层的原生气体代币。

与以太坊的比较

  • 对于开发者来说,主要的区别是用于开发的语言。虽然你可以为 Aurora 第二层网络使用 Solidity,但 NEAR 协议不仅仅是 Aurora,不支持 Solidity 在原生 NEAR 区块链上的部署。
  • 原生代币是$NEAR,而不是$ETH,用于第 1 层区块链。
  • NEAR 上的账户有人类可读的名字,而不是像以太坊上的随机字母和数字。例如,learnweb3.near 是一个有效的 NEAR 账户。
  • NEAR 允许开发者升级他们的智能合约。然而,他们也提供了一种方法,可以为特定的合约永久地删除这个选项,以增强智能合约的安全性和真正的无信任操作。
  • 代替 Etherscan,开发者使用 NEAR 资源管理器来查看区块和交易。
  • 开发者可以使用 nearup 命令行工具来运行本地测试节点,而不是通过 Hardhat 或 Ganache 运行本地测试节点。
  • NEAR 上的气体(txn 费用)是通过算法控制的,以试图避免个别分片上超过 50% 的拥堵,而不是像以太坊那样基于拍卖模式。
  • 与以太坊相比,NEAR 的验证器/矿工明显减少。这是由于成为验证者的要求很高。截至目前,购买足够的 NEAR 美元并将其作为赌注,成为其网络上的验证者需要花费超过 100 万美元。

流动区块链

Flow 将自己描述为一个 "快速、去中心化、对开发者友好的区块链"。他们基于一个多角色架构,并被设计为无需分片即可扩展。

Flow 基于四个基础,使其独一无二,值得讨论。

  • 多角色架构
  • 面向资源的编程
  • 可升级的智能合约
  • 从法币到加密货币的简易通道

让我们单独看一下这些,并理解它们。

多角色架构

在传统的区块链中,每个节点负责存储区块链的整个状态并执行所有相关工作。这类似于让一个工人建造整个汽车。

然而,在物理世界中,没有一个工人会建造整辆汽车。一个常见的过程是管道化--即把任务按顺序交给不同的人,让他们做不同的工作。

Flow 将流水线的概念应用于区块链,将验证者节点的工作分成四个不同的角色。

  • 采集
  • 共识
  • 执行
  • 验证

观察上图,我们可以看到,较早的区块在流水线阶段的位置较远。例如,B1 处于执行状态,而 B2 在执行 B2 之前正在验证 B1。B3 此时正在对它的交易进行共识,最终将验证 B2,然后执行 B3,以此类推。

与采取横向扩展方式的分片不同,Flow 的扩展是纵向的。这意味着,即使每个验证器节点参与验证每笔交易,它们也只在验证阶段这样做。因此,它们可以在特定的阶段专注于特定的任务。这使得 Flow 的规模比目前的传统区块链要大几千倍。

以资源为导向的编程

Flow 上的智能合约是用一种叫做 Cadence 的编程语言开发的。Cadence 被定义为 "第一个符合人体工程学、面向资源的智能合约编程语言"。

面向资源的编程是一种新的语言设计范式,旨在实现安全和易于使用。Cadence 是第一个面向资源的高级编程语言。它是静态类型的,就像 Solidity 一样,并为数据存储和数据所有权提供了非常有力的保证。

资源 "的所有权,如数字资产,是由编程语言直接实现的,而不是必须手动管理数据的生命周期。

将某样东西标记为资源告诉编程语言,这个数据代表了某种有价值的东西,所有与该数据交互的代码都需要遵循特殊的规则来维护数据的价值。

每个资源在任何时候都只能存在于一个地方。资源不能被复制或意外删除,通过编程错误或通过恶意代码。 一个资源的所有权是由它在代码中的存储位置定义的。 对一个资源的方法的访问只限于所有者。例如,只有一个 NFT 的所有者可以启动一个修改该 NFT 的函数。通过将该 NFT 的数据放入所有者的存储中,这被直接构建在语言中,而不是创建 onlyOwner 修改器或类似的变通方法。 面向资源的编程是一个很大的话题,在这里完全深入探讨。要阅读和了解它,你可以在这里找到更多的相关信息。

可升级的智能合约和日志

智能合约平台做出的承诺是,用户不需要相信开发者,而可以相信代码。以太坊的设计是让智能合约不能升级,因为如果代码不能升级,那么在作者部署智能合约后,你就不需要再相信他们了。

不幸的是,要让软件第一次就没有错误是非常困难的。Rekt News 有一个巨大的智能合约清单,由于原始设计中的微小错误而被黑掉了几百万,其中一些甚至在专业审计后也没有被发现。

在 Flow 上,开发者可以选择将智能合约以 "测试状态 "部署到主网上。在这种状态下,代码可以由原作者渐进式更新。用户在与合约互动时,会被警告该合约处于测试状态,并可以选择等待,直到代码最终完成。一旦作者确信他们的代码是安全的,他们就可以释放合约的控制权,此后它就永远不可升级了。

消费者友好的入职培训

Flow 专注于使主流人群易于使用。当与 Flow 上的 dApp 进行交互时,Flow 交易格式对交易可以和不可以进行何种改变做出了强有力的保证,因此钱包可以向用户提供人类可读的信息,以帮助他们对他们所批准的内容做出明智的决定。

与以太坊的比较

  • Flow 使用权益证明(Proof of Stake)共识
  • Flow 是一个较新的生态系统,它的社区和受众较少,但他们有很好的文档和开发者工具可以开始使用。
  • Flow 被明确设计为支持游戏和消费者应用程序,需要高可扩展性来运作。这并不奇怪,因为 Flow 是由 Dapper Labs 构建的--该团队因开发 CryptoKitties(首批 NFT 项目之一)而闻名,该项目堵塞了以太坊区块链,还开发了 NBA TopShot--最受欢迎的 NFT 项目,并与 NBA 建立了官方合作。NBA TopShot 是建立在 Flow 上的。
  • Flow 上的执行节点对桩基和硬件要求非常高。与以太坊不同,Flow 的执行节点可能是数据中心的高端服务器硬件集群。
  • 目前存在于 Flow 上的大多数应用是由其背后的团队直接制作的。尽管目前正在开发更多的应用程序,而且该团队正在积极地尝试在生态系统上加入更多的外部开发人员。

Avalanche

Avalanche 是一个开源平台,用于在一个可互操作的区块链生态系统中构建 dApps 和企业平台。它是一个智能合约平台,提供高吞吐量和近乎即时的交易终结性。另外,Avalanche 支持 Solidity,所以以太坊的智能合约可以很容易地移植到 Avalanche。

Avalanche 是一个生态系统,而不是一个单一的区块链。在 Avalanche 生态系统的基础上可以存在多个链。最受欢迎的是 Avalanche C-Chain,它是一个 EVM 兼容链,支持 Solidity 智能合约。然而,全新的区块链系统可以在 Avalanche 生态系统中建立,具有不同的属性。

Avalanche 设计架构

子网络 一个子网络(或子网),是一组验证者,他们正在努力实现一组区块链的共识。Avalanche 上的每个区块链都由一个子网络验证,但每个子网络可以验证多个区块链。一个特定的验证者可以是多个子网的一部分。如果一个验证者不关心一个特定的子网,他们不需要加入这个子网。此外,由于子网可以控制谁进入它们,可以创建私人子网,这类似于私人或许可的区块链。

虚拟机 Avalanche 上的每个区块链必须是一个虚拟机。当一个新的链被创建时,它必须指定它要使用的虚拟机--要么是已经存在的东西,要么是开发者的新实现。这就是 C-Chain 可以支持 Ethereum 虚拟机和支持 Solidity 的原因,而 Avalanche 上的其他链却没有。

AVAX 代币 Avalanche 上的所有区块链都使用原生代币$AVAX 来支付网络上的操作。AVAX 也可以作为以太坊上的 ERC-20,可以桥接到 Avalanche 的 C 链上。

AVAX 代币有一个固定的硬上限,所以存在的 AVAX 代币不可能超过 720,000,000 个。AVAX 的货币政策可以随着时间的推移而改变,以应对不断变化的经济状况。

在 Avalanche 上开发

除了创建自己的子网之外,Avalanche 用于的主要链条是 C-Chain。部署到 C-Chain 上与部署到以太坊第二层非常相似。你只需要获得一个 Avalanche 节点的 RPC URL,就可以使用你已经熟悉的工具--Hardhat、Truffle、Remix 等,将你的 Solidity 智能合约部署到 C 链上。你也可以使用 Metamask 作为 Avalanche C-Chain 的钱包。

与以太坊的比较

  • Avalanche 的交易终结速度更快,使用成本更低
  • C-Chain 上的开发和以太坊上的开发几乎是完全一样的
  • AVAX 代币是有硬上限的,不像 ETH 没有硬上限
  • Avalanche 使用自定义的权益证明共识协议,而不是以太坊的工作证明。
  • Avalanche C-Chain 的交易内存池是不公开的,只限于验证者。这可能是个问题,因为区块生产者有很大的上升空间,可以通过他们对下一步交易内容的了解来获利,例如通过对 DEX 交易进行套利。
  • 在撰写本报告时,成为 Avalanche 生态系统中的验证者需要花费 150,000 美元以上。
  • 在撰写本文时,Avalanche 的去中心化程度低于 Ethereum。

索拉纳

最近,Solana 被谈论得很多,并在新闻中不断出现。他们有好有坏,但在本节中,我们将尝试去了解一下他们在引擎盖下运行的技术。

Solana 是一个带有一些额外技术的权益证明区块链。这个附加技术中最重要的部分是他们称之为历史证明的东西。

历史证明

基本上,Solana 的假设是,设计区块链的最大技术挑战之一是缺乏一个共享时钟。由于缺乏一个共享的时钟,很难让一个由节点组成的分布式系统就事物的顺序达成一致。像以太坊和比特币这样的区块链使用区块编号(或区块高度)来为交易提供排序,但这有一个缺点,即交易在区块时间过去之前不会完成执行(在比特币上约 10 分钟,在以太坊上约 15 秒)。

Solana 在历史证明方面采取了截然不同的方法。它不再有区块和区块时间,而是要求验证者签署加密证明,这可以证明自他们提供的最后一个证明以来已经过去了一段时间。这是通过对以前的散列输出进行散列来实现的。所有被散列到证明中的数据必须在证明创建之前就已经存在。然后验证者与所有其他节点分享,这些节点可以复制新的哈希值,并足够快地验证加密证明。

大多数其他的优化就是这样,对区块链较小的方面进行优化,使其工作更快。

领袖选择

Solana 有确定性的领导者选择。这意味着,当一个交易被创建时,网络已经知道谁是下一个区块创建者,并可以直接将交易数据转发给该领导者。与比特币和以太坊不同,在与其他矿工的竞争中没有 "竞赛 "或 "拼图 "需要解决。这也有它的缺点,因为确定性的领袖选择意味着,由于领袖是提前知道的,他们可能会受到 DDoS 攻击。

妥协之处

Solana 真的很快。这段时间。但为了达到这个速度,它在哪些方面做出了妥协?除了确定的领导者选择的缺点外,其余的权衡都落在了 dApp 开发者身上。

为了实现快速交易,Solana 需要的大部分复杂性都交给了 dApp 开发者来处理。如果你曾经看过 Solana 关于如何用 Rust 编写程序的文档,它看起来比看 Solidity 要可怕得多。这个系统要复杂得多,也更难处理,而且很多事情需要由终端开发者来完成。

这方面的权衡可能还不错。该链真的很快,但也真的很难在上面建立复杂的应用程序。随着时间的推移,社区可能会创建抽象,并隐藏大部分的复杂性,但如果你想了解基本原理,以便在出现奇怪的问题时能够解决,那么你需要知道,这并不容易。复杂性也可能是 Solana 没有看到那么多骗局的原因,不是因为 Solana 上的代码没有漏洞,而是因为世界上很少有开发者能够编写 Solana 程序,更不用说反向工程和发现其中的漏洞了。

无状态区块链

Solana 和 Ethereum 的另一个最大区别是 Solana 智能合约是无状态的,而 Ethereum 智能合约是有状态的。到这里,你已经习惯了在 Solidity 代码中存储变量、数组、映射等。Solana 不允许这样做。Solana 中的合约不能自己存储任何东西。

在 Solana 上,代码和数据之间是分离的,对系统的整体设计有广泛的影响。Solana 上的任何数据都存储在称为账户的东西中。这个术语是来自以太坊的最大混乱来源,因为 Solana 上的账户并不指钱包或地址等。说实话,这里的术语有点奇怪。

账户是数据存储,账户可以为预先定义的固定规模的数据创建。为了存储数据,需要为账户支付租金。账户可以存储$SOL 代币,随着时间的推移,这些代币会被扣除,作为它在网络上使用的存储空间的租金。

索拉纳上的交易

在 Solana 上,操作的基本单位被称为指令。一条指令是对一个程序(或智能合约)的单一调用。一条或多条指令可以连续地捆绑在一起,成为一条消息。一条消息由发送者签署,形成一个交易。

这是与以太坊的另一个区别。在以太坊中,交易是指对智能合约的签名调用,而智能合约可以做任何它想做的事情(包括调用其他智能合约)。这在 Solana 上是不可能的。同样,复杂性也被移交给了开发者和用户。用户需要构建交易,而交易是进入多个程序的一组指令,要么全部成功,要么全部失败。因此,构建 dApp 的开发者需要在前端编写这些代码,而不是只在程序中设置一个入口点,在程序中完成所有的事情。

当在一个事务中传递多个指令时,顺序很重要,因为那是它们将被执行的顺序。dApp 开发者需要特别注意,确保他们不会弄乱顺序。前端存在创建不正确的事务的风险。

总的来说,Solana 有它自己的一套优点和缺点。它非常快,而且肯定取得了一些好的技术进步。缺点是影响了开发者的体验,在 Solana 上开发 dApps 比在 Ethereum(或任何 EVM 兼容链)上要难得多。

总结

我希望通过这篇文章,你能够对不同的第 1 层以及他们所采取的不同的扩展方法有一些深入了解。这份文件也应该成为我们在市场上还相当早期的证明,随着明确的赢家出现,很可能不是所有这些链都会继续得到普及和广泛使用。

像往常一样,如果有任何问题,请随时在 Discord 上发表。祝您在技能测试中一切顺利!