区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > BNB > 正文

ONC:Grin 中的交易详解_RIN

作者:

时间:

编者按:本文来自以太坊爱好者,作者: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”是不可能的。花费该输出

Grim Finance攻击者将1900枚ETH转移到Tornado Cash:金色财经报道,据派盾(PeckShield)社交媒体披露,Grim Finance 攻击者已将 1900 枚 ETH 转移到 Tornado Cash。据悉,Grim Finance 攻击者今日在 Uniswap 上将 300 万枚 DAI 交易为 1830 枚 ETH。 此前报道,Grim Finance 于 2021 年 12 月遭到重入攻击,该攻击窃取了价值约 3000 万美元的加密资产。今年 8 月 19 日,Grim Finance 攻击者陆续向 Tornado Cash 转入 1800 枚和 1200 枚 ETH。[2022/8/24 12:45:49]

假设我们刚才提到的输出属于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的操作

Grin核心开发者提出“解散核心团队和治理结构的治理方案”:匿名币古灵币Grin核心开发者DanielLehnberg本月初发表了一份关于“解散核心团队和治理结构的治理方案”,DanielLehnberg表示,目前管理基金会的设计中存在核心团队成员拥有无限期停留的权利、只有核心成员可以添加新的核心成员或删除现有成员、没有制衡等缺陷,因此需要提出一个更好的治理结构来代替现有方案。DanielLehnberg提出了几个可行性建议,包括将资金返还给匿名捐赠者、资金销毁、核心团队成员拆分、建立临时核心团队、开放申请程序等多方面建议。截至目前,已收集到121条相关回复,DanielLehnberg表示,如果出现了一个令人相信并会改善现状的提案将会以书面建议或RFC草案的形式提出,并会对其进行游说。[2020/9/16]

当接收到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

新的加密欺诈项目Bitgrin声称已经铸造50亿代币:根据最近的一份报告,近日出现一个新的加密欺诈项目Bitgrin (XBG),Bitgrin作为Grin的分支推出,并宣传自己为“神奇的私有加密货币”。项目创建者声称已经铸造了50亿代币。研究人员称,Bitgrin是一个局,其背后的人“正在缓慢地将代币出售给毫无戒心的受害者,这些受害者有2100万。”(Cryptopotato)[2020/5/31]

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。记住这个签名——你很快就知道它的意义了。交易完成

动态 | 以太坊开发者Virgil Griffith在听证会结束后获释并等待判决:以太坊开发者Virgil Griffith被捕一案周一进行了初审,以确定司法部是否有足够的证据定罪。周一下午的听证会结束后,Virgil Griffith代理律师Brian Klein在一份声明中表示,Virgil Griffith已经获释。他补充称:“我们对刑事诉讼中未经证实的指控提出质疑。Virgil期待着他在法庭上的那一天,那时完整的故事就会水落石出。”(Coindesk)[2019/12/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在创建该交易的时候,都知道各自输出的致盲因子。这意味着新他们能够花费交易产生的新输出,使得该输出不被锁定。刚才我们用来验证交易的信息被放在交易内核当中。交易内核

分析 | 降维:Grin隐私性被破坏是危言耸听:降维安全实验室CEO付东亮表示,研究人员Lvan Bogatyy发布的《Breaking Mimblewimble’s Privacy Model》,声称可以用极低的成本破坏Mimblewimble协议的隐私性,存在非常大的谬误。

Lvan Bogatyy研究认为,在网络中部署足够的节点,可以在交易打包前,从内存池中获取原始交易数据(未被CoinJoin混合的数据),并且通过在交易路径中监听“蒲公英网络”的方式,破坏MimbleWimble协议的匿名性,从而侦测到交易双方的信息。但实际上以Grin为例,无论使用在线交易(交易双方必须在线签署交易)或离线交易(通过文件传输签署交易,类似商业合同电子签名),Grin的初始发送地址都是一次性的临时地址(或者说根本不存在地址这个概念),且无法与其他相关地址进行分组匹配,从而无法破坏隐私性。

Grin是一个遵循比特币原教旨主义,并且通过技术革新,提高区块确认速度和减少区块体积的新链。现在这条链处于早期,但是已经拥有3000个以上节点。每个块的数据,并非全都是用户交易,其主要内容是匿名集。在最近1000个块中,有22%仅有一个交易TX,有30%不包含TX。用户交易信息永远不会超过Grin自身匿名集的大小。所以Grin的用户并不用担心所谓的隐私泄露问题。当然,Grin还有一些其他的隐私保护措施,可以参考Grin的源码及官方开发团队的信息。[2019/11/19]

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

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

标签:cardanoLICRINONCcardano币局SLICE价格SprinkleCoinMOONCAT币

BNB热门资讯
NCE:以太坊是如何运作的?(二)_ugas币最新资讯

前言:本文主要阐述当前以太坊的具体运作原理,有助于我们理解以太坊背后的各种概念和操作,适合初学者阅读.

GAS:“日本以太坊”Cardano的“区域自治”王国_ROB

Cardano项目发起于2015年,是一个完全开源的区块链平台。由两位重量级的人物创办:CharlesHoskinson和JeremyWood,均为前以太坊的核心成员.

LAUNCH:交易所行业2019 Q1报告_HPAD

2019年一季度,数字通证交易所行业风云变幻。经历了2018年下半年的漫长熊市,终于新的热点出现并激荡着市场,最终在4月2日以比特币放量大涨700点而令人激动.

INB:Coinbase 为 2.25 亿美元热钱包买保险_Buff Floki Coin

4月2日,Coinbase首席信息安全官PhilipMartin在官方博客中透露其热钱包加密保险的详细信息.

KIRA:师太说区块链|1.10 局限,除了铸币还能干啥_我朋友做区块链被捉了怎么办

比特币只是区块链的一个儿子,身份是“加密数字货币”,主要工作就是铸币、炒币,从不被人待见,一路屌丝逆袭成为世界瞩目的金融衍生品.

区块链:师太说区块链|1.1 比特币暴涨,十年两千六百万倍_买比特币

不要后悔“如果当年我买了多少比特币现在会如何如何......”除非当时你遇到了一个对你有影响力的布道者,狠狠的拉你一把,让你心服口服的理解啥是区块链,啥是比特币.