这是一个值得关注并置顶的公众号:区块链熊猫
开篇词:今天再说一个底层基础公链:zilliqa(zil),团队很强,是高吞吐,高性能公链,且已有产品模型,在亚马逊集群跑出了每秒大于2400个事务处理能力。
Zilliqa是什么?深入了解高可扩展性解决方案
Zilliqa是第一款旨在实现分片的公共区块链,允许线性缩放,因为区块链的规模增长。
迄今为止,可扩展性一直是现有区块链技术的一个问题。
目前,比特币无法处理其网络的所有需求,交易费也相应上涨。 以太坊的情况也是如此,其中有限的吞吐量意味着智能合约可能成为天然气密集型。 例如,Crypto Kitties的普及大大减缓了以太坊,显示了网络的极限。
Zilliqa从根本上改变了区块链达成共识的方式。 他们的分片解决方案随着网络的规模而扩大。 从理论上讲,Zilliqa每秒可以处理的交易数量没有限制。 然而,实际上,根据网络上节点的数量,Zilliqa每秒可以处理数十或数十万个事务。
Zilliqa还承诺支持智能合约。 在分片网络上运行智能合约是Zilliqa的主要技术挑战。 在本文中,我们将探讨他们如何接近交易和智能合约的可伸缩性。 我们也会调查Zilliqa的团队和路线图,看看他们是否能够胜任这项工作。
解决可伸缩性问题
区块链存在固有的可扩展性问题。 您在网络上拥有的节点越多,达成共识就越困难。
为了说明这一点,从人员角度考虑共识缩放是有帮助的:
通过一小群你亲密的朋友,做出决定很简单。 你可能并不总是同意,但很容易看出每个人的感受。
对于一大群人来说,就像一个充满人民的礼堂,你可以让人们举手投票。 但是数字变得更难,而且你不能确定每个人都是诚实行事。
由数千人或数百万人组成的团队,您需要一个更复杂的投票系统,这需要更多的精力。 你也无法确定人们是否真诚行事,很难达成最终目标 - 每个人都投了赞成票并且有明确的答案。
尽管类比并不完美,但您可以看到网络越大,共识如何变得越复杂。 一致的速度/质量和网络大小成反比关系。 当一个人上升时,另一个人下降。
区块链可伸缩性问题的其他解决方案侧重于将某些信息移出链。 或者,他们寻求增加区块大小,在每轮协商一致的情况下有效达成更多交易的共识。 这些解决方案可以作为权宜之计,但它们不能从根本上解决可伸缩性问题。
为了解决这个问题,你需要改变整个系统的体系结构,所以一致的速度和网络大小是正相关的。
Zilliqa的可扩展性答案
随着更多节点加入网络,Zilliqa已经找到了处理更多事务的方法。 它涉及从头开始重新构想区块链。 他们的新模型实现了混合共识协议,每增加约600个新节点,网络的吞吐量就会增加。
从理论上讲,每增加600个新节点,Zilliqa的吞吐量就会增加。 实际上,如果网络变得非常大(超过100万个节点),则存在广播问题。 尽管如此,仍有100万个节点是我们无法接近的上限。 截至撰写本文时,比特币已运行约11,000个节点。 以太坊是全节点最大的网络,拥有近25,000个网络。
比特币和以太坊的成千上万个节点的网络仍然只能 每秒 处理3-15个交易。 相比之下,私人测试网络(AWS虚拟测试)最近的测试表明,当1800个节点运行时,Zilliqa的网络吞吐量为1,218 tx / s。 将节点数量增加到3,600个,Zilliqa的网络扩展到2,488 tx / s。
分片:整个网络的分工
Zilliqa如何实现这种可扩展性?
他们使用称为分片的解决方案。 Zilliqa协议将网络中的挖掘节点数量分为600个节点组。每个组都被称为碎片。
例如,在上面的testnet示例中,当使用1800个节点进行操作时,测试网将其自身分成3个分片。 当运行3,600个节点时,有6个碎片。 随着更多节点加入网络,Zilliqa可以进一步划分网络,创造更多的碎片。
这些碎片每个处理网络事务的一小部分。 简而言之,如果有6个分片,每个分片将处理大约1/6的网络交易。 网络的碎片越多,网络分割碎片之间的共识负载就越多,从而保持计算需求相对稳定。
每个分片将其分配的事务处理成与其他分片并行的微块。 在并行处理阶段结束时,即所谓的“DS时代”,这些微块被组合成一个完整的块,并添加到区块链中。
DS委员会:管理碎片
对于每个DS时期,随机选择几个节点来管理各种分片。 这个管理委员会被称为“DS委员会”,负责管理网络。 他们决定将哪些节点分配给哪个分片。 当新的交易请求到达时,DS委员会将交易分配给分片进行处理。 在DS时代结束时,DS委员会从碎片创建的微块中组装完整块。
寻找共识:PoW + BFT
Zilliqa使用混合共识机制。 当你第一次开始挖掘时,你必须完成一份工作散列的证明。PoW需要计算能力来保证机器只能操作一个节点。 因此,PoW帮助Zilliqa建立身份。 这使得一个不良行为者很难创建多个身份来压倒网络中的所谓Sybil攻击。 然而,该网络并未使用工作证明来达成一致。
在一个节点证明了它的身份后,它被分配给一个分片。 在碎片中,Zilliqa使用实用的拜占庭容错共识。 这是一个具有最终吞吐量的更高吞吐量的共识机制。 Finality意味着碎片中的大部分节点必须与小块一致。 一旦一个块被分片和DS委员会确认,它是唯一可以引用它之前的块的块。 最终的共识机制没有分叉。
Zilliqa不是第一个实施BFT的分布式账本。 NEO,Tendermint和Hyperledger使用经过验证的BFT共识机制的版本。
数据流合同和状态分片
分片交易相当简单。 您可以轻松将交易验证分配给各种分片。 每项验证都是独立的。 应该不需要在分片之间进行多少交流。
在分片区块链上运行智能合约和分散应用程序(dapps)也是如此。 问题在于智能合约行为通常依赖于检查其他状态,变量和函数。 这样做需要在碎片之间进行大量的通信。 来回传递这些消息将需要带宽和处理能力,这会否定分片的好处。
因此,Zilliqa的合同只专注于数据流和功能编程。 他们不允许检查,存储或更改状态。 至少,还没有。
迄今为止的共识是,没有一个安全和有效的州分割计划。 如果允许合同在不同的分散国家分别执行,那么可能存在各种潜在的攻击,对和解的挑战以及过度的跨部门沟通。
然而,以太坊目前正在研究州分片解决方案。 目前尚不清楚该倡议在其发展中取得了多大进展。
也就是说,Zilliqa仍然可以用于需要高吞吐量的dApp。 任何需要超出当前其他区块链上可能使用的交易费率的dApp都可以在Zilliqa上找到一个家。
一种新的编程语言
为了使功能性编程更加标准化和安全,Zilliqa团队开发了一种名为Scilla的新编程语言。
Scilla分离状态和功能。 它是一种函数式编程语言,它将合同的通信方面(转移资金或调用另一个合同)与合同所执行的实际计算工作区分开来。
新语言不是图灵完整的。 这意味着它不支持需要某些类型的循环或条件语句的应用程序。但是,它的不完整性使其受到形式逻辑证明的支配。 这对于安全目的很重要。 通过证明合同,用户可以在使用合同之前以可验证的方式知道合同是安全的。
Scilla有助于区分Zilliqa支持的功能合同和Zilliqa目前无法支持的依赖州的合同。
ZIL令牌
Zilliqa拥有其生态系统的象征。 与其他dApps平台(如以太坊或NEO) 类似 ,ZIL令牌可用作采矿激励,执行合同的天然气以及支付交易费用的招标。
最初,ZIL是基于以太坊区块链的ERC-20标记。 这是因为Zilliqa公共主网尚未启动。 当它这样做时,ERC-20令牌将交换Zilliqa本地令牌。
Zilliqa在2017年底的私募融资中筹集了相当于1200万美元的ETH。在私人回合之后,ETH的价格飙升意味着最初价值1200万美元的私人资金很快就被计入了该项目的2000万美元硬限额。
Zilliqa公司已经达到了上限,告诉其社区不再需要公开发售。 但是,由于社区的兴趣,Zilliqa 在2018年1月将4445 ETH分配给公众销售。
ZIL令牌目前正在Huobi,EtherDelta,gate.io和Idex交换。
Zilliqa团队
Zilliqa背后的团队主要是计算机科学学者和博士。
首席执行官董新东拥有新加坡国立大学计算机科学博士学位。 他是网络安全专家,负责新加坡的几个国家安全项目。 他的研究也出现在知名的会议和期刊上。
Prateek Saxena是首席科学顾问。 他拥有加州大学伯克利分校计算机科学博士学位。 他现在是国大计算机科学教授。
Amrit Kumar是该项目的加密主管。 他是新加坡国立大学的研究员。 他拥有法国格勒诺布尔阿尔卑斯大学的博士学位和法国巴黎高等理工学院的工程师文凭。
Zilliqa的咨询委员会包括区块链上的知名人士。 他们包括Kyber Network联合创始人Loi Luu; Vincent Zhou,FBG Capital创始合伙人; 比特币瑞士公司合伙人Nicolai Oster; 和StrongHold Labs的创始人兼首席执行官Alexander Lipton。
结论
可扩展性将继续成为区块链和分布式账本技术的问题。 Zilliqa是一个正面应对可扩展性的重要项目。 该平台本身可能被证明是区块链中的重要发展。 然而,更广泛地说,期望看到Zilliqa在分片技术方面的开源突破将在未来几年用于其他区块链项目。
网友评论