3WebDAO

Posted on Feb 25, 2022Read on Mirror.xyz

分片公链之王 - NEAR项目研究报告

[关于3Web DAO]

背景

2021年以太坊扩容可谓是加密圈的主线之一,其中各种Layer2协议的上线给以太坊生态添加不少生机。而在市场中,除了Layer2的扩容方案之外,其他 L1 的出现主要也是由以太坊的扩容问题驱动的。在2021年初,以太坊在总锁定价值 (TVL) 中占据了超过 95% 的市场份额,而如今它仅拥有约 58% 的市场份额。  

而在L1中分片也是老生常谈的赛道,经过近几年的技术发展,号称以太坊杀手的分片之王NEAR也渐渐地展露头角,生态也是蓬勃发展。今天就让我们一起来看看NEAR凭什么被称为分片之王。

想探索这个问题,首先我们要对所谓分片的概念有所了解。

分片(Sharding)

什么是分片

分片在互联网领域早已有之,一般称之为数据库分片(database sharding)。它指的是将单个数据库中的数据,通过某种策略分摊到多个表结构与其相同的其他数据库中,这样每个数据库中的数据量就会相对减少很多,并且可以部署在不同服务器上,理论上能够实现数据库的无限横向拓展。 

在区块链领域,道理也是相似的,区块链中的交易和数据都是由节点或者矿工来处理,但由于区块链独特的去中心化设计,单节点的处理能力往往不高。

区块链分片的核心思想是将一个区块链拆分为多个区块链,并将拆分出来的每个区块链称为“分片”。相应的,区块链网络上的总验证者也被均匀地分开来验证每个分片。例如,如果我们将具有 100 个验证器的非分片区块链拆分为 10 个分片,则每个分片将有 10 个验证器。但是这种设计具有天生削弱区块链安全性的缺点,理由是如下图攻击者只需要控制大约 6 个验证器(>总节点的 51%)来破坏一个分片,而在非分片版本中它必须破坏大约 51 个验证器。每个分片的安全性比非分片区块链低 10 倍。

为了解决这个问题,几乎所有分片设计都使用某种形式的随机性将验证者分配给分片。由于生成随机数、将验证者分配给分片、从分片接收更新、处理权益和其他协调活动都需要额外的计算,因此通常有一个主“链”来管理所有这些任务。该链在 Ethereum 中称为 Beacon Chain,在 Polkadot 中称为 Relay Chain,在 Cosmos 中称为 Cosmos Hub。

分片的类型

区块链中的节点具有三个主要功能:

  • 处理交易
  • 打包交易并广播到其他节点
  • 存储整个网络的历史账本

在分片的区块链网络中,通常来讲分片有三种类型,分别为网络分片、交易分片、状态分片。 

网络分片就是将整个区块链网络进行分组,每个小组叫做一个分片(shard),所有分片同时处理不同的交易,实现并行记账。或者称之为物理分片。

交易分片就是将交易随机分到不同的分片或小组,让某些节点进行记账,比如可以通过交易 Hash 或者地址进行分配,也可以通过 VRF 等随机的方式进行分配。 

状态分片就是把完整的账本信息存储在各个分片中,每个分片内各自维护部分的账本信息。这里可能还会涉及到跨分片数据同步,跨片交易等问题,是最复杂的一种分片方式。 

分片的挑战

跨分片通信

分片区块链的主要挑战之一是提供有效、安全和用户友好的跨分片通信。这通常与“火车和酒店”问题进行类比:假设有人想购买火车票并预订酒店进行旅行。那个人希望事务是原子性的——要么两个事务都成功,否则都不成功。在单个区块链或分片中,这项任务是微不足道的。但是,如果将两个请求发送到不同的分片,则变得更加复杂。

一种方法是进行同步跨分片事务。每当需要执行跨分片交易时,包含状态转换的相关块都同时发生,每个分片上的节点协作执行交易。该模型最著名的设计称为Merge Blocks,但在实践中实现这一点很复杂。

另一种方法——NEAR、以太坊、Cosmos、Kadena 等采用的方法——是异步跨分片交易。这种方法更容易实施和协调,但一个主要挑战是确保原子性。

状态有效性

攻击者可能会尝试创建无效块,并且由于没有节点可以验证所有分片之间的所有交易,因此网络需要某种方式来确认在任何分片中都没有创建无效块。目前已经有了可扩展状态验证的方法:欺诈证明和有效性证明。欺诈证明默认所有书面交易都是有效的,并奖励用户不断寻找无效块(并惩罚创建无效计算的生产者)。有效性证明使用密码证明来验证计算。

数据可用性

在大多数区块链协议中,节点从数据角度可以分为:同步整个区块并验证所有状态交易的完整节点,以及仅下载区块头并使用 Merkle 证明进行与其相关的部分交易的轻节点。

NEAR协议

简介

NEAR 是基于全状态分片、对开发者友好的可拓展性POS共识机制的公链,提出了一种新的分片协议和解决方案,称之为夜影协议(Nightshade)。

NEAR具有低交易费用,快速确认时间的特点,NEAR 提供约 1 秒的平均出块时间,交易费用通常低于 0.1 美元。NEAR 团队最初的目标是在主网启动时建立一个完全分片的区块链,然后通过优先考虑稳定性、可用性和用户体验,将重点放在新用户上。

去年年底,该团队启动了其称为 Nightshade的完全分片区块链的第 0 阶段。新颖的分片技术设计,让NEAR的GAS费与以太坊相比近乎于零。这使得NEAR和Polygon和Arbitrum等Layer2概念公链一样,成为承接以太坊外溢项目的热门之选。NEAR也借此,在2020年5月加密市场整体低迷之时,拿到了a16z领投的2160万美元的融资。

NEAR的分片技术

NEAR 与其他分片公链不同的是,它的技术架构并不是由一个信标链和多个分片链组成的,而是把系统建模成一个单独的区块链,在区块级别进行了分片,每个分片中有很多“段”。

具体来说,NEAR 将区块分为一个个物理组成块,经过对多个区块的验证,物理组成块均相同的时候就可以验证这些区块是正确的。每个区块逻辑上包含所有分片的所有交易,并切分分片的状态,验证者只负责验证交易所针对分片相对应的状态即可。 为了产生区块,验证者质押一定数量的代币。他们获得的分片数量取决于质押的 $NEAR 数量。

为了处理跨分片通信,需要在每个分片中分别连续执行一个事务。交易首先在一个分片中处理,一旦分片被包含在区块中,它就会生成一个收据交易,该交易被路由到下一个需要执行交易的分片。这个过程一直持续到交易完成。Nightshade 提供了一个挑战期,在此期间外部观察者识别无效块,以确保有效的跨分片交易。

Nightshade 的设计提供了原子性和良好的用户体验。跨分片交易几乎是即时的——目标分片不需要等到挑战期结束,可以立即申请收据交易。并且由于 Nightshade 的分片区块全部发布在同一个主链区块中,如果发现任何区块无效,主链就会简单地回滚。这与典型的分片区块链设计形成对比,其中一个挑战可能会影响另一个分片,而另一个分片会影响另一个分片,依此类推。虽然回滚主链的无效交易很不方便,但这将是一种罕见的事件,并且被快速跨分片交易的好处所抵消。

NEAR分片的安全性

为了不暴露特定分片的验证人,Near 通过 VRF 对验证人进行随机分配,隐藏验证人分配到分片的信息。这样节点只知道验证人的存在,却并不知道每个验证人所对应的分片是哪个。 而且,这些隐藏的验证人是对块进行签名,而不是具体的段,这样也会隐藏验证人具体是验证了哪个分片。  

NEAR重新分片和动态分片的去中心化可扩展性

NEAR 优先考虑分片之间的网络资源平衡,并且不会区别对待分片。但是一些分片的增长可能自然会超过其他分片的增长。因此,NEAR 计划通过根据使用情况在分片之间移动合约来定期重新平衡分片——这个过程称为重新分片。

NEAR 对去中心化可扩展性(即高吞吐量、低延迟和低交易费用)的长期愿景是动态分片( dynamic sharding ) 。动态分片涉及随着使用量的增长将网络分成更多的分片,而作为活动合同的分片更少。该架构尚未得到证明,但如果正确执行,它将允许 NEAR 几乎无限扩展,并具有强大的审查阻力。

NEAR共识机制

NEAR采用的Doomslug共识机制(PoS的一种),可使区块的创建速率加快且无法被篡改,并在全网一半的验证节点离线这种极端情况下,依然能够快速完成交易确认。同时,通过状态分片技术,NEAR的分片数量能随网络的用量动态调整。目前NEAR每个分片可支持的每秒交易笔数,已超过1000,这还是在未优化的状态下。理论上看,因为NEAR分片采用横向扩容机制,10个分片即可达10000TPS,以此类推,上不封顶。目前 3k TPS,4 个分片,预计 1 年TPS达到 100k,无上限。

友好的开发者体验

NEAR 支持用 Rust 和 AssemblyScript(一种类似于 JavaScript 的语言)编写的智能合约,尽管与对 Rust 的支持相比,对后者的支持仍然相对缺乏。NEAR 节点运行 Web Assembly (WASM),它可以从多种编程语言编译。

该平台还提供了强大的开发套件,包括使用 Gitpod 的在线 IDE、集成单元测试以及丰富的课程和程序库,供开发人员开始在 NEAR 平台上构建。

这些功能有助于吸引开发人员使用 NEAR 的平台。Electric Capital 的 2021 年开发者报告显示,NEAR 的开发者社区在整个 2021 年增长了约 4 倍,是新兴 L1 中增长最快的社区之一。

代币经济模型

NEAR 的总供应量为 10 亿,根据以下代币分布:

  • 17.2% - 社区赠款
  • 11.4% - 运营补助
  • 10% - 基金会捐赠
  • 11.7% - 早期生态系统
  • 14% - 核心贡献者
  • 17.6% - 支持者
  • 6.1% - 小支持者
  • 12% - 社区销售

NEAR 协议于 2020 年 4 月 22 日启动其主网,创世时创建了 10 亿个 NEAR 代币。每年发行 5% 的额外供应以支持网络作为出块奖励,其中 90% 用于验证者(总计 4.5%),10% 用于金库(总计 0.5%)。30% 的交易费用作为回扣支付给与交易交互的合约,而剩余的 70% 被烧毁。

NEAR 代币用于:

  • 处理交易和存储数据的费用
  • 通过质押 NEAR 代币在网络上运行验证器节点
  • 用于治理投票,以确定如何分配网络资源

核心团队

Erik Trautman - NEAR Foundation 的首席执行官:Erik 是一位企业家,他于 2007 年在华尔街工作了 5 年,然后离开去创建一个开源社区。他领导 Viking Education 担任首席执行官,直到 2017 年被收购。

Illia Polosukhin:Illia 拥有超过 10 年的行业经验,其中 2014 年在 Google 担任工程经理 3 年。目前,他从 2017 年开始作为联合创始人与 Near Protocol 合作。

Alexander Skidanov(联合创始人):Alex 于 2009 年作为软件开发人员加入微软,然后于 2011 年加入 MemSQL,在那里他担任了五年的高级软件开发人员和工程总监。自 2017 年 6 月起,他与 Ilia Polosukhin 一起担任 Near Protocol 的联合创始人。

团队总共有大约 200 名贡献者,其中大部分都具备多年经验,曾在 Facebook、Google、Microsoft、Consensys 等大型科技公司工作。

投资机构

生态系统  

lu线图

**Phase 0:**2021年11月,简版夜影协议上线,使得NEAR的分片被多个节点分割,提高运行速率;

**Phase 1:**2022年初,系统引入新角色只生产分片段的生产者,且只验证一个分片,此后无需昂贵硬件;

**Phase 2:**2022年第三季度,状态和处理都将是完全分片化的,增加验证者的可访问性,验证节点无需追踪全部分片;

Phase 3: 2022 年第四季度,网络会根据资源的使用情况动态地对分片进行切割和合并,此时NEAR无限扩容。

Near