Web3.0落地的必由之路:区块链的可扩展性和互操作性

2020-02-14 15:57 栏目:行业动态 来源: 查看()

这是万向蜂窝学院第13期,由奇偶性亚洲技术总监、和信息安全技术专家贾博士发表的演讲(现场速记编辑)。在演讲中,贾博士介绍了网络3.0的定义和应用,并分享了实现网络3.0的技术和方法。我叫贾,是奇亚项目的负责人,主要负责基质开发商的技术研发和生态建设。今天,我将在区块链与你们分享两个困难但有趣的话题,一个是可伸缩性,另一个是互操作性。今天的内容更具技术性。我将举一些例子来帮助你理解技术细节。

Web3.0

Web3.0落地的必由之路:区块链的可扩展性和互操作性

Web3.0的定义和应用是目前流行的概念。区块链行业的许多人也会认为他们开发的应用程序是面向网络3.0的。什么是网络3.0?Web3.0有许多不同的定义,上图采用了其中的一个。在网络1.0时代,网页是只读的,用户只能收集和浏览信息。网络2.0时代是一个社交网络的时代,比如脸书、推特、人人网、新浪、微信,以及最新的拍板、震动等等。作为用户,我们不仅可以浏览,还可以创建自己的内容并上传到互联网上。Web3.0向前迈进了一步。除了发布内容,它还能在未来做更多的去中介化工作。这样,我们必须提到一些需要的方法,包括一些概念。

网络2.0时代的数据由像谷歌、脸书和亚马逊这样的大公司控制。当您使用他们的服务时,协议规定您免于使用您的数据。尽管谷歌早期的口号是不作恶,但它有时会向第三方提供自己的数据。在网络3.0时代,我们不需要他们保证不作恶,而是通过代码让他们不能作恶。在

Web3.0时代,需要什么样的技术来实现这一愿景?区块链是一个基金会。区块链能提供的特征是:第一,它不能被篡改;第二,它是公开和透明的;第三,它是点对点网络。

进一步的细节,如网络3.0技术堆栈,可以简单地分成这些层。顶层是客户端,例如分散的浏览器。在此基础上,它包括一些协议支持的开发工具、相应的API和特定的编程语言。Facebook的天秤座有自己的编程语言Move,以太网有自己的编程语言Solidity。下一层是第2层协议,如治理和状态通道。区块链的应用程序不能随意在互联网上获取信息。例如,如果你想看天气预报,区块链不能直接提供这样的数据。这里我们需要第2层协议栈中的预测机器协议。互联网上的信息可以通过协议本身的预测机机制获得并放置在区块链。第1层协议是众所周知的区块链底层协议、比特币、以太网等公共链。联盟链采用相似的底层协议,这为支持整个网络3.0愿景提供了基础。接下来是网络层,如P2P网络传输。

Web3.0落地的必由之路:区块链的可扩展性和互操作性

有了这样的技术堆栈,通往web3.0的道路变得更加现实。在许多第1层协议中,波尔卡多的交叉链接协议有许多优点,如共享安全性和互操作性。波尔卡多本身是基于奇偶性的开源衬底开发的。作为一个通用的区块链开发框架,衬底可以用来开发第一层协议,如交叉链操作,以及第二层协议,如预言。

基于上述技术堆栈的早期应用是什么?上图列出了一些典型的Web3.0应用程序。除了众所周知的公共链系统,还有一些网络协议层项目,更多的位于应用层,如金融服务中心等。但是,对于非区块链领域的用户来说,真的有主流应用吗?还没有。什么导致主流应用程序的缺乏?这里有几个例子可以解释。

Web3.0落地的必由之路:区块链的可扩展性和互操作性

案例1,怪物太小。这是一个游戏应用程序,一两年前在以太网上特别流行。它的方法和电子怪物一样。你买这样一个怪物来和其他怪物战斗。如果你赢了,你可以升级。这款游戏一开始很受欢迎,但后来发现太贵了。如果你把一个小怪物提升到4级,它将花费你15美元,你将一直支持他对抗怪物或训练。

案例2,以太网猫。一两年前,它相当受欢迎。你可以买到各种加密猫。两只加密的猫可以生成一只新的加密猫。在鼎盛时期,一些加密猫价值10万美元。但是也有问题。玩的人越多,费用增加的越高,因为以太网广场的吞吐量只有这么多。如果你想玩,你需要以更高的价格购买这样一只加密的猫,出生费用也会相应增加。现在,加密猫应用已经淡出人们的视线。

总结认为,对于目前的区块链工业来说,低吞吐量带来的高处理费给DApp的发展带来了许多功能上的限制。

可扩展性

学术界和工业界都致力于解决区块链的低吞吐量问题。一种方法是增加块的大小。如果块大小增加,吞吐量将会提高。但是,由于带宽限制,这不是提高吞吐量的有效(100倍)解决方案。

方案2,通过离线交易。处理链下的所有交易并链接结算部分。因为集中式服务器可以用来处理事务,所以每秒钟可以轻松实现数千个事务。通过这种方式,可以有效地提高吞吐量。但是也有缺点,因为不是所有的事务都在链上完成,中央服务器本身会作弊吗?透明度是个问题。

方案3,我们不再采用链式数据结构,而是采用图形结构。不同的节点可以产生不同的广播块。当一个节点想要打包块时,它可以基于过去的块构建一个有向无环图,然后打包并分发给其他节点。其优势在于,它可以包含各种事务,同时提高吞吐量。在图结构中,许多事务中可能存在冲突,最终执行的智能合同中可能存在差异。这是图形结构遇到的难题。

方案4,代理机制。参与共识协议的节点越少,它们运行得越快,吞吐量就越高。只有少数超级节点可以参与一致性协议以获得高吞吐量,但容易被污染的是少数代理节点是否能代表整个社区。如果节点较少,这些节点不太喜欢某些事务或应用程序,但它们实际上可以拒绝由该应用程序提交的事务。这可以追溯到集权的弊端。

此外,还有碎片和多重链。该解决方案代表了在不损失许多偏心特性的情况下实现更高吞吐量的趋势。当您看到最新的以太网广场2.0和新的碎片项目,以及一些交叉链接项目时,您会发现它们之间的区别已经变得非常模糊,并且您经常可以将碎片视为同构链。多链和跨链事务中提到的原子协议与分段协议之间没有什么区别。有些采用相同的技术。只有多链技术和分段技术,有时会有中继链或中继分段来协调不同的分段或不同的链。但归根结底,技术本身实际上有许多相似之处,这在这里统一解释。

碎片化是为了划分和管理事务,从而提高吞吐量。例如,有1000个问题,100个人同时解决它们。现在我们可以分组了。一百个人被分成十组,一千个问题被分成十组。每组10人回答100个问题,并根据绝大多数人的回答形成共识。然后我们实际上可以确保每个小组正确地解决一百个问题,从而将整个解决时间从一千个减少到一百个。将来,如果有更多的听众,例如1000人,我们可以把1000人分成100个小组,100个小组解决1000个问题,一个小组只解决10个问题。最终,我们只能在10个问题中解决1000个问题。然而,可能会有一些攻击。如果有十个攻击者,他们会合谋被分配到第一组,并且在达成共识时不遵循某些原则,例如将一个便士分成一万元进行双重支出攻击。如果攻击者能够控制一个片段,则在某些协议中,生成的攻击不能被其他片段阻止。

如何避免这种攻击?

首先,应该设置一个高阈值来防止攻击者轻易加入网络和女巫攻击。一种方法是工作量证明,它需要

一旦有100个监听器(或节点),随机分组可以确保监听器被分配到不同的组。我们需要什么样的随机数来分组?一种方法是使用以前工作量证明的结果作为随机数,将每个人分成不同的组。另一种方法是使用随机数生成协议(如VRF)来证明权益,这样每个人都可以分成不同的部分。

如果有合理的组,并且每个组都能保证正常节点占绝大多数,那么如何将上述1000个问题分成不同的组。为了保证不同切片或整个系统的数据一致性和有效性,我们需要一种方法来防止同一事务被不同切片多次处理或同一数据被多次更改。一个常见的解决方案是使用两阶段提交协议来确保数据一致性。

只谈网络碎片,节点可以安全地分成不同的片段或链,后续的事务也可以分成不同的片段,然后进行事务处理,同时保证数据的有效性和一致性。如果您使用状态碎片,如ETH2.0。每个碎片都有自己的数据存储,不同的碎片存储不同的数据,单个碎片有数据丢失的风险。

一个更直观的解决方案是通过一些权益奖励来鼓励节点长时间在线,并进行大量的交易验证和共识协议,以确保它们不会受到惩罚。如果发生长期断线,系统将会将其拆除,抵押权益也将被取走。当我们有一个健壮的切片系统时,我们可以整合多个切片或链的吞吐量,从而大大提高整个系统的吞吐量。

对于分段和多链方法,我们更多考虑的是哪些方法可以进一步提高单链的吞吐量?更快的解决办法是改变共识协议。目前,比特币或以太网使用中本聪共识协议。节点在经过一段时间后通过工作负载验证生成一个块,并将该块广播给其他节点。当其他节点看到该块时,它们将选择链最长的块进行确认。《中本聪共识协议》的优点是权力下放和不同步。即使网络中有数万个节点,并且存在不同的网络延迟,《中本聪共识协议》仍然可以在整个网络中很好地达成共识。当然,缺点是吞吐量太低。

拜占庭共识协议(BFT)是学术界和工业界的共识协议。简单地说,例如,我现在要去买一张票。我想确保现场100人中的大多数都知道我想买票,每个人都同意我想买票。我的方法是向每个人广播我想买票的信息。在收到这样一条信息后,其他人同意这条信息,然后广播它。每个人从2/3个节点收到确认消息后,广播另一条确认消息,表明他已经收到了绝大多数人的确认。当每个人从2/3个节点接收到最终确认信息时,就确认整个网络已经同意并确认了门票的购买。

拜占庭共识协议具有快速的优势。如果实施这样的BFT控制协议,很容易达到1000吨/秒以上,并具有绝对的终局性。一旦协议到期,就可以立即确认最终结果。

缺点是传统的拜占庭一致性协议只能用于少于100个节点和多于100个节点。由于网络拥塞,信息交换量太大,无法增加吞吐量。同时,它也不是完全异步的。每个阶段都有一个等待时间,例如,中间可以等待十秒钟,如果没有,继续下一阶段。如果协议长时间不向前移动,视图将被转换,切换指挥官将重新运行协议。

波尔卡多巩固和完善了中本聪共识和拜占庭共识。它使用一种混合算法,爷爷协议和婴儿协议。BABE协议负责块生成,而爷爷协议提供终结性。贝比与传统的比特币和以太网协议相同。每隔几秒钟,选择一个节点进行封锁,封锁后进行广播,几秒钟后,选择第二个节点进行封锁,不同的节点也根据最长的c选择封锁

爷爷算法是基于BFT的改进版本,是一个非异步的一致协议。由BABE协议生成的块,即爷爷协议,最终将被最终确定。BABE协议生成不同长度的链,而爷爷协议将选择包含最多投票的有效链进行确认。在以前的区块链,协商一致的协议通常是一个块一个块地敲定,但波尔卡多是根据不同的链条敲定的。例如,如果在一段时间后生成了十个或二十个块,那么运行爷爷协议来一次直接确认这二十个块。这样,爷爷可以在有限的时间内确认更多的块。

通过上面的解释,我们可以看到我们想要一个高吞吐量的区块链解决方案,同时我们有更好的去中心特性。最好的方法是选择一个具有高吞吐量的单链解决方案加上一个安全有效的分段或跨链解决方案。

互用性

除了可伸缩性,我们还需要从实用的角度考虑为什么需要互用性或者为什么需要交叉链接。传统上,区块链可以解决信任问题。如果可伸缩性能够得到解决,那么性能问题也将得到解决。当上述两个问题得到解决时,互操作性实际上是为了解决一个更广泛的信任问题。

目前,不同的应用场景有不同的联盟链和公共链。有了这些链,我们需要互用性来传递有用的数据。这里将涉及不同的交叉链或互操作性方法。未来,我们将看到一个界限极其模糊的区块链体系,即私人链、联盟链和公共链以某种方式相互关联。

区块链域的互操作性,为什么在传统的互联网应用中没有明确提到这种要求?因为目前的互联网基础设施已经提供了这些功能,如各种软件开发工具包和应用编程接口。如果你想把微信上的数据作为一个应用程序调用,你可以通过微信上的SDK和界面把它下载下来。如果你想支付,支付宝也有相应的支付渠道。在编写代码时,您可以调用API进行支付。我们目前不能在区块链做这件事的原因是,由于不同区块链的不同共识和区块结构,我们的数据仍然处于孤立的岛国状态。为了在不同的岛屿上传输数据,我们必须通过互操作性和跨链系统将不同的区块链连接起来。

互用性和跨链协议的具体方式是什么?第一种是公证人模式,在不同的链条之间有一个公证人。相对分权的第二种方式是侧链模式。通过侧链,可以在链b上验证将链a上的哪些事务写入块中,然后链b可以验证链a上的操作并进行相应的操作,例如在链b上传输。第三种方法是散列时间锁定,这是一种相对复杂的协议。这是一个跨链的运作,整合分散和透明交易的资产。简而言之,如果我用以太网进行比特币交易,我会在比特币端加锁,另一方也会在以太网端加锁。我给了他钥匙,我可以用同样的钥匙得到相应的以太网地址,他可以根据钥匙得到相应的比特币。还有一个时间锁,以确保双方只能在有限的时间内解锁以太网和比特币,否则协议将自动终止,任何一方都不会获得另一方的资产。

刚才提到的方法都是很好的数字资产跨链解决方案,无论是从效率还是分散的角度来看。如果我们想要交叉连接数据和逻辑层,我们需要更复杂的系统,例如多链路系统中的中继链。特别是对于波尔卡多,该系统使用中继链来协调不同并行链的交叉链操作。根据不同的业务环境,开发人员可以使用衬底来开发和构建不同的并行链。中继链的验证节点用于验证并行链块的正确性,以保证每个并行链具有相同的安全性,同时协调不同并行链之间的通信。一些现有的区块链,如以太网和比特币,目前没有基于衬底的并行链版本。目前的方法是使用网桥将它们连接到并行链路,然后通过中继链路与其他链路通信。

在这样的框架结构中,中心是中继链,它连接不同的

每个并行链具有中继链的轻节点,用于接收和验证中继链的消息。同时,并行链有自己的归类节点,称为归类器。校对节点收集相应并行链上的数据,并将数据传输到中继链。中继链将分配不同的验证节点来验证并行链上的块是否正确以及是否存在双花攻击。如果某些块中存在问题,中继链将根据协议没收相应的并行链槽或惩罚一些节点。

Web3.0落地的必由之路:区块链的可扩展性和互操作性

上图来自波尔卡多的白皮书,其中包括不同的角色,包括不同的并行链以及并行链的工作方式,例如处理事务、广播事务和写入块的最终事务,最后写入主干链。

如果中继链想要支持数以千计的并行链,我们如何实现更高的横向扩展?该方法是利用二级中继链作为中继链中的并行链路,构建一个更加分散的交叉链路平台来连接中继链。

奇偶校验目前正在开发三个关键功能。第一个是积云。平行链需要一个连接器来连接到主干链,这个连接器就是积云。现在,只要获得相应的槽,由衬底开发的代码就可以通过积云连接到主干链,而在将来几乎没有变化。

第二个是XCMP交叉链接信息交换协议。如果不同的并行链想要调用或发送消息给其他并行链,它们需要通过这样的协议进行传输。

第三个是施普雷。说到交叉链,人们通常会默认交叉链资产。资产A位于链B的顶部,如果做得好,可以分散。更好的是,现在提到的不同链可以通过中继链或其他方法发送信息,而相反的链可以执行相应的交易或智能合同。但前提是不同的平行链是相对同态的结构。同构意味着不同并行链执行事务的逻辑大致相同。

链A使用EVM来处理智能合同,链B使用EVM来处理交易,然后链A将交易发送给链B,后者可以被处理。如果链A是EVM,链B是WASM,那么链B不知道如何处理由A接收的事务。SPREE可以支持跨链代码执行交互。链A打包自己的执行逻辑,并生成一个可执行的运行时,通过一些通道发送给链B。链B收到后可以执行链A的交易。即使A链和B链处理事务的方式不同,因为B接收A的代码和数据,那么B可以在A上处理事务。有了这三个协议,我们可以执行任何交叉链接事务和数据处理操作。

在过去的两年里,基底有超过200,000行代码和许多社区贡献者。基板将在第一季度从1.0升级到2.0,性能更好,组件更稳定。与此同时,已经有80多个团队基于基板/波尔卡多进行开发。欢迎大家在基板/波尔卡多上建立有趣的联盟链和平行链。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发