1. 首页
  2. 区块链WIKI

Grin与BEAM之间技术公开对比

简介

Grin和BEAM是两个基于Mimblewimble协议的开源加密钱币项目。Mimblewimble协议最初是由匿名用户使用笔名Tom Elvis Jedusor(《哈利·波特》系列书籍中伏地魔名字的法语翻译)提出的。该用户登录了一个比特币研究(bitcoin research)互联网中继谈天(IRC)频道,并公布了一个链接,指向托管在Tor隐藏服务上的一篇文本文章。本文为构建区块链式买卖的新方式提供了基础,该买卖提供了固有的隐私性,并具有通过压缩链的买卖历史纪录显着减小区块链巨细的能力。最初的文章先容了该协议的主要头脑,但遗漏了现实实现所需的一些要害元素,甚至在密码公式中包罗错误。安德鲁·珀尔斯特拉(Andrew Poelstra)揭晓领会决这些问题中许多问题的后续论文,并完善了Mimblewimble的焦点观点,该观点已在Grin和BEAM项目中用于该协议的现实实行。

Mimblewimble协议形貌了事务处置方若何使用其公钥/私钥对(用于证实事务输出的所有权)和交互选择的盲因子以交互方式构建有用事务。盲因子用于混淆每个介入者(包罗相互)之间介入者的公钥,并在该特定买卖中向买卖对方(除了买卖对方)隐藏买卖的价值。该协议还执行一个称为直通的历程,该历程通过消除中央事务来压缩事务。这改善了隐私并压缩了区块链上维护的数据量。这种直截了当的历程排除了诸如比特币中的通用剧本系统。然则安德鲁·珀尔斯特拉(Andrew Poelstra)提出了无剧本剧本的观点,该剧本行使Schnorr署名来构建适配器署名,该适配器署名允许对传统上用来实现剧本的许多行为举行编码。无剧本剧本启用了诸如支付渠道(如闪电网络)和原子交流之类的功效。

Grin和BEAM项目都实现了Mimblewimble协议,但都是从头最先构建的。Grin是用C ++的RUST和BEAM编写的。本讲述形貌了每个项目中使它们与众差别的一些方面。此外BEAM项目文档主要仅以俄语提供。在撰写本讲述时,并非所有手艺细节都适用于英语读者。因此随着项目的生长,本讲述中的讨论很可能会过时。

该讲述的结构如下:

1. 首先给出了一些详细的实现细节,并讨论了项目的特点。

2. 其次剖析了项目事情证实(PoW)算法的差异。

3. 最后讨论了项目的治理模子。

Grin与BEAM的特点对照及实现

这两个项目是由差别的团队以差别的语言(Rust和C ++)从头最先自力构建的,因此原始实现会有许多差异。例如Grin使用Lightning内存映射数据库(LMDB)作为其嵌入式数据库,BEAM使用SQLite。只管它们之间存在性能差异,但它们在功效上相似。Grin使用有向无环图(DAG)来示意其mempool以制止事务引用循环,而BEAM使用带逻辑的多集键值数据结构来实现其一些扩展特征。

从特征的角度来看,这两个项目展示了Mimblewimble固有的所有特征。Grin的既定目的是天生一个简朴易维护的Mimblewimble协议实现。然而BEAM的实现包罗了对Mimblewimble方式的一些修改,目的是为其实现提供一些怪异的特征。在我们讨论将这两个项目离开的特征和设计元素之前,让我们先讨论一下这两个项目都实现了的一个有趣的特征。

Grin和BEAM都合并了一个Dandelion中继协议版本,该协议支持事务聚合。加密钱币在隐私方面面临的一个主要突出挑战是,当买卖添加到mempool并在网络上流传时,可以跟踪买卖,并将这些买卖链接到其原始IP地址。纵然在具有壮大买卖私密性的网络上,此信息也可用于使用户匿名。Dandelion网络流传方案的提出是为了改善买卖向网络流传历程中的隐私性。在这个方案中,事务流传分为两个阶段:匿名(或“stem”)阶段和流传(或“fluff”)阶段,如图1所示。

  • 在stem(匿名性)阶段,事务只流传到当前节点的对等列表中随机选择的单个对等节点。在沿网络随机跳数之后,每个跳数仅流传到一个随机对等体,流传历程进入第二阶段。

  • 在fluff(扩展)阶段,如在大多数网络中所发现的那样,事务使用full flood/diffusion方式举行流传。这种方式意味着在flood网络之前,事务已先流传到网络中的随机点,从而使跟踪其泉源变得加倍难题。

Grin与BEAM之间技术公开对比

两个项目都接纳了这种方式来处置Mimblewimble事务。Grin的实现允许在流传的stem阶段举行事务聚合和切入,从而在事务在fluff阶段流传之前为它们提供更大的匿名性。除了事务聚合和切入之外,BEAM还引入了“dummy”事务,这些事务被添加到stem阶段,以抵偿现实事务不可用的情形。

Grin怪异功效

Grin的目的是成为Mimblewimble区块链的简朴且最少的参考实现。因此不设计包罗许多功效来扩展焦点Mimblewimble功效,如所讨论的。然则Grin实现确实包罗一些有趣的实现选择,这些选择已在其不停增进的Github存储库的Wiki中举行了深入纪录。

例如Grin实现了一种方式,使节点只下载部门历史纪录就可以异常快速地同步区块链。进入网络的新节点将查询链的当前头区块,然后在水平上请求该区块头。在该示例中,水平线最初设置为当前磁头之前的5,000个块。然后节点检查是否有足够的数据来确认共识。若是没有共识,则该节点将扩大其视野,直到杀青共识。届时,它将下载水平线区块的完整未用买卖输出(UTXO)集。这种方式简直引入了一些平安风险,然则提供了缓解措施,其结果是,节点可以以较少的数量级数据同步到网络。

自从本文撰写以来(2018年10月),BEAM已公布其使用macroblocks举行快速节点同步的解决方案。macroblocks是BEAM节点定期确立的所有UTXO的完整状态。

BEAM怪异特征

BEAM已经最先以多种方式扩展mimblewible的特征集。BEAM支持在UTXO上设置一个显式的潜伏期,这限制了它在确立之后破费在特定数量块上的能力。这与时间锁差别,时间锁可以防止在一定时间之前将事务添加到区块中。BEAM还支持传统的时间锁定功效,但还具有指定时间上限的功效,之后该事务将不再包罗在区块中。此功效意味着,当事方可以确定,若是一定时间后买卖未包罗在主区块链的某个区块中,则该买卖将永远不会泛起。

BEAM的另一个怪异特征是实现了一个可审计的钱包。企业要在特定的羁系环境中运营,就需要向相关部门证实其合规性。BEAM提出了一种专为合规企业设计的钱包,它可以天生分外的公共/私人密钥对,专门用于审计目的。这些署名用于符号买卖,以便只有被授予公钥的审计机构才气识别区块链上的那些买卖,但不能使用此符号确立买卖。这使企业可以在不损害民众隐私的情形下向给定的机构提供其买卖的可见性。

BEAM对Dandelion的实现通过在stem阶段添加诱饵事务输出来提高隐私。每个此类输出的值为零,但与通例输出没有区别。在后期阶段(随机盘算每个输出的块数),将utxo添加为新事务的输入,从而将其破费并从区块链中移除。

BEAM还提出了另一个旨在保持区块链尽可能紧凑的功效。在Mimblewimble中,随着买卖的增添,执行切入,从而消除所有中央买卖答应。然则每个事务的事务内核都不会被删除。BEAM提出了一种重用这些事务内核来验证后续事务的方案。为了在不影响事务不可逆性原则的情形下使用现有内核,BEAM建议由对旧内核具有可见性的统一用户对旧内核应用乘数,并在新事务中使用乘数。为了激励以这种方式确立的买卖,BEAM包罗针对此类买卖的用度退还模子。此功效将不属于初始版本。

在构建一个有用的Mimblewimble买卖时,当事方需要举行协作以选择平衡的盲因素。这种交互式协商需要许多步骤,这意味着各方需要保持相同以完成买卖。Grin通过使用基于套接字的通道在“实时”会话中相互直接毗邻的两方来促进此历程。这意味着双方都需要同时在线。BEAM已实行在BEAM全节点上运行的平安通告板系统(SBBS),以允许事务异步协商。

在使用Mimblewimble区块链时,要求双方互动介入构建买卖可能是一个摩擦点。除了平安的BBS通讯通道外,BEAM还设计支持单方买卖,即买卖中的收款人若是希望获得一定金额的付款,则可以组织其买卖的一半,并将此一半组织的买卖发送给付款人。然后付款人可以完成买卖的构建并将其公布到区块链。在通例的Mimblewimble系统下,这是不可能的,由于这将涉及向买卖对手展现您的盲目因素。BEAM通过使用一个它称为kernel fusion的历程来解决这个问题,其中一个内核可以包罗对另一个内核的引用,因此它只有在事务中同时存在两个内核时才有用。这样只有在事务中同时存在两个内核时,该引用才有用。这样收款人可以使用隐秘的盲目因子和抵偿盲目因子的内核来构建买卖的一半,当支付者完成买卖时必须将其包罗在内。

布局加密衍生品能抵抗金融危机吗

加密货币衍生品如何具有巨大的增长潜力。

这两个项目都使用了许多Merkle树结构来跟踪各个区块链的各个方面。这两个项目都纪录了确切的树木及其纪录的详细信息。然则BEAM对其某些树使用了Radix-Hash树结构。此结构是经由修改的Merkle树,也是二叉搜索树。这提供了许多尺度Merkle树所不具备的功效,以及BEAM在其实现中所行使的功效。

在编写本文时(2019年5月),可以在代码中看到此处讨论的所有功效,但这不能保证它们可以正常事情。文献中提到的一些功效已设计在未来使用,但尚未实现。这些措施包罗将署名的文本内容嵌入可用于纪录合同文本的买卖中,以及刊行秘密资产。

(PoW)事情证实挖掘算法

BEAM宣布将接纳Equihash PoW挖掘算法,并将参数设置为n = 150,k = 5。Equihash在2016年被提出为一种难于存储的PoW算法,该算法在很大程度上依赖于存储器的使用来实现专用集成电路(ASIC)的电阻。其目的是发生一种算法,该算法将更有用地运行在消费者图形处置单元(GPU)上,而不是那时主要由Bitmain生产的不停增进的ASIC矿工领域。希望这将有助于使用该算法的加密钱币涣散采矿能力。Equihash抵制ASIC的想法是,那时,在ASIC中实现内存异常昂贵,GPU在盘算Equihash PoW方面效率更高。这种ASIC抵制连续了一段时间,但在2018年头,Bitmain公布了Equihash专用ASIC,其效率显著高于Zcash,Bitcoin Gold和Zencash等使用的Equihash设置的GPU。可以调整Equihash算法的参数,使其加倍内存麋集,从而使当前的asic和较老的GPU挖掘场过时,但BEAM是否会这样做还有待考察。

Grin最初选择使用新的Cuckoo Cycle PoW算法,由于受内存延迟的限制,该算法也据称具有ASIC抵制性。这意味着该算法受内存带宽的约束,而不是受原始处置器速率的约束,希望它能使在商用硬件上举行挖掘成为可能。

在2018年8月,Grin团队在其主网启动时宣布,它已经意识到ASIC可能可用于Cuckoo循环算法。虽然认可ASIC采矿是不可制止的,但Grin忧郁当前的ASIC市场异常集中(即Bitmain),而且它希望在Grin建立之初就确立一个下层GPU采矿社区,为期两年。两年后,Grin希望ASIC不再是一种商品,而是去中央化产物。

为领会决这个问题,建议首先使用两种PoW算法:一种是ASIC Friendly(AF),另一种是ASIC Resistant(AR),然后在24小时内选择每个区块使用哪种PoW来平衡两种算法之间的挖掘回报。治理委员会于2018年9月25日决议接纳称为布谷鸟循环(Cuckatoo Cycle)的布谷鸟循环算法的修改版本继续接纳这种方式。推出的AF算法将是Cuckatoo32 +,它将逐渐增添其内存需求,以使旧的单芯片ASIC随着时间的推移而过时。尚未界说AR算法。

治理模式与钱币政策

Grin和BEAM项目都是开源的,可以在Github上使用。Grin项目有75位贡献者,其中有8位贡献了绝大多数代码。BEAM有10位贡献者,其中有4位贡献了大部门代码(在撰写本文时)。这两个项目选择了差别的治理模式。BEAM选择确立一个包罗焦点开发人员的基金会来治理该项目。这是该领域大多数加密钱币项目所接纳的门路。Grin社区已决议不建立中央基金会,并就中央基金会的利弊举行了有趣的讨论。文档包罗一个异常深入的讨论,它权衡了基金会可能服务的种种治理功效,并评估了每个用例。Grin社区得出的结论是,只管基金会很有用,但它们并不是解决治理问题的唯一解决方案,因此选择保留一个完全涣散的社区驱动项目.当前决议是在Gitter与社区成员召开的定期治理集会上做出的,讨论议程并批准决议。这些集会的议程和集会纪录可在Grin论坛的治理部门找到。此类集会功效的一个例子可以在中看到。

这两个项目都不会举行首次投币刊行(ICO)或预售,但这两个项目也有差别的融资模式。BEAM建立了一家有限责任公司(LLC),并吸引了投资者介入其首轮非盈利BEAM基金会,该基金会将在启动后的第一年内接受协议的治理事情。该基金会的目的是支持BEAM的维护和进一步生长、促进相关的密码研究、支持金融隐私领域的意识和教育、支持相近领域的学术事情。在行业中,这种库存机制称为开发税。Grin不会对采矿奖励征税,而是依赖社区介入和社区资金。Grin项目确实接受财政支持,但这些资助流动是凭据他们的“社区资助原则”举行的,将在“按需”的基础上举行。一个流动将指定它要实现的特定需求(例如“X明年的托管费”)和资金将由卖力该流动的社区成员获得。这将提供100%关于谁卖力吸收资金的可见性。融资流动的一个例子是Yeastlume开展的开发商融资流动,为他在2018年10月至2019年2月时代全职介入该项目提供资金。

就这两个项目的钱币政策而言,BEAM示意将使用通货紧缩模子,将其采矿奖励定期减半,BEAM的最大供应量为262,800,000个硬币。BEAM将以每个区块100个代币最先。第一次减半将在一年后发生,然后每四年减半一次。Grin选择了一种通胀模子,在这种模子中,区块待遇将保持稳定,在中提出了这种方式的论点。随着供应量的增添,这种方式将逐渐趋向于零稀释,而不是强制执行牢固的供应量。Grin还没有详细说明其采矿奖励或用度结构,但凭据其现在的文件,它正设计每区块60 Grin的奖励。这两个项目都没有就若何放置用度做出最终决议,但Grin项目已经最先探索若何使用“每分钟奖励用度”这一指标来设定用度基准。

结论,意见和建议

总之Grin和BEAM是两个正在实行Mimblewimble区块链方案的开源项目。这两个项目都是自食其力的。Grin使用Rust,而BEAM使用C ++;因此它们的设计和实现存在许多手艺差异。然则从功效角度来看,两个项目都将支持Mimblewimble的所有焦点功效。每个项目确实包罗一些怪异的功效,然则由于Grin的目的是天生Mimblewimble的简约实现,因此扩展Mimblewimble的大多数怪异功效都在BEAM项目中。下面的列表总结了两个项目之间的功效异同。

1. 相似之处:

  • 焦点Mimblewimble功效集。

  • Dandelion 中继协议。

2. Grin怪异功效:

  • 部门历史同步。

  • Mempool的DAG示意,以防止重复的UTXOs和循环事务引用。

3. BEAM的怪异功效:

  • 托管在节点上的平安BBS,用于在钱包之间确立通讯。消除了发送方和吸收方同时在线的需求。

  •  Dandelion stem期使用诱饵输出。诱饵输出厥后被用来制止在区块链上杂乱。

4. 显式UTXO潜伏期。

  • 具有最小和最大阈值的时间锁。

  • 可审核买卖是门路图的一部门。

  • 非交互式支付的单面买卖结构。

  • 使用基数哈希树。

这两个项目都还很年轻。在撰写本讲述时(2019年5月),两者都仍处于测试网阶段,而且它们的许多焦点设计选择尚未构建或测试。BEAM Wiki的大部门内容仍为俄语,因此很可能有些细节我们还不领会。

原创文章,作者:链大大,如若转载,请注明出处:https://www.chaindada.com/chain/538.html