没有合适的资源?快使用搜索试试~ 我知道了~
区块链:研究与应用3(2022)100031一个可扩展的分散式系统,用于公平的令牌分发和无缝的用户注册Francesco Baghchia,*,Manuel Tumiatib,Mr. Ranaa,Mattia Bianchib,Donatella SciutoaaPolitecnico di Milano,米兰,20133,意大利bKNOBS srl,米兰,20121,意大利A R T I C L E I N F O关键词:区块链代币入局钱包A B S T R A C T代币是数字化、可转让和可编程的资产,也是区块链提供的最有前途的工具之一。它们可以实现广泛的应用,从现实到未来。实现令牌广泛采用的主要问题之一是入门:主要平台要求用户处理特定工具,如钱包,交易费,密钥生成和存储。为幼稚用户提供熟悉体验的最常见解决方案是托管中介,其具有集中处理过程的重要缺点,并且使用户远离自我主权资产控制的优势。在本文中,我们提出了一个数字令牌的最终用户的分布过程中,利用该过程旨在使尚未习惯区块链工具和概念的用户以安全和分散的方式尽可能容易地加入1. 介绍区块链技术引入的可能性之一是通过用户自主生成的加密标识符来表示可以轻松安全地拥有的数字资产。资产可以无缝转移,交易的逻辑和机制可以可靠和透明地编程。比特币[1]历史上引入区块链的系统本身可以被视为存储,所有权和可编程转移特定价值令牌(比特币)的平台。如果我们关注比特币代币,我们会观察到一些特殊的特征:它有一个上限供应;它是用预定义的、确定性的机制(作为对矿工的奖励)铸造/分发的;它具有一个基本功能(可用于在网络中支付交易费用然后,这个概念经历了一个抽象的过程,框架被设想用来设计和开发其他类型的令牌,功能. Omnilayer [2]是第一个可编程资产框架之一,它在比特币之上提供了一个层在它的基础上,第一个(也是截至本文撰写时,仍然是资本最多的)稳定币之一Tether [3]诞生了2012年,Ether- eum [4]推出了一个完全可编程(图灵完备)的区块链。从一开始,具有自定义功能的代币的定义就是为以太坊提出的激励应用之 这个想法被坚持下来,两个标准的抽象接口,ERC20 [5]和ERC721 [6],被定义为最大限度地提高采用率和互操作性。从那时起,一个新的代币、服务、证券和公用事业的寒武纪时代开始了,在这个时代,人们构想了大量的骗局和非常成功的项目。令牌的一个基本和有用的划分是在可替换和不可替换之间。可互换代币是那些可以互换的代币,例如美元钞票。反过来,不可替代的代币具有有意义的个人特征,例如收藏品或活动门票等。可替代代币可用于表示,例如,类似货币的价值或对服务的访问(在后一种情况下,它们被称为实用代币)。有时,就像以太币(以太坊中用于支付计算费用的代币)和比特币一样,同一个代币既可以作为一种实用工具,也可以作为一种价值交换和存储的手段。不可替换令牌的一些应用包括物理/虚拟资产、业务、可替换资产等的当前状态的表示。* 通讯作者。电子邮件地址:francesco. polimi.it(F. knobs.it(M. Tumiati),vincenzo. polimi.it(V. Rana),mattia. knobs.it(M.Bianchi),donatella.sciuto@ polimi.it(D. Sciuto)。https://doi.org/10.1016/j.bcra.2021.100031接收日期:2020年12月30日;接收日期:2021年9月16日;接受日期:2021年9月22日2096-7209/©2021作者。由Elsevier B.V.代表浙江大学出版社出版。这是CC BY许可证下的开放获取文章(creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表区块链:研究与应用杂志主页:www.journals.elsevier.com/blockchain-research-and-applications●●●F. Alberchi等人区块链:研究与应用3(2022)1000312在大多数应用程序中,令牌的初始分发是关键。最佳代币分配策略随代币背后的经济模型(有时称为代币经济)而变化。典型的分发策略包括初始代币发行(ICO),其中代币进行限时销售,有时使用拍卖机制和空投,其中代币免费分发给一组用户。我们将在第2节中回顾这些策略中的大部分。另一个关键的方面是用户被赋予的所有权控制类型虽然在某些情况下,令牌针对的是对区块链工具有一定信心的用户,但在其他情况下,希望吸引“加密天真”的用户。 这可能会带来挑战,例如如何让用户支付费用,以及如何生成和保存密钥。目前,托管所有权架构是最受关注的选择,其中中间人保留密钥并支付费用,提供“经典”界面(用户登录)。 托管模式尽管友好,但也有许多缺点,其中包括系统的“再集中化”、自然的交易对手风险以及系统中引入更脆弱的活动部件。最后但并非最不重要的是,从“教学”的角度来看,它们不允许用户习惯区块链资产所有权的特征。在本文中,我们提出了一个旨在通过QR码分发令牌的系统,并且不需要任何软件工具,也不需要以前熟悉任何区块链或加密概念。这一过程是非监禁的,完全分散的。然后,我们展示了系统的实现,并展示了在现实世界中使用的性能和成本数据,以及对所提出的方法的可扩展性的深入分析本文是参考文献[7]的扩展版本。相对于原始文件,我们分析了所提出的系统的性能限制(延迟,吞吐量,成本),并检查和审查的主要工具和技术,以提高可扩展性。在分析了不同的选项之后,我们将重点放在乐观汇总上,并尝试使用它们来提高可伸缩性。然后,我们描述和分析所获得的结果2. 现有技术有不同的方式来分发新的令牌。在某些情况下,代币从一开始就具有有形价值,然后可以出售以换取其他价值(法定货币或其他价值代币)。其他时候,托肯没有初始价值(也就是说,没有买家愿意为它们支付价值),但在引导系统中发挥作用在其他一些情况下,令牌是您想要分发的某些资产的不可替代的表示(例如,收藏品)。 在本节中,我们将回顾令牌分发机制和策略的最新发展。2.1. 用于代币见参考文件[8],作者回顾和分析了代币分发机制在起源的主要策略,也就是说,在系统开始时,无论是新的区块链还是在现有区块链之上的应用程序。 该评论主要关注可替代代币,并确认代币销售是最常见的策略。但有不同的类型,包括:初始代币发行(ICO),其中代币通常通过智能合约出售,并以价值代币(例如,乙醚);初始EX转换代币(IEO),类似于ICO,只是代币在托管交易平台上出售,因此涉及受某些管辖权约束的行为者的角色;未来代币简单协议(SAFTS),其中代币不铸造和出售,而是投资者购买交付代币的承诺[9]。这一战略主要针对合格投资者。然后,本文回顾了区块链/加密货币领域主要项目采用的策略:比特币在创世纪没有分发任何代币所有的代币(比特币)都是作为矿工的奖励不断分发的;以太坊Z-cash有一种机制,可以将通过挖矿产生的部分代币分配给创建者和早期投资者。此外,还有一些被称为空投的策略在空投中,令牌被分发给活跃用户(例如,分发给余额大于零的以太坊地址的子集)。 虽然空投可以很容易地瞄准利基潜在用户,但它们可能无法产生参与,因为用户被动地接收东西,没有“游戏中的皮肤”。相比之下,交互式空投向愿意获取令牌的用户请求一些或多或少的互动空投有不同的下倾。 在锁定点中,用户可以通过在给定的时间内锁定合约中的某些值来获取令牌。通过这种方式,用户表现出一种承诺,并以失去价值的机会的形式维持成本在Merkle mine中,最初会产生一些令牌,然后用户可以通过提供Merkle证明来收回它们,证明他们的地址在网络状态中的某个块高度。2.2. Burner钱包如果分发针对的是不习惯区块链交互工具的用户,他们必须克服许多认知和实际障碍。 对于一个无情的,但愉快的表现parado X es,一个新来的人必须面对,见参考。[10 ]第10段。一些最相关的障碍是:新用户没有代币托管应用程序(钱包);他们无法支付交易费用(因为他们还没有必要的价值代币)。解决这些问题的最激进的方法之一是一个名为Burner Wallet的工具,它是在XDAI项目中开发的。Xdai是一个以太坊虚拟机兼容的区块链,具有特定功能,具有原生价值令牌,可以与以太坊主网上的dai稳定币交换 该网络旨在作为以太坊的更快,更轻的侧链,用于支付等用例。Burner钱包是一个允许通过非托管Web应用程序向新用户传输X个代币的应用程序。如果发送方想要传输一些xdais,它会访问Burner [12],这是一个连接到用户钱包的Web应用程序,并在发送方的批准下将代币发送到特殊合约。与此同时,该应用程序生成一个链接(和相应的QR码),重定向到在钱包上创建的钱包,可以兑换代币兑换代币的初始费用由系统支付通过这种方式,获得链接的用户可以兑换代币,将它们保存在在钱包上创建的钱包(燃烧器钱包)中,并随时转移它们创建的帐户的密钥存储在浏览器的本地存储应用程序说明建议将收到的令牌转移到更安全的地方,例如冷存储钱包。燃烧器钱包采取的方法大大降低了用户的入门门槛。尽管如此,还是有一些集中点,其中提供应用程序的Web服务器,在由于某些原因不可用的情况下,使令牌收集变得不可能。3. 有待填补的从对现有技术的分析中,出现了许多用于代币分配的策略和过程。大多数策略要么是针对加密用户,要么是保管。对加密新手用户最“包容”的方法该系统仅限于相应区块链上的xdai令牌然后,适当的是评估一个通用系统的可能性,●●●●●●●●F. Alberchi等人区块链:研究与应用3(2022)1000313代币的分发,无论是可替代的还是不可替代的,具有以下属性:最小的进入摩擦:不需要预先使用钱包,也不需要任何其他特定的应用程序;更重要的是,不需要初始令牌来支付初始交易费用;系统应最大程度地分散:用户密钥不应被任何第三方持有或知晓;令牌获取应不受审查,且该过程不应依赖于第三方控制的任何服务器(理想情况下,甚至不依赖于为应用程序提供服务的网络服务器);它应该是最大限度的公平:它应该允许向用户分配令牌的可能性,就像在可证明公平的彩票中一样。在本文中,我们提出了一个具有这些属性的系统,该系统还允许通过物理对象进行分发,例如近场通信(NFC)标签或打印的QR码。 在描述了过程及其实现之后,我们提供了系统在实际用例中的实验性能和成本数据。4. 如何填补差距为了理解用户体验的简单性,让我们描述用户Bob必须遵循的步骤,以便在全新的钱包上获得一定数量的令牌鲍勃以某种方式(通过电子邮件,物理令牌,打印在纸张上)接收QR码;鲍勃用他的智能手机摄像头扫描二维码智能手机上会出现一个弹出窗口,询问Bob是否想用Web浏览器打开浏览器打开链接并将Bob重定向到Web应用程序; Web应用程序要求Bob执行以下任务:– 点击一个按钮来生成一个新的帐户(一个新的钱包);– 点击按钮以兑换与QR码相关联的令牌;此时,应用程序通知Bob令牌已被接收到他的新钱包中。Bob现在是令牌的所有者,他可以使用它们来购买服务或产品,或者通过简单地证明令牌的所有权来下载独特制作的由于已经生成了新的钱包,用户现在可以通过扫描其他QR码来兑换新的代币,而无需从头开始重复整个流程这种方法对于非加密用户来说也很有用,可以更好地了解在入门阶段发生的事情在其他功能中,web应用允许Bob导出他的钱包的凭证(即,地址的私钥),从而他可以将他的钱包转移到其他应用/工具上(例如,Metamask[13])。4.1. 系统架构整个系统架构如图所示。1.一、该系统的链上逻辑由两个智能合约组成,用Solidity编写[9]并部署在以太坊主网上。这些合同是:● webapp版本控制合同[14];● 代币发行合同[15]。应用的链下逻辑由以下部分组成两个Web应用程序,存储在星际文件系统(IPFS)[16,17];● 交易中继服务器。4.1.1. 二维码生成第一步是令牌的初始铸造和公钥/私钥对的生成(每个要分发的令牌一个)。事实上,每个令牌在智能合约内和铸造阶段都与特定凭证的公钥相关联相应的私钥与Web应用程序的URL结合使用,以生成要分发给用户的QR码然后,该QR码将使得接收它的用户能够兑换与对应于QR码中包含的私钥的公钥相关联的令牌。4.1.2. Webapp URL管理在建议的系统架构中,Web应用程序的HTML文件通过IPFS提供[18]。这使得有可能:避免由于单个服务器向用户提供Web应用程序而导致的集中化,因为IPFS是一种分散的文件存储;向用户保证他们在浏览器上运行的应用程序没有被更改/修改/黑客攻击,因为IPFS文件是通过他们的哈希来寻址的。这种解决方案的缺点是不可能在部署后更新应用程序,因为HTML的任何更改都会更改嵌入到用户QR码中的散列在建议的架构中,我们通过几个HTML Web应用程序和一个版本控制智能合约解决了这个问题,该智能合约始终包含Web应用程序最后版本的哈希值。Fig. 1. 建议的体系结构的架构。●●●●●●●●●●●●F. Alberchi等人区块链:研究与应用3(2022)1000314214.1.3. 合约和代理应用程序的Versioning Contract用于定位钱包Web应用程序的最新版本为此,它通过将所有应用程序的哈希值存储在列表中合约提供了一个公共方法,返回列表中的最后一项基本上,代理应用程序(其散列嵌入在提供给用户的QR码中)仅包含访问版本控制智能合约的逻辑,检索Web应用程序的最新版本的散列并将用户重定向到它。因此,Web应用程序的更新仅需要更改其HTML代码,计算新散列,并使用此新散列更新版本控制智能合约4.1.4. 代币分发应用程序ProX y应用程序将用户重定向到实际令牌分发应用程序的当前版本这本质上是一个钱包,可以在现场生成一个新的以太坊账户(私钥和地址),并可以与链上的令牌分发合约进行钱包在QR码中编码的URL中接收唯一的私钥,其对应的公钥与铸造的令牌之一相关联该密钥允许应用程序在对请求进行签名时赎回相应的令牌。 为了避免将代码传输到IPFS网关,这被插入到URL的片段部分中,并且因此仅对设备本地的JavaScript应用可用。然后,该应用程序允许用户:生成一新以太坊生成赎回交易,该赎回交易包含用赎回私钥签名的将令牌转移到新生成的账户的请求;● 将交易发送到依赖服务器(如下所述);● 导出生成的帐户。4.1.5. 代币分发合同令牌分发合同管理唯一数字资产的创建,该数字资产只能由证明拥有权利的用户赎回。为了达到这个目的,合约实现了一个ERC721接口,并且对于每个不可替代的令牌,都会跟踪与之关联的资产(在我们的实验中是PDF文档)。此外,合约还存储了一组表示令牌所有权的公钥。所有文档首先存储在IPFS中,然后在区块链上注册相应的哈希值,并与新创建的令牌相关联,调用特定的方法,保留给合同所有者。 一些代币也可以与其他代币标记不同,例如,根据特定实验的要求,拥有“标准”和“溢价”资产。另一种方法允许添加能够回收令牌的公钥令牌和公钥存储在不同的列表中,并将在赎回过程中动态关联,因此事先不知道关联。私钥将被分发给用户,以产生可由相应公钥验证的有效签名。4.1.6. 事务中继服务器为了使用户能够在不要求他们支付交易费用的情况下兑换令牌,所提出的系统架构还设想使用中继服务器。用户从IPFS检索的Web应用程序尝试与此交易中继服务器连接,向其发送服务器可以包含在新交易中的签名消息,从而支付交易费用。令牌分发智能合约能够分析由中继服务器发送的消息,该消息包括由用户web应用签名的消息,令牌分发智能合约可以从该消息检索新的铸造令牌必须被发送到的地址在这种情况下,交易中继服务器不能改变签名消息或伪造伪造签名消息,因此用户(私钥的所有者)是唯一能够创建和签名有效消息以赎回令牌的人请注意,这不是一个单点故障,因为用户总是有可能自主地将交易发送到令牌分发智能合约,唯一的缺点是他们必须支付交易费用。4.1.7. 性能总而言之,我们的解决方案具有以下几个特性:易于访问:去中心化应用程序是基于Web的,因此它不需要下载任何外部应用程序;随时间推移的可用性:去中心化应用程序构建在单个文件中并存储在IPFS上,因此任何人都可以通过固定该文件来保持其可用性(对可用性的控制权掌握在用户手中);灵活性:用户可以选择是否在钱包上创建一个新的钱包,从Metamask获取现有钱包的地址,或者手动插入他们想要接收令牌的地址;安全性:QR码机制和密码层确保中继服务器不能恶意行为分散化:系统设计为即使没有中继服务器也能工作;开放性:任何人都可以创建自己的界面,通过遵循公开可用的赎回协议与智能合约进行交互5. 实验结果在本节中,我们将介绍解决方案的实施以及成本和性能数据的一些细节,这些细节是在一次公共活动中测量的,在该活动中,该系统被用于分发ERC721令牌,该令牌赋予下载提供不同版本的文档令牌分发合约的接口是一个赎回函数(在我们的实验中名为公钥对应于用于对消息进行签名的私钥;● 接收方地址;● 包含接收者地址的消息的签名通过使用所提供的信息,该函数能够检查签名的有效性,并将签名者公钥与之前在智能合约中注册的如果签名有效且尚未使用,则将动态选择令牌并将其传输到所提供的地址。这种动态关联是使用“公平彩票”机制完成的,该机制具有预定义的概率,允许将特殊资产随机分配给一些用户,将非特殊资产分配为了在确定性系统中实现可接受的随机性水平,有必要考虑不同的熵源。在区块链上,矿工对当前时间戳(以太坊中约为15秒)和以前区块的信息有一点控制 这可能允许他们预测仅依赖于这些参数的随机数。我们的方法,如图所示的代码。2,是使用散列在一起的块相关值的组合,从该散列中获取的字节与从函数调用中的签名(系统无法提前知道)中获取的字节之间的比较。这使得用户几乎不可能(对矿工来说也不方便)尝试预测(或预测)结果。该合约使用两个外部库:● ERC 721由OpenZeppelin管理不可替代的代币;● Solidity-signature-verify验证签名。1https://github.com/OpenZeppelin/openzeppelin-contracts。2https://github.com/kabl/solidity-signature-verify。●●●●●●●●●F. Alberchi等人区块链:研究与应用3(2022)1000315图二. getReport函数。表1合同大小的版本控制表2代币分发合约大小。源代码行代码源代码行代码全员合同20完整合同(包括图书馆)1326字节码字节报告合同(不包括库)120完整字节码大小2063字节码字节部署字节码1402完整字节码大小17228编译器和构造器代码661部署字节码16318编译器和构造器代码9105.1. 合约规模表1和表2提供了考虑源代码和生成的字节码的合约大小的概述在这种特殊情况下,高-表3版本控制合同-气体分析。如表1所示,很大一部分代码来自外部编译器,为进一步优化留下了空间。Solc版本:0.5.16网络提交.9c3226ce最佳化程式:假:200区块限制:6721975气体5.2. 气体分析表3提供了合同部署和方法执行所需交易的详细分析,包括天然气成本和欧元估计(考虑天然气价格为11 gwei,欧元/eth变化固定为195.43)。如表4所示,整个项目的交易成本在给定的函数调用次数(“# calls”)下是可持续的5.3. 登陆Web应用程序系统的入口点是一个简单的登陆页面,它与版本控制合约交互,检索最新的应用程序哈希,并将用户重定向到存储在IPFS上的令牌分发应用程序的相应版本,保留URL片段。当用户到达此页面时,底层应用程序将显示版本控制契约,并检索到最新版本的链接。方法11 gwei/气合约方法最小最大平均调用次数eur(平均)DappURLResolver newUrl展开百分比限制DappURLResolver应用程序通过调用getCurrentUrl函数。一旦完成,应用程序将用户重定向到令牌分发应用程序,转发URL片段中存在的所有参数。捆绑后的PROXY应用程序大小为403.96KB。5.4. 代币兑换申请该Web应用程序是在Preact [19]和ethers.js [ 20 ]中开发的,Preact是 一个 现代的JavaScript框 架, 具有 较小 的占 用空 间和 高性 能,ethers.js是一个功能齐全的JavaScript库,用于处理区块链交互和钱包管理。加载令牌兑换应用程序后,F. Alberchi等人区块链:研究与应用3(2022)1000316表4代币分配合同-气体分析。Solc版本:0.5.16x.commit.9c3226ce方法优化器:假11 gwei/气数量:200区块限制:6721975气体合约方法MinMaxAvg电话数量欧元(平均)报告addReport1246311696951248544500.27报告addSpecialReport124694154822125405500.27报告getReport2459632761072476555000.53部署报告––%限值4604336百分之六十八点五9.81用 户 可 以 决 定 创 建 一 个 新 的 钱 包 或 指 定 自 己 的 地 址 手 动 或 通 过Metamask扩展,如果存在。然后,应用程序允许用户要求他的令牌。当用户开始赎回过程时,应用程序从URL片段中读取私钥,生成签名,并将交易发送到智能合约。在过程结束时,令牌将被转移到合约调用中指定的地址 为了达到最大程度的透明度,该应用程序已在IPFS上发布,这保证了分散性和不变性。应用程序捆绑包被打包在一个HTML文件中,注意捆绑包的大小尽可能小。捆绑后的令牌分发应用程序的大小为993.20KiB。5.5. IPFS网关由于并非所有Web浏览器都能够直接从IPFS网络检索文档,因此网关在使每个人都可以使用服务方面发挥着重要作用两个主要的网关,云计算,[21]和Infura [22]在可靠性和性能方面进行了考虑和比较。最后,我们选择了云计算解决方案,也是因为它支持gzip。5.6. 中继服务由于我们假设用户没有价值令牌来支付赎回交易,因此引入了交易中继器服务中继器服务在远程服务器上运行,并分为两个交互进程。第一个提供了一个简单的HTTP服务器,能够从赎回Web应用程序接收HTTP请求,并且只允许具有三个组件的POST请求:包含将接收令牌的目标地址的消息的签名,使用从QR码检索的私钥签名● 对应的公钥;● 将接收令牌的地址然后通过队列将信息转发到第二个进程,第二个进程使用外部帐户的私钥来执行先前存储在数据库中的令牌请求首先分析这些请求,以分两步检查其合法性首先,使用给定的公钥对签名进行解码,结果必须等于将成为令牌接收者的给定地址;然后,与扫描的QR码相关的公钥必须通过询问智能合约是否已经被赎回来验证是否合格这些检查可以防止非法使用中继器服务,这可能导致恶意用户强制系统提交失败的交易,从而耗尽所有可用资金。一旦验证了请求的合法性,中继器服务就会通过预先加载以太币的地址将交易发送到智能合约,指定接收方地址。完成后,令牌将发送到指定的地址。所述服务不可能操纵收件人地址,因为智能合约也对收件人地址执行相同的检查。传入令牌请求。审查行动也不是可行的可能性,因为该服务仅作为请求令牌的可能性之一提供。如果它关闭了,用户可以自主发送交易,前提是他得到一些以太币来支付费用。5.7. 真实事件应用所描述的整个过程在2020年1月底在米兰理工大学举行的一次活动中使用 该系统分发了代币,使参与者有权下载区块链和分布式账本观察站的年度报告。 总共铸造了500个独特的代币。其中,50个代币被评为 500把私钥以QR码的形式印在小芯片上,分发给参与者。一旦用智能手机扫描,该QR码将用户重定向到Web应用程序,允许它通过中继器服务请求令牌。在活动的第一个小时,超过100个代币(114)成功兑换,其余190个代币在会议剩余时间(3小时)分发,总共分配了370个代币每笔交易的成本为0.27美元(0.00125以太币),全球共提交了881笔交易,包括第一批500笔用于铸造代币的交易。交易的细节可以通过以太坊区块链浏览器(如Etherscan)在合同地址处进行探索[15]。6. 可扩展性分析众所周知,使用公共区块链的两个问题是费用波动性和可扩展性。在剩余部分中,我们考虑不同的策略来降低费用并提高系统的吞吐量和延迟在所有不同的可能性中,我们考虑两种方法:侧链和汇总,目前存在实际的实现首先,我们分析和审查他们的原则和他们的运作,然后我们提出了一个实验与一个特殊的类型的汇总,所谓的“乐观汇总”。6.1. 侧链侧链[23- 25]是使用“更轻”的共识机制(例如,权威证明(PoA)[26,27])运行的区块链,允许系统以更低的延迟和更高的吞吐量运行,以分散和抵抗某些形式的攻击(例如,多数验证者的共谋这种权衡应该由侧链处理的价值来衡量:侧链处理的价值应该低于攻击的成本。大多数侧链都努力连接到一个主要的、高度资本化的区块链,比如以太坊(通常被称为主网),原因有两个:继承主网的部分安全功能,以及与那里活跃的资产和智能合约进行互操作侧链可以通过不同的机制连接到主网一种是定期在主网上提交它们的状态,以防止将来的篡改[28]。状态承诺还可以用于从侧链访问父链的状态,例如,如果●F. Alberchi等人区块链:研究与应用3(2022)1000317●þ提交具有Merkle根的形式,侧链上的逻辑可以评估关于父链状态的证明也可以双向提交状态(侧链状态经常在父链上提交,反之亦然),允许在父链和侧链之间来回转移代币和资产的机制[29]。另一种连接机制是网桥:它们允许与主网进行通信,可能是以各种方式。一种特殊类型的桥是令牌桥,它提供了向侧链发送令牌和从侧链接收令牌的可能性,但该机制可以推广到任何形式的通信。 网桥通常依赖于可信的预言机,负责将消息从一个链中继到另一个链。为了减少集中化,Oracle活动通常分布在不同的参与者之间。授权PoA侧链的验证者充当主网的信息中继器是有意义的,因为他们无论如何都可以控制侧链的状态。侧链的主要优点是其极端的灵活性:几乎可以完全自由地使用链/系统的任何参数:共识机制,脚本功能,帐户模型等。 另一方面,主要问题是依赖于用于到/来自主网的通信的预言机以及与侧链共识相关的弱点(例如,在PoA侧链中,验证者勾结可以容易地带来审查、资金冻结等)。在以太坊生态系统中,侧链的一个主要例子是xdai PoA侧链,我们已经在第2.2节中讨论了与燃烧器钱包有关的内容。6.2. 上卷另一类扩展策略是汇总[30]。在汇总中,事务数据在主网上提交,但执行(状态演化,存储和副作用的计算)是在链外执行的,只有效果在换句话说,交易被捆绑和“汇总”,在其他地方执行,其影响在链上转化。 这允许享受主区块链的主要好处(数据可用性,安全性和可激励性)。一般的问题是:如何确保链下执行的计算是正确的?有不同的机制和技术可以解决这个问题目前最流行的两种方法是零知识证明和乐观虚拟机。ZK-Rollups零知识(或ZK-)汇总[31]顾名思义,使用零知识证明来保证许多交易的影响被正确考虑并复合。此外,ZK汇总利用使用较少信息的事务的特定表示(例如,发送者和接收者被编码为地址簿中的索引,而不是以太坊地址)。其基本思想是,合约代表其用户管理资金(以太币或代币),并跟踪谁拥有什么,这与中心化交易所没有什么不同。 用户可以在系统中注册/注册,然后可以从其他用户处存入、发送和接收以太币和代币。用户之间的转账只影响汇总的内部状态,而存款和取款也会影响其他账户。合约的状态只包含用户信息的Merkle根(地址,余额,nonce)。 当用户想要执行一个操作时,他们指定所需的信息(他在地址簿中的索引,收件人索引,金额,他愿意支付的费用),签名,并将其发送给中继器。中继器获取批量交易,将其置于定义的顺序中,计算对状态的影响和副作用(以太币和令牌的转移),计算新的Merkle根,并创建一个ZK-snark [32,33],证明:所有交易均已正确签署;事务的累积效应(状态更新效应)是正确的。关键的一点是,任何人都可以作为中继球员。一个认为中继器正在审查他的交易的用户可以只充当他自己的中继器,并将更新发布到合约。中继器在经济上被激励以包括交易,因为用户可以将转移的一部分作为费用奉献给包括其交易的中继器经济动态与矿工相似。由于信息包含在交易和日志中,任何人都可以访问创建证明所需的所有信息,即使只有Merkle根存储在区块链状态中。 事务和日志信息的成本比状态存储低得多,但仍然具有高度的可用性,并通过记录在链上来保证。ZK汇总可以将以太币转移的成本降低24倍,将ERC20代币转移的成本降低50倍 [34]。ZK汇总的主要优点是:节约燃气成本超过一个数量级零知识证明使得中继器不可能声称用户交易的错误结果。而主要的缺点是:目前用于汇总的ZK证明验证系统需要一个初始的可信设置:需要产生熵数据,这些数据必须在设置后销毁如果熵数据被保存或已知,就有可能伪造虚假声明的证据。有可能通过提供所谓的“任意信任”保证的协议来产生、暂时使用、然后销毁熵这些协议是有效的,但需要复杂的● 它们只适用于资产转移,而不适用于一般的智能合约。让我们考虑一下zk-rollups在我们的系统中是否适用或方便,以加速令牌分发并降低费用。 我们的系统包括:● 初始分配系统(彩票);● ERC721代币虽然通过zk-rollup机制可以加速代币的交换并使其变得更便宜,但初始分配不会。因此,总而言之,优势将是有限的或微不足道的。6.2.1. 乐观汇总另一种类型的汇总是如在zk汇总中,被缩放的逻辑(例如,智能合约)在链上表示为对当前状态的承诺,而状态信息本身保持在链外。用户提交由验证器捆绑的交易验证器反过来计算一批交易的影响,并调用链上合约,并断言由于批中的交易而导致的状态演变以及影响,例如合约外的以太币转移,令牌转移和对其他合约的调用。验证器还通过交易数据或日志在链上插入用户交易,以便有关所有交易的所有信息都可用。虽然在zk-rollups中,验证器也生成并提交了由智能合约检查的正确性证明,但乐观rollups利用了另一种机制。当一个验证者提交一个断言时,他必须放下一些赌注。断言的效果不会立即执行相反,它们被“挑战期”所拖延。任何人都可以检查他的断言是否正确,因为交易数据是可用的,并且可以模拟它们的效果。 如果任何人发现断言不正确,他可以质疑发布它的验证者。这个挑战是由一些链上逻辑控制的。该系统旨在保证,如果验证器做出不真实的断言,任何人都可以向链上的逻辑●●●●F. Alberchi等人区块链:研究与应用3(2022)1000318一旦验证者被证明是错误的,他的赌注就被削减,断言就无效了。管理和解决机制表5汇总和L1方法执行之间的Gas成本比较挑战因实施方式而异在Arbitrum3中,验证者和挑战者进行第一轮,通过重复的平分,他们缩小了对执行的分歧,函数Arbitrum:调用数据所需的gasArbitrum:整个L1交易所需的gas以太坊主网气体单指令。此时,违规指令由链上逻辑模拟,争议得到解决。这一机制合同创建266.279 303.238 4604.336具有称为任意信任的信任属性:单个积极诚实的参与者足以保证交易的影响被正确考虑和执行。该解决方案的优点是:对于侧链,乐观汇总提供了更强的保证,具有更低的信任假设(单个诚实的参与者可以强制正确的行为);对于侧链,与主网的互操作性更容易,因为控制逻辑已经在其上执行;关于zk-rollup,乐观汇总适用于任意智能合约,而不仅仅是令牌传输。乐观汇总的主要缺点是它们具有很强的异步性:由于必须保证参与者有适当的时间来挑战验证器因此只有在挑战期之后,其他智能合约才根据估计[36],正确的激发期大小可以从几个小时到几天不等同时,已计入汇总合同的资产不能转移到其他地址。然而,请注意,外部观察者知道事务将在其写入链上之后正确执行,并且在挑战期到期之前这可能会打开一种可能性,即借出流动性以换取已在汇总中转移但在挑战期到期前被冻结的代币例如,爱丽丝可以在一个汇总中向鲍勃转移10个以太 在爱丽丝的交易被记录在链上之后,鲍勃确信他将在挑战期结束时获得10个以太币。同时,他可以在L1上借给Alice相同的金额,但要收取费用。6.3. 应用于代币分发系统目 前, 有不 同的 乐观 汇总 实现 , 两个 主要 的是 Offchain LabsArbitrum和Optimism 4。 Arbitrum最近为他们的解决方案开发了一个测试网络环境。我们使用Arbitrum进行实验,将令牌分发系统移植到L2。我们的想法是在L2上部署代表代币的合约(ERC721)和分配彩票,然后允许用户在L2上有效地交换代币,当然,也可以在L1上转移它们(例如,在OpensSea上交换它们[37])。我们特别关注在汇总中创建和分发令牌的成本评估。6.4. 可扩展性实验Arbitrum Rollup提供了一个功能齐全的本地环境和一个建立在Kovan Ethereum测试网5之上的公共测试网。负责执行链下交易的验证器网络提供了一个JSON-rpc接口,该接口通过提供者包装库与web 3规范兼容[38],允许它以与以太坊网络相同的方式进行 然后可以使用相同的工具(例如,Truf e)在L2上部署合约。我们通过直接与Arbitrum汇总网络交互进行了一个实验,并使用3https://offchainlabs.com。4https://optimism.io/。5https://kovan-testnet.github.io/website/。添加报告3.252 40.211 124.854浏览器界面。我们重点介绍了应用程序工作所需的三个主要步骤,即:合约创建:我们将代币分发合约直接部署在汇总链上;addReport : 我 们 通 过 注 册 一 个 新 的 报 告 来 设 置 智 能 合 约 ;getReport:我们调用了允许用户兑换与之前添加的报告相关联的令牌的函数我们观察到,对于每个函数调用,聚合器会将事务的calldata副本发送到L1的全局inbo X合约(参见sendL1Message方法)。 为了降低成本,可以在单个L1事务中批处理多个函数调用。6.4.1. 成本分析表5比较了在以太坊网络直接调用合约函数所需的gas和在Arbitrumglobal inboX合约上注册相同函数的调用数据由于Arbitrum支持批量交易的注册,因此成本可能会根据批量中包含的同一合约的交易数量而出于这个原因,我们决定考虑最坏的情况,即上面提到的批处理中只包含一个事务该表有四列,分别表示1. 在交易中执行的功能;2. 在发送到全局inboX的交易中包含calldata所需的gas的确切数量;3. 第二列中的气体量,我们将调用没有数据的全局inboX合同上的sendL 1 Message函数所需的固定量(36.959)添加到该气体量4. 我们在现场活动期间测量的气体量,其中直接在以太坊主网上与合约如表6所示,考虑到撰写本文时标准交易的天然气价格(28 gwei)和当前EUR/ETH汇率(484.92 EUR/ETH),与Arbitrum对应方相比,在以太坊主网络上运行合约的成本非常高在撰写本文时,Arbitrum项目仍在开发中,因此汇总网络内的交易完全免费。该协议旨在测量聚合器和验证器在侧链中执行交易所需的计算资源(arbgas [39])。 根据Arbitrum的文件,主网启动所需的费用将远低于以太坊主网的当前成本。6.4.2. 延迟分析由于每个侧链区块都必须在主网上提交,因此区块时间不能低于主网。即使这个承诺有一个具有挑战性的时期,如果无效,它可以被恢复,也没有必要等到区块被终结才接受它的交易。由于乐观汇总是无分叉的,并且所有区块数据都在链上可用,因此始终可以执行客户端验证以立即检查和接受它们。●●●●●●F. Alberchi等人区块链:研究与应用3
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功