BTC/USDT
BCH/USDT
ETH/USDT

币安宣布第五个 Launchpad 项目 Harmony 特点、优势和挑战

链闻ChainNews
2019-05-21 12:23
1.82万

不久前,币安宣布第五个 Launchpad 项目 Harmony 将以摇号抽签方式于北京时间 5 月 28 日 14:00 开始代币销售。

「扩容仍然是区块链行业的一个重要问题,Harmony 团队的目标就是利用全新的分片技术来并行处理交易,从而突破扩容困境。」币安创始人赵长鹏这样介绍 Harmony 项目。

以太坊像一艘满负荷的帆船,载着众多船员、乘客和他们的物资,缓慢地航行在区块链世界。为了提高承载能力,以太坊团队计划将以太坊升级成一艘现代化的轮船。但为了不影响现有用户的使用,建造过程中掣肘颇多,每一步都举步维艰。好在还有其他一些团队在进行同样的努力,用新的设计方法和工艺,吸取前人的经验教训,从零开始打造现代化的巨轮。

Harmony 就是一个希望通过分片技术,打破公链扩容瓶颈的项目。在打造现代化巨轮的同时,还试图建造了和以太坊一样的房子,让用户可以实现快速迁移。

如果说投项目就是投人,那么 Harmony 的创始人谢镇滔就是位典型的硅谷技术专家兼创业者。谢镇滔毕业于宾夕法尼亚大学,专注于研究安全通讯协议和编译器校验技术,曾在微软研究院总部任职研究员,在 Google 任职高级软件工程师,负责基础架构方面的项目,并在苹果公司总部担任工程师,主导搜索排序方面的工作,他曾创立一个专注于移动搜索的公司 Spotsetter,并被苹果公司收购。

一场开始不久的航行比赛,谁会最先到达终点呢?

分片技术对区块链性能提升意义重大

在区块链行业中,公链是应用开发的平台,是行业内极其重要的基础设施。当前公链性能不足的问题一直未得到有效的解决。以太坊作为生态多样性最高的公链,其转账速度慢、交易费高、交易拥堵等性能瓶颈限制了其发展。

区块链从业者提出了包括增大区块、隔离见证、分片、DAG、跨链 / 侧链、闪电网络等扩容技术。其中很多方案都治标不治本,并没有解决实质问题。只有分片技术将区块链网络的全局共识分解成多个独立又相互联系的局部共识,降低了节点的负荷,从而提升了公链的全局拓展性。分片技术被认为是在不损失去中心化程度和安全性的条件下可实现扩容的方案。

Harmony 的目标是突破目前公链的扩容瓶颈,使公链能够真正满足大规模的商业应用。经过一年的潜心开发,这支团队设计了一整套解决方案,在共识层、数据层、网络层均做了设计与改进,意图从根本上解决了公链的性能问题。

为了更直观的解释公链的性能问题,我们假定这样一个场景:有一项持续进行的任务,任务分为两步,依次为计算与记录。任何人都可以参与这项目任务,所有参与者各自所做的任务完全一样,每完成一部分计算任务,所有参与者需要互相验证其结果,验证通过后记录结果,才可以进入下一部分的任务。

在以上系统中,各个参与者除了要完成自己的任务外,还要与其它参与者交流并且验证结果,因此系统的整体效率低于单个参与者的效率。同时也正是因为所有参与者所做的任务完全一样,该系统才有了强大的安全性,若是想要篡改其结果,则需要至少贿赂一半以上的参与者,因此该系统中,参与者越多,系统也就越安全。公链的性能问题与此类似,所有节点完成相同的任务,并且节点间需要相互验证,因此其性能低于单个节点的性能。

如以上例子中提到的,若想要真正提升性能就需要将任务分解,让不同的参与者做不同的任务,从而在同一时间内完成更多的任务。但是如果每一个参与者做的任务都不一样,那意味着无法对结果进行验证,因此,折中方案就是将参与者分组,每一小组完成不同的任务,每个小组内对答案进行验证。这种方式解决方案在公链中就叫做分片,就是对所有节点进行分组,每组完成不同的任务以提高效率,而组内完成相同任务以便互相验证从而保证安全性。

分片通常被划分为网络分片、交易分片与状态分片。网络分片是指可以将不同的节点在网络层划分到不同的分组中,它是交易分片与状态分片的基础。对应到上述例子,任务分为两个步骤,分别为计算与记录。其中交易分片相当于将计算任务分配到各个小组中完成,而状态分片则相当于将记录任务分配到各个小组。如果仅实现交易分片,而未实现状态分片,就相当于,在示例系统中,每个小组进行不同的计算任务,但是每个小组仍需要将其它所有小组的计算结果进行记录,因此记录的工作量并未减少。不难看出,仅实现交易分片,可以在一定程度上实现效率提升,但由于记录工作并未减少,所以其提升幅度受限。因此,要想真正提升性能,实现真正意义上的线性扩容,就必须要实现状态分片。

在分片技术方面,Harmony 做了很多的研究与尝试,真正实现了包括网络分片、交易分片、状态分片在内的深度分片,真正意义上实现了公链性能的线性扩展。接下来详细介绍 Harmony 的分片技术方案。

采用 PoS 共识减少能源浪费,引入 Staking Economy

区块链的一大核心是达成分布式共识,是指让不同参与者能够达成一致的过程。由于每个参与者拥有的资源、付出的努力不一样,导致其计算能力不同。那么如何衡量计算能力呢?Harmony 采用 PoS 共识机制,根据参与者 Staking token 的数量和时间等因素决定计算能力大小。

Harmony 联合创始人兰荣坚解释了其采用 PoS 共识机制的原因:一方面 PoS 相对 PoW 更加高效,极少浪费能源;另一方面,PoS 所带来的 Staking 经济也会为区块链领域带来更多的新模式和新玩法。

同时,Harmony 采用的自适应阈值 PoS 机制在保证了系统的安全性的同时,允许家庭小节点参与挖矿,增加了去中心化程度。其 Staking 年化率预计在 15% 左右,对于不想直接参与 Stake 的持币者,Harmony 也支持安全托管机制,在不丧失所有权的情况下,让第三方专业机构代理 Stake。

改进 PBFT 算法,实现区块的快速同步与确认

计算能力代表获得记账权的概率,计算能力大则获得记账权的可能性越大。分片内所有的参与者均在竞争获得记账权,那到底该由谁来记账呢?这需要由一个算法决定,这个算法被称为共识算法。PoW 共识算法由于采用了最长链原则,为了防止分叉导致交易失效,一般情况下需要等待若干区块的确认,才能认为交易有效,这样的机制显然不适用于快速交易,因此,Harmony 采用了能够达成快速确认的 PBFT 算法,并对其作出了改进。

PBFT (Practical Byzantine Fault Tolerance),即实用拜占庭容错算法,由 Miguel Castro 和 Barbara Liskov 在 1999 年提出。PBFT 算法解决了原始拜占庭容错算法效率不高的问题,并且可以工作在异步环境中。PBFT 算法可以在失效节点不超过总数 1/3 的情况下同时保证系统安全性和可用性。但采用 PBFT 共识算法节点间的通信复杂度为 O(n^2)(n 为节点数),随着节点数 n 的增大,其共识效率不断降低,所以对于节点数量有限制。

Harmony 在 PBFT 算法的基础上进行了改良,采用 FBFT 快速拜占庭容错算法。其使用 BLS 签名方案进⾏多签名聚合,将节点间的通信复杂度降为 O(n),从而将 BFT 类算法的应用范围由联盟链拓展到了公链当中。

使用 BLS 多签的 FBFT 算法

通过 VRF+VDF 算法实现了可信随机分片,保证了分片的安全

回到假定的场景中,如果参与者的分组方式是确定的或有规律可循的,那长此以往,攻击者针对固定的参与者进行攻击即可对某一分组内的数据进行修改。同时也存在参与者之间互相串谋,在没有付出的情况下伪造计算和记录结果的可能。为此,分组方式,对应分片系统中的分片方式均采用随机分配的方法。

Algorand 采用基于 VRF (可验证随机函数)的算法随机选择一组验证节点。这其中可能存在一种攻击模式:由于随机算法是公开的,在前面的验证者公布随机数后,最后的验证者可通过挑选之前公布的随机数的子集来偏置随机性以控制最终的结果。因此,以太坊 2.0 提出使用 VDF (可验证延迟函数)来延迟揭示实际随机数,以防止最终公布者的攻击。Harmony 上的随机数生成结合了以上两种方案的优势,选用了 VRF+ VDF 的方法。加上 PBFT 的即使确定性的特性,可有效解决最终公布者针对随机数的攻击问题。

VDF (可验证延迟函数)延迟揭示实际随机数

Staker 成为分配其投票股票的分片的验证者

Harmony 规定必须持有一定数量的 token 才有成为验证者的资格,将验证者的数量限定在合理的范围内。根据 token 的数量决定分配给 Staker 的投票份额数。在每个时代开始时,Staker 的投票份额通过之前定的随机算法被随机分配给分片,其无法自主决定,其在每个分片内的投票份额百分比与全网其 token 数量的百分比一致。对某一分片进行攻击和对全网进行攻击的成本相同,均需要 51% 的全网总 token 数,从而保证了分片的安全性。

采用信标链+分片链的架构,提升系统的安全性与通信效率

实现状态分片后,由于各分片保存不同的状态,此时跨分片通信与交易的处理方式就显得尤为重要,若是处理方式不佳,可能导致分片后系统的性能与安全性大打折扣。为了解决以上问题,Harmony 采用了信标链+分片链架构,其中信标链是一条特殊的分片链,信标链提供了两个关键的功能,分别是生成随机数和接受 PoS 抵押,这就使得信标链成为了其它分片链的验证者。在前文随机分片部分已经介绍过了 Harmony 是怎么通过 VRF+VDF 算法实现可信随机分片的,其中随机数的生成就是通过信标链来实现的。

在 Harmony 中,每个分片链中的区块头都是需要提交到信标链上的,这样做的好处有两点:第一点是所有的分片链都得到了信标链的保护,若要攻击单个的分片链,则需要同时攻击信标链与该分片链,这显著提高了单个分片的攻击成本。第二点是降低了通信复杂度,在传统的 P2P 网络中,由于不存在中心节点,因此一般情况下,网络的通信复杂度为 O(n^2),而在 Harmony 中,将信标链作为中继,向全网广播消息,将通信复杂度降为了 O(n),从而大大降低了网络负载,提高了通信效率。

Harmony 采用碎片驱动的方式来实现跨分片通信,但是由于跨分片通信成本较高,从而导致全网的通信成本升高,因此 Harmony通过 DHT 中的 Kademlia 路由协议来改进通信效率,将跨分片的通信复杂度由 O(n) 降为了 O(logn),同时还利用纠删码对信息进行编码,保证了其稳健性。

信标链+分片链的架构

快速状态同步机制保证了新节点的快速参与

由于计算参与者的分组是定期通过随机算法进行更换的,那必然存在从分组 A 到分组 B 的情况。此时计算参与者需要快速的获取分组 B 的历史记录,才能进入到正常“工作模式”。

在分片系统中一样也有这样的问题,当验证者加入新分片时,需要快速同步该分片内的状态。在区块链运行时间很长后,这一过程需要耗费大量的时间。完全同步以太坊网络的历史数据需要数天。在新时代开启时这一过程将对主网的合格验证者数量造成重大影响。
在 Harmony 中加入分片的新验证器首先下载该分片的当前状态 trie,以便可以快速开始验证事务。为确保下载的当前状态有效,新节点需要进行适当的验证。新节点只需下载历史块标题并通过检查其签名来验证区块头。只要存在从当前状态到创世区块的加密历史(如散列指针和签名),该状态就是有效的。

为了加快验证签名的速度,Harmony 规定每个时期的第一个区块应包括到最后一个时期的第一个块的附加散列指针。这样,当跟踪到生成区块的散列指针时,新节点可以跳过这一时期内的区块。这将显着加快当前区块链状态的验证速度。

允许新节点的快速状态同步

分片项目大比拼

可以对几个典型的分片项目做简要的分析与比较。

Zilliqa 是第一个在区块链上实现分片的公链项目,它改进了 pBFT 共识,使其可以突破节点数量限制,从而将 pBFT 共识应用到公链当中。同时,它还通过周期性地运行 PoW 共识来防御女巫攻击。Zilliqa 实现了交易分片与智能合约分片,但是并未实现状态分片,因此其性能提升有限。

以太坊 2.0 由于其社区的强大而受到了非常多的关注,其核心就是通过分片技术实现 Layer1 层的性能提升。以太坊 2.0 采用了信标链+分片链的架构,其共识机制为 Casper FFG (改进的 PoS 共识)。但是由于以太坊有较重的历史包袱,从 1.0 向 2.0 升级的过程中存在“船大难调头”的问题。

分片项目概述

从 Harmony 详细的白皮书可以看出,团队在对区块链技术作了非常深入的分析与调研后,设计出了一套相当完备的分片解决方案。Harmony 借鉴了其它很多项目的优势之处,并且对其不足作出了有效的改进。Harmony 从网络、随机算法、共识算法多个维度进行了创造与改进,通过深度分片,实现了公链性能的线性扩展,为区块链的大规模商用垫定了坚实基础。

Harmony 虽有备而来,但仍面临一定的风险与挑战。分片技术从网络分片到交易分片再到状态分片,越深入实现难度就越大,挑战也就越多。Harmony 的目标是实现深度分片,因此其面临的挑战也不容小觑。

Harmony 在实现状态分片的过程为,为了防止 1% 攻击,每过一个 Epoch 就要在全网做一次重新随机分片,而在重分片的过程中势必要进行大量的通信与同步,因此如何处理好重分片带来的附加问题,是 Harmony 团队需要仔细研究与斛决的。

Harmony 现阶段并未实现智能合约分片,因此 Dapp 开发者若想要在各个分片中运行合约,而需要在对应分片中分别进行部署。虽然在部署过程可以通过自动化脚本实现,但是未实现智能合约分片,仍然在一定程度上增加了开发者们的工作量。因此针对这个问题,团队也需给出相应的解决方案。

自 2017 年第一个分片项目出现至今,市场上已出现几十个分片项目,其中也不乏一些优质项目,面临激烈的竞争,Harmony 能否杀出重围,值得拭目以待!

币源社区 链闻ChainNews
收藏
任何单位或个人认为OKZ显示的第三方内容可能涉嫌侵犯其信息网络传播权,可以通过在线或线下两个途径联系我们,我们会在合理时间内删除涉嫌侵权的作品。