盲化的两方 Musig2 签名
作者:tomt1664
来源:https://github.com/commerceblock/mercury/blob/master/doc/blind_musig2.md
本文是一种 Schnorr 多签名协议 Musig2 的一种实现提议,在这种实现中,两方参与签名,但任何一方都无法知晓:(1)完整的共有公钥;以及(2)最终生成的签名。
在下面的描述中,私钥(域元素)以小写字母来表示,而椭圆曲线点用大写字母来表示。G
是椭圆曲线上的生成器点。点乘法使用 X = xG
来表示,点加法使用 A = G + G
来表示。
H()
是一种哈希函数。
Schnorr 签名
在标准的 Schnorr 签名协议中,签名者生成一个私钥(域元素)x
以及对应的公钥 X = xG
。
为了签名一条消息 m
,签名器生成一个临时的 key/nonce(域元素)r
以及对应的公钥点 R = rG
。
签名者计算 e = H(X||R||m)
以及 s = e.x + r
。最终的签名是数据对 (R, s)
。
两方的 Musig2
两方的 Musig2 协议是这样的:
第一个参与者生成私钥 x1
和公钥 X1 = x1G
。第二个参与者生成私钥 x2
和公钥 X2 = x2G
。那么这组公钥可以表示成 L = {X1,X2}
。公钥的聚合系数为 KeyAggCoef(L,X) = H(L,X)
。因此,最终双方共有的(聚合)公钥就是 X = a1X1 + a2X2
,其中 a1 = KeyAggCoef(L,X1)
而 a2 = KeyAggCoef(L,X2)
。
在签名一条消息 m
的时候,第一方生成 nonce r1
和 R1 = r1G
。第二方生成 nonce r2
和 R2 = r2G
。然后聚合成 R = R1 + R2
。
第一方然后计算 c = H(X||R||m)
和 s1 = c.a1.x1 + r1
;第二方计算 c = H(X||R||m)
和 s2 = c.a2.x2 + r2
。
最终的签名就是 (R, s1+s2)
。
盲化的两方 Musig2
在这套协议中,要防止第一方知道完整的公钥和最终的签名是很简单的,只要第一方不需要独立计算和验证 c = H(X||R||m)
即可(因为 TA 在任何时候都无法知晓 m)。
密钥聚合仅由第二方来执行。也即只有第一方将自己的公钥
X1
发给对方。Nonce 聚合也仅由第二方来执行。第一方将自己的
R1
发送给对方。第二方计算
c = H(X||R||m)
然后发回给第一方,以计算s1 = c.a1.x1 + r1
。
第一方永远不会知道最终的 (R,s1+s2)
和 m
。
密钥更新
为了更新服务端(第一方)的密钥碎片(在用户间转移 statecoin 的时候),每个公钥的密钥聚合系数都必须设为 1。在 Musig2 协议中,使用这个系数是为了防止 “rouge 攻击”,即其中一方可以选择一个从自己的私钥和对方的公钥的倒数中推导出来的公钥,从而可以单方面生成聚合公钥的有效签名。但是,(如 Musig2 论文所述)这也可以通过让各方生成自己所提供的公钥的私钥知识证明来防止。可以直接以一个签名的形式来提供,在 mercury 协议中,签名 statechian 状态时都需要提供签名。
在接收一个 statecoin 时,为了验证钱币的地址(即聚合公钥)在前任所有者和服务端之间正确分享了,客户端必须执行如下验证:
检索服务端当前为这个钱币使用的公钥
X1
。检索发送者的公钥(碎片)
X2
。验证
X1 + X2 = P
是这个 statecoin 的地址。验证发送者具有生成
X2
的私钥:这是通过验证X2
对接收者公钥X3
的 statechain 签名来实现的。
这证明了地址 P
是服务端生成的(聚合的),而且只能在服务端合作时才能得到签名,即,没有任何一个前任所有者拥有完整的私钥。
为了更新密钥碎片,需要使用如下协议:
服务端(第一方)生成一个随机的盲化 nonce 值
b
并发送给客户端(第二方)。客户端执行
transfer_sender
操作,并将自己的私钥添加到 nonce 中:t1 = b + x2
。客户端发送
t1
给接收者,作为transfer_msg_3
的一部分(使用接收者的公钥X3 = x3G
来加密)。接收者客户端解密
t1
然后减去自己的私钥x3
:t2 = b + x2 - x3
。接收者客户端将
t2
发送给服务端,作为transfer_receiver
的一部分。服务端更新私钥碎片:
x1_2 = x1 + t2 - b = x1 + b + x2 - x3 - b = x1 + x2 -x3
那么现在,
x1_2 + x3
(新的服务端私钥碎片和新的客户端私钥碎片的和)就等于x1 + x2
(旧的服务端私钥碎片和旧的客户端私钥碎片的和)。服务端删除
x1
。
(完)
相关资讯
-
WLD7月解锁巨额代币后,或将引发长达数月的抛售潮
世界币(Worldcoin)是一种加密货币项目,得到OpenAI执行长Sam Altman的支持。曾经冲上历史高点,但目前持续下跌。巨鲸交易员指出,世界币可能是最大的财富转移,但并非全民基本收入形式,而是进入团队和内部人士口袋。随着WLD解锁量增加,恶性通膨可能出现,并在几个月后爆发抛售潮。巨鲸交易员警告,像WLD这样的代币从一开始就被设计为掠夺性的代币经济,有利于团队和早期投资者,但散户仍然认为他们正在击败这个系统。.....
-
SocialFi赛道暗流涌动,Friend.tech、Farcaster及Phaver谁略胜一筹?
Friend.tech的SocialFi项目面临用户流失和经济模型挑战。传统社交媒体平台依赖广告收入,但SocialFi旨在通过代币和NFT机制重新分配价值。其他项目如Farcaster和Phaver则采用更注重社交属性和用户参与的激励机制。Phaver推出了$SOCIAL代币,通过代币化激励用户参与和贡献,具备竞争优势。然而,仍需创新解决用户留存和经济模型问题,吸引和激励用户参与。目前仍无法确定哪种模式能更好地平衡金融和社交特性,满足用户需求。.....
-
火星财经加密日报|5月14日
CARV与Google合作推广用户数据所有权,软银子公司ARM计划推出AI芯片。Lido社区建议建立贡献者联盟工作组,路透调查显示大多数经济学家认为美联储将在2024年降息。CoinShares报告称,美国持续通胀和经济疲软可能对比特币有利。GameStop股价大涨,比特币矿工收入下降,巴西加密交易量高达60亿美元。政府可能建立工具跟踪公民使用稳定币的情况。比特币减半、市场回调以及TON和Base发展迅猛。Zest宣布完成350万种子轮融资,FHE芯片提供商Niobium完成550万美元种子轮融资,Run
-
加密启示录:挑战华尔街,一个超级KOL如何打爆空头暴赚4000万美元?
Roaring Kitty,一位普通家庭出身的散户交易员,通过在Reddit论坛上号召网友参与,将5.3万美元变成4600万美元。他的成功引发了华尔街对冲基金的失败,但交易平台限制交易,股价下跌,华尔街开始耍赖皮,Gill成为散户运动的领袖,收获巨额财富。散户也在加密世界崛起,成为VC们的退出流动性,MEME KOL Ansem影响市场,散户有机会成为超级KOL,搅动市场,折腾出新天地。.....
-
GME股票传奇交易员RoaringKitty启示录:持有就要不遗余力宣传,善用媒体影响力
Roaring Kitty是一位成功的散户交易者,他在GameStop股票上投资5.3万美元,最终获得了4800万美元的收益。他通过社交媒体吸引了更多投资者,导致股价大幅上涨。法学教授Joshua Mitts认为,新散户、刺激措施和低利率等因素推动了Meme股票的上涨。跟随正确的KOL可能带来收益,但也有风险。Meme股票的特点是所有参与者都处于平等地位,私募轮解锁后也不会受到风投的影响。Meme股票的热度可能会持续,让我们拭目以待。.....
-
Restaking的“吸血鬼”攻击之下,Lido该如何解题?
Lido战略顾问Hasu指出,Lido面临两大挑战:以太坊基金会可能削减质押激励,以及Restaking叙事吸引大量资金流入。他建议Lido应保持stETH作为最安全、最具流动性的LST,不应转变为LRT,同时加强对GOOSE的更新。Lido应探索以太坊扩展和安全愿景的验证者服务,并建立应用程序和合作伙伴生态系统,让质押用户可以选择更高的风险/收益模式。建议通过建立专项基金来实现目标,推动stETH成为Restaking市场的首选抵押品。同时,建议与AVS和LRT生态系统中的关键角色合作,建立一个繁荣的生
-
速览Base走红游戏WorldPvP:3天交易量突破2300万美元,结合MEME、GameFi和SocialFi概念
World PvP是一款结合MEME、GameFi和SocialFi概念的策略类游戏,玩家通过争夺代币的市值来获胜。游戏每30天循环一次,最终剩余最后一个赢家。玩家可以通过存入ETH兑换国家代币参与游戏,并通过社交功能与其他玩家交流。游戏收费标准为2.5%,已实现约586.8万美元的收益。官方将下个游戏周期缩短至7天。.....
-
Notcoin上线Launchpool,是币安对社区币的友好信号
币安推出的新项目Notcoin旨在鼓励社区持有高流通量的项目,它是一款拥有500万日活用户的Telegram游戏,通过点击赚取积分/代币。Notcoin的代币总量为102,719,221,714,其中78%分配给挖矿人,5%用于生态系统基金,5%用于社区激励,3%用于开发者。该项目没有投资人,22%将用于未来用户增长。Notcoin也是Ton上最大的项目,代币分配特点是社区大、开发者少,旨在改变VC币的现状。.....
- 成交量排行
- 币种热搜榜