当前位置:首页区块链保密加密系列技术grin与beam的公开比较

保密加密系列技术grin与beam的公开比较

Grin和beam是两个基于mimble协议的开源加密货币项目。mimblewimble协议最初是由匿名用户以Tom Elvis jedusor的笔名提出的

01介绍

Grin和beam是两个基于mimble协议的开源加密货币项目。mimblewimble协议最初是由匿名用户以Tom Elis jedusor的笔名提出的。用户登录了比特币研究(bitcoin Research)互联网中继聊天(IRC)频道,并发布了一个链接,指向托管在tor隐藏服务上的一篇文本文章。本文为构建一种新的区块链交易方法提供了基础,这种方法提供了固有的隐私,并且能够通过压缩链的交易历史来显著减小区块链的大小。原文章介绍了协议的主要思想,但省略了实际实现所需的一些关键元素,甚至在密码公式中包含错误。为了解决这些问题,Andrew poelstra发表了一篇后续论文,改进了mimblewimble的核心概念,并将其应用于grin和beam项目中协议的实际实现。

mimblewimble协议描述了事务处理器如何使用其公钥/私钥对(用于证明事务输出的所有权)和交互选择的盲因素来交互地构建有效的事务。盲因子用于混淆每个参与者(包括对方)的公钥,并在特定交易中向对方(对方除外)隐藏交易的价值。协议还执行一个名为pass-through的过程,该过程通过消除中间事务来压缩事务。这改善了隐私,压缩了区块链上维护的数据量。这个简单的过程消除了常见的脚本系统,如比特币。但是Andrew poelstra提出了无脚本脚本的概念,它使用Schnorr签名来构建适配器签名,从而允许对传统上用于实现脚本的许多行为进行编码。无脚本脚本支持支付通道(如闪电网络)和原子交换等功能。

grin和beam项目都实现了mimblewimble协议,但都是从头开始构建的。Grin是用C++编写的,带有rust和beam。本报告描述了每个项目的一些方面,使它们有所不同。此外,梁项目文件主要以俄语提供。在撰写本文时,并非所有的技术细节都适用于英语读者。因此,随着项目的发展,本报告中的讨论可能会过时。

报告的结构如下:

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

二。其次,分析了pow算法的差异。

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

02grin与beam特性的比较与实现

这两个项目是由不同的团队用不同的语言(rule和C++)从头开始独立构建的,因此在最初的实现中存在许多差异。例如,grin使用lightning memory mapping database(LMDB)作为其嵌入式数据库,beam使用SQLite。虽然它们之间存在性能差异,但在功能上是相似的。Grin使用有向无环图(DAG)来表示其MemPool以避免事务引用循环,而beam则使用逻辑多集密钥数据结构来实现其一些扩展特性。

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

grin和beam都结合了蒲公英中继协议的一个版本,该协议支持事务聚合。加密货币面临的一个主要隐私挑战是,当交易被添加到MemPool并通过网络传播时,它们可以被跟踪并链接到其原始IP地址。即使在交易隐私性很强的网络上,这些信息也可以用来让用户匿名。为了提高网络通信过程中交易的隐私性,提出了蒲公英网络通信方案。在这个方案中,事务传播分为两个阶段:匿名(或“stem”)阶段和传播(或“fluff”)阶段,如图1所示。

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

保密加密系列技术grin与beam的公开比较

两个项目都使用这种方法来处理mimblewimble事务。Grin的实现允许在传播的步骤阶段进行事务聚合和切入,从而在事务在绒毛阶段传播之前为它们提供更大的匿名性。除了事务聚合和切入,beam还引入了“虚拟”事务,这些事务被添加到stem阶段以补偿实际事务的不可用性。

03Grin独特功能

Grin的目标是成为一个简单且最小的可模仿区块链的参考实现。因此,如前所述,它不打算包含许多函数来扩展核心mimblewible函数。但是grin的实现确实包含了一些有趣的实现选择,这些选择已经在其不断增长的GitHub存储库wiki中得到了深入的记录。

例如,grin实现了一种方法,使节点能够只下载历史的一部分并非常快速地同步区块链。进入网络的新节点将查询链的当前头块,然后水平请求头块。在本例中,水平线最初设置为当前磁头之前的5000块。然后节点检查是否有足够的数据来确认一致性。如果没有共识,节点将扩大视野,直到达成共识。届时,它将下载完整的未使用事务输出(utxo)水平块集。这种方法确实引入了一些安全风险,但提供了缓解措施。因此,节点可以用少量数据同步到网络。

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

04年梁的独特性

Beam已经开始以多种方式扩展可编程序的特征集。Beam支持在utxo上设置显式延迟,这限制了它在创建后花费特定数量块的能力。与时间锁不同,时间锁阻止事务在特定时间之前添加到块中。Beam还支持传统的时间锁定功能,但它还具有指定时间上限的功能,之后事务将不再包含在块中。此功能意味着当事方可以确定,如果某个交易在一段时间后未包含在主区块链的区块中,则该交易将永远不会出现。

beam的另一个独特特性是实现了一个可审计的钱包。企业要在特定的监管环境下经营,需要向相关部门证明其合规性。Beam提出了一个专为合规企业设计的钱包,它可以生成额外的公钥/私钥对,用于审计目的。这些签名用于标记交易,以便只有获得公钥的审计员才能识别区块链上的这些交易,但不能使用此代币创建交易。这允许企业在不损害公共隐私的情况下,向给定组织提供其交易的可见性。

Beam的蒲公英实现通过在stem阶段添加诱饵事务输出来提高隐私。每一个这样的输出值都是零,但与常规输出没有区别。在稍后阶段(随机计算每个输出的块数),将utxo添加为新事务的输入,然后将其消费并从区块链中移除。

Beam还提出了另一个功能,使区块链尽可能紧凑。在mimblewimble中,随着事务的增加,执行切入以消除所有中间事务承诺。但是,不会删除每个事务的事务内核。Beam提出了一种重用这些事务内核来验证后续事务的方案。为了在不影响事务不可逆性原则的情况下使用现有内核,beam建议由对旧内核具有可见性的同一用户将乘法器应用于旧内核,并在新事务中使用。为了鼓励以这种方式建立的交易,beam包含了此类交易的费用退还模。此功能不会作为初始版本的一部分。

在构建一个有效的模拟交易时,各方需要合作选择一个平衡的盲因素。这种交互式协商需要多个步骤,这意味着各方都需要保持沟通才能完成交易。Grin通过使用基于socket的通道在“实时”会话中使用彼此直接连接的双方来促进这一过程。这意味着双方需要同时在线。Beam实现了在整个Beam节点上运行的安全公告板系统(SBBS),允许事务异步协商。

在使用模拟区块链时,要求双方以交互方式参与交易的构建可能是一个摩擦点。除了安全的BBS通信通道外,beam还计划支持单边交易,即如果交易中的收款人希望获得一定金额的付款,他可以构造自己交易的一半,并将半结构化交易发送给付款人。然后付款人可以完成交易的构建并将其发布到区块链。在正常的模拟温布尔系统下,这是不可能的,因为这会暴露出你对交易对手的盲目性。Beam通过一个称为核融合的过程来解决这个问题。一个内核可以包含对另一个内核的引用,因此它只有在事务中同时存在两个内核时才有效。这使得只有当事务中同时存在两个核心时引用才有效。这样,受款人就可以利用秘密盲因子和补偿盲因子的核心来构造交易的一半,当付款人完成交易时,必须包含这一半。

两个项目都使用许多Merkle树结构来跟踪每个区块链的各个方面。两个项目都记录了精确的树和它们记录的细节。但是beam对它的一些树使用基数散列树结构。该结构是一个改进的Merkle树,也是一个二叉搜索树。这提供了许多标准Merkle树没有的功能,以及beam在其实现中使用的功能。

在撰写本文时(2019年5月),您可以在代码中看到这里讨论的所有功能,但这并不保证它们都能工作。文献中提到的一些功能已经计划将来使用,但尚未实现。这些措施包括将签署的文本内容嵌入可用于记录合同文本的交易中,以及发行保密资产。

05年(POW)工作证明挖矿算法

Beam宣布将采用equihash POW挖矿算法,并将参数设置为n=150,k=5。Equihash在2016年被提出为一种难以存储的POW算法。该算法在很大程度上依赖于存储器的使用来实现ASIC的电阻。其目标是产生一种算法,该算法将在消费者图形处理单元(GPU)上更有效地运行,而不是当时主要由bitmain生成的不断增长的ASIC miner字段。希望这将有助于使用该算法的加密货币来去中心化挖矿能力。equihash抵制ASIC的想法是,当时在ASIC中实现内存非常昂贵,而GPU在计算equihash pow时效率更高。这种ASIC的阻力持续了一段时间,但在2018年初,bitmain发布了equihash专用ASIC,其效率明显高于zcash、bitcoin gold、Zenchash等使用的equihash配置的GPU,equihash算法的参数可以调整,使其内存更加密集,从而使目前的ASIC和较老的GPU挖矿领域过时,但beam是否会这样做还有待观察。

Grin最初选择使用新的布谷鸟循环POW算法,由于内存延迟的限制,这种算法也被认为是抗ASIC的。这意味着算法受到内存带宽的限制,而不是原始处理器的速度。希望它能使商业硬件上的挖矿成为可能。

2018年8月,当grin团队推出其主网络时,宣布已经意识到ASIC可能用于布谷鸟环路算法。尽管承认ASIC挖矿是不可避免的,但grin担心目前ASIC市场非常中心化(即bitmain),它希望在grin成立之初建立一个为期两年的基层GPU挖矿社区。两年后,grin希望ASIC不再是一种商品,而是一种去中心化的产品。

为了解决这一问题,建议首先使用两种POW算法:一种是ASIC友好(AF),另一种是ASIC抵抗(AR),然后在24小时内为每个块选择使用哪种POW,以平衡两种算法之间的挖矿收益。2018年9月25日,管委会决定采用布谷鸟周期算法的修正版,即布谷鸟周期算法,继续采用该方法。AF算法将是cuckatoo32+,随着时间的推移,这将逐渐增加其内存需求,使旧的单片ASIC过时。AR算法尚未定义。

06年治理模式与货币政策

grin和beam项目都是开源的,可以在GitHub上使用。grin项目有75个贡献者,其中8个贡献了绝大多数代码。Beam有10个贡献者,其中4个贡献了大部分代码(在本文撰写时)。这两个项目选择不同的治理模。梁选择建立一个基础的核心开发者管理项目。这是该领域大多数加密货币项目采用的路径。GRIN社区已决定不设立一个中心基金会,并对其优缺点进行了有趣的讨论。该文档包含了一个非常深入的讨论,讨论了基金会可以服务和评估每个用例的各种治理功能。grin社区的结论是,尽管基础是有用的,但它们并不是解决治理问题的唯一方法,因此他们选择保留一个完全去中心化的社区驱动项目。目前的决策是在gitter和社区成员举行的定期治理会议上做出的,以讨论议程和批准决策。这些会议的议程和会议记录可以在grin论坛的管理部分找到。这样一次会议结果的一个例子可以从中看出。

这两个项目都没有ICO或预售,但它们也有不同的融资模式。梁成立了有限责任公司(LLC),并吸引投资者参与其第一轮非营利基金会,这将接管该协议的管理在其推出后的第一年。该基金会的目的是支持梁的维护和进一步发展,促进相关口令的研究,以支持金融隐私领域的意识和教育,并支持邻近领域的学术工作。在业内,这种盘存机制被称为开发税。grin没有对挖矿奖励征税,而是依靠社区参与和社区资助。grin项目确实得到了财政支持,但这些资助活动是基于他们的“社区资助原则”,并将在“按需”的基础上进行。一项活动将具体说明它将实施的具体需要(例如“x明年的托管费”),资金将由负责该活动的社区成员获得。这将为谁负责接收资金提供100%的可见性。融资活动的一个例子是Yeastume为资助他从2018年10月至2019年2月全职参与该项目而开展的开发者融资活动。

就这两个项目的货币政策而言,beam表示,将采用通货紧缩模式,定期将挖矿激励措施减半,最大供应量为2.628亿枚硬币。Beam将以每个块100个标记开始。第一次减半将在一年后进行,然后每四年进行一次。Grin选择了一个通货膨胀模,其中块收益率将保持不变,并提出了这种方法的论点。随着供应量的增加,这种方法趋向于零稀释,而不是强制实行固定供应。Grin还没有具体说明它的挖矿奖励或收费结构,但根据它目前的文件,它计划每一个区块奖励60个Grin。两个项目都没有最终决定如何安排成本,但grin项目已经开始探索如何使用“每分钟奖励费”指标来衡量成本。

07年结论、意见和建议

总之,grin和beam是两个开源项目,它们正在实施mimble区块链方案。两个项目都是自制的。Grin使用rule,beam使用C++;因此,它们的设计和实现存在许多技术差异。但从功能上看,这两个项目都将支持mimblewible的所有核心功能。每个项目都包含一些独特的特性,但是由于grin的目标是生成一个简单的mimblewimble实现,因此扩展mimblewimble的大多数独特特性都在beam项目中。下表总结了两个项目之间的功能相似性和差异。

一。相似之处:

核心mimblewible特性集。

蒲公英接力协议。

二。Grin的独特功能:

部分历史同步。

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

3Beam的独特功能:

托管在节点上的安全BBS,用于在钱包之间建立通信。不需要发送方和接收方同时在线。

蒲公英茎段使用诱饵输出。诱饵输出后来被用来避免区块链上的混乱。

四。显式utxo延迟。

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

可审计事务是路线图的一部分。

非交互支付的单方交易结构。

使用基数哈希树。

两个项目都还很年轻。截至发稿时(2019年5月),两者仍处于测试网络阶段,许多核心设计方案尚未建成或测试。beam wiki的大部分内容仍然是俄语,所以我们可能还不知道一些细节。

相关文章阅读:

隐私加密系列区块链两层扩展研究综述第一部分

隐私加密系列全网最完整的BFT协议项目分析报告

隐私加密系列数据完整性算法——Schnorr数字签名简介

隐私加密系列︱mimblewmble核心无脚本脚本

温馨提示:

文章标题:保密加密系列技术grin与beam的公开比较

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

更新时间:2020年05月20日

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

保密加密系列技术grin与beam的公开比较1
区块链

散户投资者数量增加了,持有至少0.1 BTC的比特币地址数量已超过300万

2020-5-20 12:40:42

区块链

巴西将区块链视为数字政府战略的目标之一

2020-5-20 12:59:13

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