Grin 中的交易详解_LIC:FRIN币

编者按:本文来自以太坊爱好者,作者:BrandonArvanaghi,翻译&校对:stormpang&闵敏,星球日报经授权发布。编者注:Grin是一种基于MimbleWimble协议建立的新型密码学货币。本文是一个详细的教程,逐步解释了MimbleWimble协议中交易是如何构造出来,又如何运用密码学,在不泄露交易双方地址和交易额的条件下,保证货币没有双花,保证只有货币所有者才能花费货币。Grin是一种基于MimbleWimble协议建立的新型密码学货币。但是,Grin的教程又是出了名的晦涩难懂。本文旨在分享Grin交易的运行原理,帮助大家理解Grin交易是如何实际运行的。Grin交易的输出是一个Pederson承诺,采用如下形式:-一个Grin输出就是一个Pedersen承诺。-Perdersen承诺是一种隐藏信息的好方法。如果你是第一次听到Perdersen承诺的概念,那么每当你看到这个词的时候,就想想“屏蔽值”的概念。以下这段文字摘自Grin的wiki。假设咱们选择一个非常大的数字k当做私钥,将k*H作为对应公钥。即便有人知道了公钥k*H的值,要据此推导出k的值也是近乎不可能的……r是被用作致盲因子的私钥,G是椭圆曲线上的一个固定点,它们的乘积r*G就是r在这条曲线上的公钥。v是输入值或输出值,H是椭圆曲线上的另一个固定点……已知私钥k和私钥j,则(k+j)*H=k*H+j*H,即两个私钥之和与固定点H相乘产生的公钥等于两个私钥分别与固定点H相乘产生的两个公钥之和k*H+j*H。若想更深入地研究密码学可以阅读ECCprimer这篇博客。简而言之,要花费一笔Grin输出,必须同时知道致盲因子(r)以及Grin交易金额(v)。这两个值是不可能通过破解承诺倒推得出的。因此,只有提前知道这些数值才能花费Grin的输出。Grin之所以设置致盲因子,是因为Grin的发送者是知道v的值的。但是该输出的致盲因子只有你知道,因此只有你能够花费该输出。假设这个输出包含40Grin,使用的致盲因子为20。:-在该输出中,致盲因子是20,Grin数量是40。-在Grin浏览器上查看Grin交易的输出,我们会发现实际的输出并非像上图那样通过清晰的公式呈现。下面才是Grin输出真正的样子:-Grin输出。-再强调一遍,从该输出推出“20”或“40”是不可能的。花费该输出

奢侈品品牌LV为数字箱包VIA Treasure Trunk持有者推出首款独家数字藏品:金色财经报道,奢侈品品牌路易威登 (Louis Vuitton)在官方社交媒体宣布,已为数字箱包VIA Treasure Trunk持有者推出了首款独家数字藏品“Speedy 40 VIA Pharrell Williams”,旨在纪念其标志性经典Speedy 40手袋,据悉该独家数字藏品将在2024年1月开放申领,届时还可获得实物手袋。此外,与此前发布的VIA Treasure Trunk不同,路易威登本次推出的“Speedy 40 VIA Pharrell Williams”可转让且能在所有者之间进行交易。[2023/7/19 11:03:09]

假设我们刚才提到的输出属于Alice。现在,Alice想要将这些40个Grin中的25个发送给Bob。为了简单起见,咱们先忽略给矿工的交易手续费。如果你有一张5美元的钞票,买了3美元的东西,会得到2美元的找零。比特币系统中的交易就是这样运作的,Grin也不例外。如果Alice想从她的未花费交易输出40Grin中拿出25Grin发送给Bob,她在这笔交易中还要创建一个新的未花费交易输出,将余下的15Grin打回自己的地址。-Alice知道她发送给Bob的Grin数量,以及找零数量。-这笔交易中有15Grin将回到Alice手中,意味着只有她能够控制并且再次花费这15Grin。换句话说,必须杜绝Bob花费Alice零钱的可能性。为此,Alice必须为她的找零输出创建一个新的致盲因子。假设Alice选了34。Alice同时知道r和v,就拥有了创建零钱输出所需的一切信息,而且将作为一个输出记录在区块链上。Alice即将向Bob发送的25Grin输出也是如此。-Alice的找零输出。-正如我前面所提到的,只有知道了输出使用的致盲因子,才能花费这个输出。Alice知道她想花费的输出的致盲因子(20),但是她需要通过一种方式向Grin系统中的其他人证明她知道。这就是为什么她需要创建一个完全独立的计算,求解她的致盲因子总数。这就要把Alice刚刚为她的找零输出创建的致盲因子,减去她想要花费的输出的致盲因子(20)。-Alice的致盲因子总数。-rs代表Alice的致盲因子总数,在这个例子里是14。。)最后,Alice需要创建一个随机nonceks。她将使用该随机nonce值,帮助她对这个交易进行签名。Alice不会将实际的nonce值发送给Bob,而是发送ks·G。如前所述,通过将该nonce值乘以生成点G,Alice隐藏了实际的nonce值。Alice将以下信息发送给Bob。实际上,Grin数据并不会被分为“元数据”和"数据”字段,但是为了清晰起见,本文特意将二者区分开来。-Alice在Grin交易第一步需要发送给Bob的所有信息。-元数据字段:发送数量:Alice想要发送给Bob的Grin数量。交易唯一ID:Alice和Bob在来回发送数据时使用的唯一标识符,用于标识此交易。交易费:交易费。锁定高度:交易生效的区块号。数据字段:交易输入:Alice将单个或多个未花费输出用作发送给Bob的交易的输入。找零输出:Alice的找零输出ks?G:Alice的nonceks与生成点G相乘,得到的值就是这个nonce的Pedersen承诺。rs?G:Alice的致盲因子总数rs与生成点G相乘,得到的值就是这个rs的Pedersen承诺。Alice将以上信息发送给Bob,由Bob来完成下一步操作。Bob的操作

奢侈品巨头LVMH总裁:LVMH现在专注在真实世界多于虚拟世界:金色财经报道,奢侈品巨头LVMH总裁Bernard Arnault近日针对元宇宙提出了不同看法,他指出必须小心「元宇宙泡沫」,而且LVMH现在仍需要专注在真实世界,多于虚拟世界。Bernard Arnault还警告,市场及大众必须小心元宇宙引发的炒卖泡沫,因为这一领域可能只有极低的商业价值,情况或与以往的科技泡沫雷同。不过, Bernard Arnault并非决意不投资元宇宙,他解释说,如同互联网出现初期,全部新事物一涌而出,然后泡沫爆破,元宇宙也有很多有用的应用,但必须认真研究哪些应用才是真正可获利的。[2022/1/28 9:19:50]

当接收到Alice发送的信息后,Bob将TXfee和lock_height这两个变量连起来产生M”)。-交易“消息”。-Bob为他将要从Alice处接收的25Grin选择一个致盲因子rr。假设他选择了11。与此同时,他也选择了自己的随机noncekr。与Alice的操作相同,Bob将rr和kr两个值分别与生成点G相乘,创建了一个Pedersen承诺。有了这些数据之后,Bob就可以生成本交易对应的Schnorr挑战,用变量e表示:-交易的Schnorr挑战。-Schnorr挑战按照顺序对以下信息进行了SHA256哈希运算:交易消息。Alice和Bob所选的nonce对应的Pedersen承诺之和。Bob的致盲因子对应的承诺与Alice的致盲因子总数对应的承诺之和。Bob通过e为该交易生成自己的Schnoor签名,即sr。虽然sr是Bob的完整签名,但是我们称其为Bob的部分签名,因为该签名最终要与Alice的部分签名一同创建整个交易的签名。-该交易中Bob的部分签名。-当Alice最终收到sr时,是无法倒推出kr或rr的实际数值的。Bob将以下内容发送给Alice:-Bob将自己的部分签名、nonce对应的承诺,以及25Grin的致盲因子对应的承诺发送给Alice。-按照顺序,发送的内容包括:sr:Bob的部分签名。kr?G:Bob所选的nonce对应的承诺。rr?G:Bob即将收到的25Grin的致盲因子所对应的承诺。最后一步:发送回Alice

观点:得益于元宇宙,到2030年奢侈品牌NFT市场规模将达到560亿美元:12月11日消息,BullPerks和GamesPad联合创始人Constantin Kogan发文称,NFT市场目前很火爆,未来预计只会越来越热门。元宇宙的建立为奢侈品牌NFT打开了大门,摩根士丹利报告预计到2030年奢侈品牌NFT市场规模可能达到560亿美元。随着NFT的生产不断创造出新的时尚消费形式,越来越多的高端品牌正跳上这列快速行驶的列车,并投资新的数字收藏品业务。随着人们生活的更多方面转向线上,未来几年对数字时尚和商品的需求将显著增加。(CoinDesk)[2021/12/12 7:33:27]

Alice现在有了计算e以及该交易的Schnorr挑战所需的一切信息。在本地计算完e之后,Alice就能够验证Bob的部分签名。相信你还记得,Bob的部分签名sr包括以下内容:-该交易中Bob的部分签名。-基于我们先前描述的椭圆曲线的性质,Alice在等式两边同时乘以生成点G后,该等式依旧成立。-Alice在等式两边同时乘以生成点G。-因为Alice等于已经从Bob处收到了kr?G与rr?G,并且已经在本地计算出了e,她只需要简单地将sr乘以生成点G,确保与等式右边的值相等,就能够验证Bob的部分签名了。通过完成以上操作,Alice能够证明:Bob知道他将收到的Grin数量。Bob知道他的nonce值。Bob知道他为这25Grin选取的致盲因子。……至此,Alice在不知道Bob选择的nonce和致盲因子的情况下验证了Bob的部分签名。之后,Alice生成她自己的部分签名:-该交易中Alice的部分签名。-Alice现在可以生成该交易的签名,其中包含她和Bob的部分签名:交易签名由Alice和Bob的部分签名之和以及他们各自的nonce所对应的承诺之和组成。按照顺序,签名包含:Alice和Bob的部分签名之和。Alice和Bob的nonce所对应的承诺之和。合并之后,交易签名可以表示成如下形式:-交易签名-其中,s=ss+sr,k=ks+kr。记住这个签名——你很快就知道它的意义了。交易完成

Grin开发者:莱特币MW测试网预计将于9月启动:由莱特币基金会资助,负责将MimbleWimble协议集成至莱特币的Grin开发者David Burkett更新了五月开发进展。

David Burkett表示,他已经完成了MW模块逻辑的实现,同时开始了mempool逻辑的研究,这是将MimbleWimble集成到莱特币网络的重要一步。在谈及未来计划时,David Burkett提到,初步预测9月份为测试网启动日期。[2020/6/3]

数字货币需要“记忆”——也就是说,当你向某个人发送一笔钱的时候,你不能把同一笔钱发送给其他人。通过使用Grin,我们隐藏了Grin的发送数量以及接收方。那么,我们怎么证明这笔钱没有被“双花”或凭空造出来的呢?在一笔Grin交易中,从输入中减去所有输出之后,剩余Grin的数量应该等于0。再以5美元钞票举例:3美元给收银员+2美元找零返还给我-5美元钞票=0同理,一笔合法的Grin交易也符合上述等式。那么,在不暴露具体值的情况下,我们可以如何验证呢?来了解一下Alice和Bob之间交易的输入和输出情况:(34?G)+(15?H)+(11?G)+(25?H)-(20?G)-(40?H)=(25?G)+(0?H)这里的巧妙之处在于,当Grin数量抵消时,用输入减去输出后剩余的是“过剩致盲因子”或“过剩内核”所对应的承诺。在我们现在的例子中,过剩致盲因子对应的承诺为25?G,即椭圆曲线上的一个公钥。如果一笔Grin交易的输出之和减去输入之和后能够产生一个有效的椭圆曲线公钥,那么你就能知道v值一定被抵消了。如果等式右侧不是某些已知数值n的n?G+0?H形式,你就能知道这笔交易是非法的了。这意味着,要么输出总量大于输入总量,要么输入总量大于输出总量。还记得上文得出的签名么?-交易签名-该签名实际上签署了我刚才提到过的过剩致盲因子对应的承诺,下面我们来解释一下。还记得吧,当你把Bob的部分签名的等式两边同时乘以G后,会得到如下等式。-等式两边同时乘以生成点G后Bob的部分签名-同样,当你把Alice的部分签名的等式两边同时乘以G后,会得到如下等式。-等式两边同时乘以生成点G后Alice的部分签名。-如果把两个等式相加会发生什么呢?你将得到:sr?G+ss?G=(kr?G)+(ks?G)+(e?(rr?G+rs?G))其中,rr是Bob的致盲因子,rs是Alice的致盲因子总数,rr?G+rs?G等于(rr+rs)?G。Bob的致盲因子对应的承诺是11?G。Alice的致盲因子总数对应的承诺是14?G,两者相加之后得到25?G。因此,sr和ss相加之和若等于过剩致盲因子对应的承诺,即可证明整个交易是合法的。进一步简化这个等式,我们会得到:sr?G+ss?G=(k?G)+(e?(r?G))或:sr?G+ss?G=(k?G)+(e?(25?G))那么接下来只需检验等式两边是否相等就行了。记住,等式中的所有变量对于所有人都是可见的,因此任何人都能进行验证。我们可以在既不知道Alice的致盲因子也不知道Bob的致盲因子的情况下验证该交易。通过将他们的部分签名相加,并验证其总和是否等于过剩致盲因子对应的承诺,我们能够证明:Alice花费的输入中没有凭空产生多余的Grin。Alice和Bob在创建该交易的时候,都知道各自输出的致盲因子。这意味着新他们能够花费交易产生的新输出,使得该输出不被锁定。刚才我们用来验证交易的信息被放在交易内核当中。交易内核

F2Pool鱼池支持Grin 32算法挖矿:F2Pool鱼池发布官方公告表示已支持 Grin 32 算法挖矿。鱼池同时表示,Grin是基于 MimbleWimble协议开发的具备良好可扩展性和隐私性的数字货币,共识机制为PoW,在主网上线前四年内,迭代使用多种挖矿算法,目前有Grin C29、C31、C32 算法,鱼池已全部支持这三种算法。[2020/5/7]

除了输出,交易内核是Grin交易生成的另一部分信息。每笔交易生成一个交易内核,但是无法通过查询Grin区块链上的某一输出找到与之关联的交易内核。每笔Grin交易都包含一个交易内核,以及没有凭空产生多余Grin的证明。以下信息将存储在交易内核中:交易签名(s,k?G)。与“过剩致盲因子”关联的公钥。如上所述,该公钥可以用于验证s。该交易的交易费与锁定高度。。总结

在完成所有这些操作之后,只有如下交易相关信息会广播到网络中:所花费的输入。新产生的输出。交易内核。内核偏移。上文所述的交易元数据不会被广播。更好的是,其中一些信息也可以丢弃——我们将在另一篇博客中讲述。希望本文能对了解Grin交易工作原理有所帮助。我刻意略去了范围证明、内核偏移以及交易费的内容。更多信息请阅读有关Grin中交易合并机制工作原理、多方参与交易原理以及一些实验性的博客。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:46ms0-5:743ms