当前位置:首页区块链隐私加密系列|中的Grin和BEAM的公开比较

隐私加密系列|中的Grin和BEAM的公开比较

Grin和BEAM是基于Mimblewimble协议的两个开源加密货币项目。Mimblewimble协议最初是由匿名用户使用假名Tom Elvis Jedusor提出的,这是《哈利波特与米德多》(harry & middot)丛书中伏地魔名字的法语翻译

01简接口

Grin和BEAM是基于Mimblewimble协议的两个开源加密货币项目。Mimblewimble协议最初是由匿名用户使用假名Tom Elis Jedusor提出的,这是《哈利波特与米德多》(harry AMPL middot)丛书中伏地魔名字的法语翻译。这名用户登录了一个比特币研究互联网中继聊天频道,并在Tor隐藏服务上发布了一篇文章的链接。本文为一种新的构建区块链事务的方法提供了基础,该方法通过压缩区块链的事务历史来提供固有的隐私和显著减小区块链大小的能力。最初的文章介绍了该协议的主要思想,但是遗漏了实际实现所需的一些关键元素,甚至在密码公式中包含了错误。安德鲁和压力;Andrew Poelstra发表了一篇后续论文,解决了这些问题中的许多问题,并细化了Mimblewimble的核心概念,该概念已用于Grin和BEAM项目中协议的实际实现。

Mimblewimble协议描述了事务处理程序如何使用其公钥/私钥对(用于演示事务输出的所有权)和交互选择的盲因素来交互式地构造有效的事务。盲因子用于在每个参与者(包括彼此)之间混淆参与者的公钥,并在该特定事务中向另一方(除了另一方)隐藏事务的值。该协议还执行一个称为pass-through的过程,该过程通过消除中间事务来压缩事务。这改善了隐私性并压缩了在区块链上维护的数据量。这个简单的过程排除了通用脚本系统,比如在比特币中发现的脚本系统。但是安德鲁和米德多;加州大学洛杉矶分校(uniersity of California, Los Angeles)的作者安德鲁·波尔斯特拉(Andrew Poelstra)提出了无脚本脚本的概念,该概念使用Schnorr签名来构建适配器签名,允许对传统上用于实现脚本的许多行为进行编码。无脚本脚本支持支付通道(如闪电网络)和原子交换等功能。

Grin和BEAM项目都实现了Mimblewimble协议,但它们都是从头开始构建的。Grin是用c++ RUST和BEAM编写的。本报告描述了每个项目的一些独特之处。此外,BEAM项目文件主要以俄语提供。在撰写本文时,并非所有的技术细节都适用于英语读者。因此,随着项目的发展,本报告中的讨论可能会过时。

报告的结构如下:

1. 首先,给出了具体的实施细节,并讨论了该项目的特点。

2. 其次,分析了项目工作证明(PoW)算法的差异。

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

02Grin和BEAM具有比较和实现的特点

这两个项目是由不同的团队用不同的语言(Rust和c++)从零开始独立构建的,因此最初的实现可能会有很大的不同。例如,Grin使用Lightning memory mapped database (LMDB)作为其嵌入式数据库,BEAM使用SQLite。尽管性能不同,但它们在功能上是相似的。Grin使用一个有向无环图(DAG)来表示它的内存池,以避免事务引用循环,而BEAM使用一个逻辑多集键值数据结构来实现它的一些扩展功能。

从特性的角度来看,这两个项目展示了Mimblewimble固有的所有特性。Grin的既定目标是生成Mimblewimble协议的简单和可维护的实现。然而,BEAM的实现包括对Mimblewimble方法的修改,为其实现提供一些独特的特性。在讨论分隔两个项目的特性和设计元素之前,让我们先讨论一个有趣的特性,这两个项目都实现了这个特性。

Grin和BEAM都包含一个蒲公英中继协议的版本,支持事务聚合。加密货币面临的主要隐私挑战之一是,当它们被添加到mempool并在网络上传播时,能够跟踪交易并将它们链接到它们的原始IP地址。这些信息可以用来匿名用户,即使是在交易隐私很强的网络上。蒲公英网络通信解决方案的提出是为了提高网络通信过程中交易的隐私性。在这种情况下,事务传播被分为两个阶段:匿名(或“Stem”)舞台和传播Fluff”)阶段,如图1所示。

在stem(匿名)阶段,事务只传播到当前节点的对等列表中随机选择的一个对等点。在沿着网络进行随机跳之后,每一跳只传播到一个随机对等点,传播过程进入第二阶段。在fluff(扩展)阶段,正如在大多数网络中发现的那样,事务使用完全洪泛/扩散方法传播。这种方法意味着在洪水网络出现之前,事务首先会传播到网络中的随机点,这使得跟踪它们的来源变得更加困难。

隐私加密系列|中的Grin和BEAM的公开比较

这两个项目都使用这种方法来处理Mimblewimble事务。Grin的实现允许在传播的stem阶段进行事务聚合和渗透,在事务在fluff阶段传播之前提供更大的匿名性。除了事务聚合和插入,BEAM还引入了AMPL Dummy”事务,这些事务被添加到stem阶段,以补偿实际事务不可用的事实。

03笑容独特的特性

Grin的目标是成为Mimblewimble区块链的一个简单和最小的参考实现。因此,如前所述,它不打算包含许多扩展核心Mimblewimble功能的特性。不过,Grin实现确实包括一些有趣的实现选择,这些选择已经在其不断增长的Github存储库的Wiki中得到了很好的记录。

例如,Grin通过只下载部分历史记录,实现了一种节点快速同步区块链的方法。进入网络的新节点查询链中的下一个块,然后水平地请求该块。在本例中,水平线最初设置为当前磁头之前的5,000个块。然后节点检查是否有足够的数据来确认共识。如果没有一致意见,节点将扩展其视图,直到达成一致意见为止。此时,它将下载水平线块的完整的未使用的事务输出集(UTXO)。这种方法确实引入了一些安全风险,但是提供了缓解,结果是节点可以用更少的数量级数据同步到网络。

自本文撰写以来(2018年10月),BEAM已经发布了使用宏块实现快速节点同步的解决方案。宏块是由BEAM节点周期性创建的所有UTXO节点的完整状态。

04梁独特的特性

BEAM已经开始以多种方式扩展mimblewible的特性集。BEAM支持UTXO上的显式延迟期,这限制了它在创建后在特定数量的块上花费的能力。这与时间锁不同,时间锁阻止事务在特定时间之前添加到块。BEAM还支持传统的时间锁定,但是它也能够指定一个时间限制,超过这个时间限制,事务就不再包含在块中。这个函数意味着双方可以确定,如果事务在一段时间之后没有包含在主区块链的块中,那么事务将永远不会发生。

BEAM的另一个独特特性是实现了一个可审计的钱包。为了在特定的监管环境中运作,公司需要向相关部门证明自己是合规的。BEAM为合规公司提供了一个钱包,可以生成额外的公钥/私钥对,用于审计目的。这些签名用于标记事务,因此只有被授予公钥的审计人员才能在区块链上标识这些事务,但不能使用这个代币创建事务。这允许公司在不损害公众隐私的情况下,向特定机构提供交易的可见性。

BEAM对Dandelion的实现通过在stem阶段添加诱饵事务输出来改善隐私。每个这样的输出都有一个值0,但与常规输出没有什么不同。在稍后的阶段(每个输出的块数是随机计算的),utxo被添加为新事务的输入,从而计算出它的成本并从区块链中删除它。

BEAM还提出了另一个功能,旨在让区块链尽可能紧凑。在Mimblewimble,随着交易增加,执行削减,从而消除所有中间贸易承诺。但是不会删除每个事务的事务内核。BEAM提出了一种重用这些事务内核来验证后续事务的方法。为了在不影响事务不可逆性原则的情况下使用现有的内核,BEAM建议将乘数应用到旧内核,该用户对旧内核可见,并在新事务中使用。为了激励以这种方式建立的交易,BEAM包括了此类交易的费用回报模。此功能将不属于原始版本的一部分。

在构建有效的虚拟贸易时,各方需要协同选择均衡的盲因子。这种交互式的协商需要很多步骤,这意味着双方需要保持沟通才能完成交易。Grin是通过使用基于套接字的通道实现的;实时AMPL在;会议的两个当事方直接相互联系,以促进这一进程。这意味着双方需要同时在线。BEAM已经实现了一个安全公告系统(SBBS),它在BEAM的所有节点上运行,允许异步地协商事务。

在使用Mimblewimble区块链时,要求双方以交互的方式参与构建事务可能会产生摩擦。除了安全的BBS通信通道外,BEAM还计划支持单边交易,在这种交易中,如果接收方希望接收一定数量的付款,可以构造一半的交易,并将一半的交易发送给付款方。然后,付款人可以完成事务的构造并将其发布到区块链。在正常的Mimblewimble系统下,这是不可能的,因为这会涉及到将您的盲区暴露给您的对手。BEAM通过使用一个它称为内核融合的进程来解决这个问题,其中一个内核可以包含对另一个内核的引用,所以它只在事务中同时存在两个内核的情况下工作。只有当事务中同时存在两个内核时,引用才有效。这允许收款人使用秘密盲因子和补偿盲因子的内核构造一半的事务,当支付人完成事务时必须包括该盲因子。

两个项目都使用许多Merkle树结构来跟踪每个区块链的各个方面。这两个项目都记录了准确的树和记录的细节。但是BEAM对它的一些树使用了一个Radix-Hash树结构。这个结构是一个修改过的Merkle树,它也是一个二叉搜索树。这提供了标准Merkle树没有的许多特性,以及BEAM在其实现中利用的特性。

在撰写本文时(2019年5月),您可以看到代码中讨论的所有特性,但这并不能保证它们都能工作。文献中提到的一些特性是为将来使用而计划的,但是还没有实现。这包括将签署的文本内容嵌入到可用于记录合同文本的交易中,以及发布机密资产。

05(PoW)工作证明挖矿算法

BEAM宣布将使用Equihash PoW挖矿算法,将参数设置为n = 150, k = 5。Equihash于2016年被提出,是一种难以存储的PoW算法,主要依赖于使用内存来实现ASIC的电阻。该公司的目标是开发出一种算法,该算法在消费者图形处理单元(GPU)上的运行效率要高于在ASIC矿工日益壮大的领域上的运行效率,后者当时主要由Bitmain生产。人们希望,这将有助于利用该算法去中心化加密货币的挖矿能力。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可以与布谷鸟循环算法一起使用。虽然承认ASIC挖矿是不可避免的,Grin担心目前的ASIC市场非常中心化,或Bitmain,它希望建立一个基层GPU挖矿社区在Grin的开始两年。Grin希望两年后ASIC将不再是一种商品,而是一种去中心化的产品。

为了解决这个问题,建议使用ASIC Friendly (AF)和ASIC Resistant (AR)两种PoW算法,然后在24小时内选择在每个block中使用哪一种PoW,以平衡两种算法之间的挖矿收益。2018年9月25日,治理委员会决定继续采用这种方法,将布谷鸟循环算法(Cuckatoo Cycle)修改为布谷鸟循环算法(Cuckatoo Cycle)。提出的AF算法将是Cuckatoo32 +,这将逐渐增加其内存需求,使旧的单片机asic随着时间的推移而淘汰。AR算法还没有定义。

06治理模式和货币政策

Grin和BEAM项目都是开源的,可以在Github上使用。Grin项目有75个贡献者,其中8个贡献了绝大部分代码。BEAM有10个贡献者,其中4个贡献了大部分代码(在编写本文时)。这两个项目选择了不同的治理模式。BEAM选择建立一个包括核心开发人员的基础来管理项目。这是该领域中大多数加密货币项目所采用的路径。Grin社区决定不建立一个中心基金会,并对其优缺点进行了有趣的讨论。该文档包含一个非常深入的讨论,权衡基金会可能服务的各种治理功能,并评估每个用例。Grin社区的结论是,虽然基金会是有用的,但它们不是治理问题的唯一解决方案,因此选择保持一个完全去中心化的社区驱动的项目。这些会议的议程和会议记录可以在Grin论坛的管理部分找到。这类会议成果的一个例子可以在

这两个项目都不会进行首次硬币发行(ICO)或预售,但这两个项目也会有不同的融资模式。BEAM成立了一家有限责任公司(LLC),并将投资者吸引到其首个非盈利的BEAM基金会,该基金会将在协议推出的第一年接管协议的管理。该基金会的目标是支持BEAM的维护和进一步发展,促进相关密码研究,支持金融隐私领域的意识和教育,并支持相关领域的学术工作。在行业中,这种库存机制被称为开发税。Grin依靠社区参与和社区资助,而不是对挖矿奖励征税。Grin项目确实得到财政支持,但这些赠款活动是基于它们自己的。社区资助原则;应在现有条件下实施。随需应变的AMPL;基于。一个活动将指定它要满足的具体要求(例如:明年的保管费。并将向负责此次活动的社区成员提供资助。这将为谁负责接收资金提供100%的可见性。融资活动的一个例子是Yeastlume的开发者融资活动,以资助他从2018年10月到2019年2月全职参与该项目。

就这两个项目的货币政策而言,BEAM表示将使用通缩模,定期将挖矿激励减半,其最大供应量为2.628亿枚金币。BEAM将从每个block 100个代币开始。上半年将在一年后举行,然后每四年举行一次。格林在他选择的一个通货膨胀模中提出了这种方法的论据,在这个模中,大宗回报将保持不变。随着供应的增加,这种方法将逐渐趋向于零稀释,而不是强制固定供应。Grin还没有详细说明它的挖矿激励或成本结构,但根据目前的文件,它计划每块60 Grin奖励。这两个项目都没有最终决定如何使用这笔钱,但是Grin项目已经开始探索如何使用这笔钱。每分钟成本奖励。这是设定成本的基准。

07结论、意见和建议

Grin和BEAM是实现Mimblewimble区块链解决方案的两个开源项目。这两个项目都是从零开始的。Grin使用Rust,而BEAM使用c++;因此,它们在设计和实现上有很多技术上的差异。然而,从功能的角度来看,这两个项目都将支持Mimblewimble的所有核心功能。每个项目都包含一些独特的特性,但是由于Grin的目标是生成Mimblewimble的最低限度实现,大多数扩展Mimblewimble的独特特性都在BEAM项目中。下面的列表总结了这两个项目之间的功能相似点和不同点。

1. 相似之处:

核心Mimblewimble功能集。

蒲公英中继协议。

2. 笑容独特的特点:

部分历史同步。

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

3.BEAM的独特之处:

一个安全的BBS驻留在一个节点上,用于在钱包之间建立通信。消除了发送方和接收方同时在线的需要。

蒲公英茎段采用诱骗输出。后来为了避免在区块链上混淆,使用了带诱饵的输出。

4. 明确UTXO延迟。

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

可审计的交易是路线图的一部分。

非交互式支付的单边交易结构。

使用基数散列树。

这两个项目都很年轻。在撰写本文时(2019年5月),两者仍处于测试网络阶段,它们的许多核心设计选择尚未构建或测试。BEAM Wiki的大部分内容仍然是俄语,所以可能有一些细节我们还不知道。

温馨提示:

文章标题:隐私加密系列|中的Grin和BEAM的公开比较

文章链接:https://www.btchangqing.cn/22596.html

更新时间:2020年05月19日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

隐私加密系列|中的Grin和BEAM的公开比较1
区块链

DelphiDigital发布“比特币现状”报告

2020-5-19 10:04:45

区块链

Chainnode:矿场技术实地考察,如果你想成为一名矿工,你需要这本指南

2020-5-19 10:31:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索