跨输入签名聚合如何集成到比特币?

互联网 阅读 762 2024-04-30 17:44:33

作者:jonasnick

来源:https://github.com/ElementsProject/cross-input-aggregation

跨输入的签名聚合(cross-input signature aggregation,CISA)是一种可以减少交易体积的技术,有望成为比特币的软分叉。本代码库的目标是为了收集关于签名聚合的思想和主题,以及构想它们集成到比特币中的方式。

签名聚合.jpeg

减半聚合

“减半聚合(Half Aggregation)” 技术可以将一组签名非交互式地聚合成单个聚合签名,并且这个聚合签名的大小是原签名集合大小的一半。

更详细的描述见本仓库内的 “half-aggregation.mediawiki”。仓库内的“幻灯片(slides)” 还有配套的视频,讲解了如何使用 libsecp256k1-zkp 代码实现减半聚合。

签名聚合案例研究:闪电网络通道公示

通道公示消息是在闪电网络中用 gossip 协议广播的,用于让节点可以找出支付的路径。

为了证明使用公钥 node_1 的节点和使用公钥 node_2 的节点间具有通道,公示消息包含四个签名。首先,公示消息包含 node_signature_1 和 node_signature_2 ,是公钥 node_1 和 node_2 分别对通道公示消息的签名。

通道公示还提供了两个公钥 bitcoin_key_1 和 bitcoin_key_2 ,是记载在通道充值交易的输出中的、分别由 node_1 和 node_2 持有的密钥。因此,它还包含了签名 bitcoin_signature_1 和 bitcoin_signature_2 ,分别是 bitcoin_key_1 对 node_1 和 bitcoin_key_2 对 node_2 的签名。

  1. 因为 node_signature_1 和 node_signature_2 是对同一条消息的签名,我们可以使用 MuSig2 这样的方案,将两个签名替换为单个签名 node_signature ,它的体积将与普通的单签名一样大。

  2. 为了创建通道公示消息,两个节点本身就需要协作。因此,他们可以交互式地完全聚合三个签名(经过聚合的 node_signature 和另外两个签名),成为单个签名。

  3. 通道公示消息通常是成批发送的。在一个批次内,所有通道公示消息的签名都可以聚合,因为减半聚合并不要求这些节点集体行动。相当于每个通道公示消息的签名都变成了一个减半聚合签名,其体积是原本签名的一半。

结果是,一开始我们需要包含 4 个签名(256 字节),占据了今天的通道公示消息的 60% 的体积;聚合之后只需一个签名(一批通道聚合消息只需 32 字节)。

当然,上面的配方也可以变化。例如,若是为了简单起见,不想使用完全聚合,可以仅聚合一条消息中的 4 个签名,将体积降低到 2.5 个签名的大小。

集成到比特币协议

因为 BIP 340 Schnorr 签名验证的减半聚合和完全聚合的验证算法不同,节点没法立即开始产生和验证聚合签名。如果这样做会导致链分裂。

Taproot 和 Tapscript 提供了多种升级路径:

  • 将 OP_SUCCESS 重新定义为 OP_CHECKAGGSIG:就像 bitcoin-dev 邮件组的这篇帖子指出的,在一个包含 OP_SUCCESS 的脚本中出现 OP_CHECKAGGSIG 会导致链分裂。这是因为OP_CHECKAGGSIG 并不真的验证签名,只是将一个公钥放到某个数据结构中,并在最终 —— 也就是处理完所有的 OP_CHECKAGGSIG 之后 —— 使用这个数据结构来验证聚合签名。而当一个节点遇到 OP_SUCCESS OP_CHECKSIGADD 之时,另一个升级(假设是软分叉)之后的节点可能会认为这是 OP_DOPE OP_CHECKSIGAD 。因为他们无法对验证聚合签名的方式达成共识,自然也无法对验证结果达成共识,所以会分裂。因此, OP_CHECKAGGSIG 无法跟 OP_SUCCESS 一起用在一个脚本系统中。同样的论证对通过 Tapscript 的密钥版本来加入聚合签名的尝试也是一样成立的。

  • 定义新的叶子版本来取代 tapscript:如果新的脚本系统依然有 OP_SUCCESS ,那就依然无法解决这个问题。

  • 定义新的隔离见证版本:可以定义一个新的隔离见证版本、复制 Taproot 和 Tapscript 的功能,只不过例外是所有的密钥路径(keyspand)的签名都可以被聚合。不过,这个版本的密钥路径签名无法跟其它隔离见证版本的签名聚合。

假设使用一个新的隔离见证版本来部署聚合签名,也就是复制 Taproot 和 Tapscript 的功能,并且只允许密钥花费路径的签名被聚合。它是很局限的一个东西。举个例子,一个花费条件 (pk(A) and pk(B)) or (pk(A) and older(N)) 在 Taproot 中通常会实例化为聚合公钥 A 和 B 来创建一个密钥花费路径,再加上一个 (pk(A) and older(N)) 的脚本路径。要是使用了脚本花费路径,其中的签名就无法聚合了。

这篇 bitcoin-dev 帖子证明了,这种局限性实际上是没有必要的,只要引入广义 Taproot(Generalized Taproot)(也就是 g’root)就行(要了解这个概念,请看这篇文章)。本质上,它不像 taproot 默克尔树那样每个叶子都是一个脚本,而是每个叶子都由一个公钥和一个脚本组成;为了使用某一个叶子来花费,必须提供其中的公钥的签名,以及满足其中脚本的输入。这就意味着,公钥移到了脚本系统之外,所以它不会受到 OP_SUCCESS 的约束,也不会被 Tapscript 组件的潜在危险困住。因此,这些公钥的签名 是可以 聚合的。

还是上面的 (pk(A) and pk(B)) or (pk(A) and older(N)) 的例子。在 g’root 中,根密钥 keyagg((pk(A), pk(B))) 还通过 taproot 的调整承诺了一个由公钥 pk(A) 和脚本 older(N) 组成的花费条件。为了使用后一个路径来花费,脚本指定的条件必须被满足,同时 pk(A) 的一个 聚合 签名必须存在。

Entroot 协议是 g’root 的一个略微升级的版本,它集成了 Graftroot。Entroot 的主要吸引力之一是 “惊人的优雅”,因为 Entroot 的验证规则比它产生的功能要简单。

跨输入签名聚合的节约效果

见:savings.org。

减半聚合与交易池缓存

如这篇 bitcoin-dev 帖子所述,接受了一笔拥有半聚合签名 (s, R_1, ..., R_n) 的交易进入本地交易池的节点不会丢弃它,也不会与其它签名聚合。相反,他会保留签名,当一个具有全块聚合签名 (s', R'_1, ..., R'_n') 的区块到达时,节点会从 s' 中减去 s' , 并从全块聚合签名中移除 R_1, ..., R_n ,然后再验证签名。因此,节点可以跳过自己已经验证过的东西。

减半聚合与重组

假设一笔交易 X 具有半聚合签名 S0 = (s0, R_1, ..., R_n) 。这笔交易被包含在链 C1 上,所在区块的半聚合签名为 S1(也就是说 S1 是该块内所有签名的减半聚合签名),因为 S0 已经聚合到了 S1 ,所以它是无法从区块中恢复出来的。

现在发生了一次重组,节点从 C1 链切换到了 C2 链。减半聚合会在两种情形下对重组造成影响。

  1. C1 链和 C2 链都包含了交易 X 。记 S2 为C2 上包含了 X 的区块的全块减半聚合签名。一般而言,S1 不会等于 S2,所以节点必须验证完整的减半聚合签名 S2,包括 X 的部分,即使它已经被单独验证过。如果本地保存了 S0 ,可以从 S2 中减去它。这跟常规的签名是不一样的,常规签名在重组中不需要再次验证。

  2. 交易 X 进入了 C1 但没有进入 C2 。因为我们无法复原出 S0 ,我们也就无法广播交易 X ,我们也无法构造一个包含它的区块。因此,实际上我们无法让 X 回到交易池中。

两种情形都表明,保存 S0 是有好处的,即使交易已被打包到了最好的链上。当且仅当交易已经埋得足够深,不再可能出现重组时, SO 可以被丢弃。这种方法显然不是那么完美。

处理第二种情形得另一个办法是,让交易的参与者(比如发送者或者接收者)重新广播该笔交易。但这可能会产生隐私问题。

减半聚合与适配器签名

减半聚合不能允许使用适配器签名(stackexchange)。但是,上面 “集成到比特币协议” 章节所述的、使用新的 SegWit 版本的方法,将可以让 Tapscript 内部的签名不可聚合,因此,使用适配器签名的协议可以通过仅在 Tapscript 内使用适配器签名来实例化。

如果输出可以直接用一个脚本来花费,也即不需要展示默克尔证明的话,那么这种模式使用 g’root 也不会有什么效率损失。但是,因为这不是一个常规的密钥路径花费,并且是显式不可聚合的,这样的交易会显得特别碍眼。它是不是真的会影响建立在适配器签名之上的协议还是一个开放问题。换句话说,这样的协议能否为适配器签名使用 Tapscript 花费路径、但又无需真的使用这个路径(至少在双方合作的情况下)?


免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:返回栏目 下一篇:返回栏目

相关资讯

  • NYDIG:期货数据凸显交易者仓位
    NYDIG:期货数据凸显交易者仓位

    本期内容涵盖了比特币市场的多个方面,包括ETF流动性、难度下调对矿工经济的影响、资产管理公司的分类、比特币价格和哈希率下降等。最近,现货ETF的推出改变了交易商减少多头持仓的态势,但难度下调可能导致哈希率下降,影响矿工收入。比特币价格的稳定和4月份的消费者物价指数公布将受到投资者的关注。股票和债券市场表现良好,黄金和油价也有所上涨。.....

    每日资讯 2024-05-17 08:01 307
  • 中心化AI的未来:你就是产品,让股东价值最大化
    中心化AI的未来:你就是产品,让股东价值最大化

    AI发展超越生命周期,中心化AI竞赛,最好模型胜出。数据质量崩溃,抓取互联网数据损害模型。AI助手训练数字孪生,自动化取代工作,寡头垄断API控制成本。监管和政策制定者知识差距被利用,执行版权法和KYC GPU。AI受大公司控制,剥削人类利润。新模型取代人类工作,数字优势出售给最高出价者。AI应由民主开放和去中心化系统管理,解决重要问题。.....

    每日资讯 2024-05-17 06:01 99
  • ZKRollups:房间里的大象
    ZKRollups:房间里的大象

    ZK Rollups是一种简化的区块链技术,利用零知识和简洁性属性来保护用户隐私并提高交易速度。然而,目前仍存在隐私泄露和数据可用性的问题。生成ZKP和提交证明的速度可能成为快速终结的瓶颈,降低用户体验。ZK Rollups可能不适合所有类型的DApps,且发布状态差异的方法也存在安全风险。尽管如此,ZK技术仍有潜力解决区块链难题。.....

    每日资讯 2024-05-17 06:01 872
  • 以太坊的原生协议,逃向Solana
    以太坊的原生协议,逃向Solana

    Solana在FTX/Alameda崩溃后重生,巩固了其作为顶级区块链的地位。随着SOL价格和DeFi指标的增长,Solana生态的开发者们推出新的激励系统吸引用户和资金。许多以太坊项目选择迁移到Solana,但市场份额仍面临风险。GMSOL是一个独立的交易所,使用GMX代币进行价值衡量和存储,并实施回购机制。市场猜测Ethena和Pendle将部署到Solana生态,开发者应该多元化区块链部署来维护市场份额。加密行业必须跨越不确定性鸿沟,吸引传统资产进入链上,否则将面临失去金钱和市场份额的风险。....

    每日资讯 2024-05-17 06:01 767
  • 火星财经加密日报|5月16日
    火星财经加密日报|5月16日

    加密货币市场反弹,投资者认为疲软的通胀数据是看涨机制的转变。Bitfinex分析师表示,比特币价格上涨约2.5%,符合预期。瑞士联邦委员会拟实施加密资产报告框架,提高税收透明度。超过600家公司在美SEC监管文件中披露持有比特币ETF,总价值达35亿美元。Neoclassic Capital是由前高盛集团员工创立的加密风险投资公司,致力于为加密行业各领域注入资金。比特币价格上涨至66,035美元,受美国CPI数据低于预期的影响,投资者预期降息。多个加密货币空投项目备受关注,建议使用旗舰桥接器https:/

    每日资讯 2024-05-17 06:00 782
  • 观点:宏观经济的流动性夏天或将到来,足够的耐心是成功关键
    观点:宏观经济的流动性夏天或将到来,足够的耐心是成功关键

    作者提出了“万物法则”来解释全球经济运作机制,认为科技股和加密货币是成长型资产,受长期趋势影响。作者认为当前的债务滚动、大选和全球问题不太可能改变这种情况,但市场也存在意外。正确的时间视角、投资组合管理和耐心可以避免投资失败。总的来说,“万物法则”是理解全球经济的最佳框架,但也需要注意意外情况。.....

    每日资讯 2024-05-16 17:02 504
  • 加密KOL推文影响研究:短期喊单效应明显,跟单1000美金1月后平均产生79美金亏损
    加密KOL推文影响研究:短期喊单效应明显,跟单1000美金1月后平均产生79美金亏损

    KOL喊单是韭菜们获取财富密码的重要来源,但研究发现KOL们的推文带来的长期投资价值微乎其微。此外,KOL们的推文对加密货币价格有短期影响,但长期投资建议不可靠。投资者应谨慎遵循KOL的建议,监管机构和商业媒体也应加强审查。.....

    每日资讯 2024-05-16 17:02 887
  • 长推:链上合约平台的优势与市场趋势分析
    长推:链上合约平台的优势与市场趋势分析

    CyberConnect是一条专注于社交的layer2公链,通过Staking和Restaking社区激励活动,为C端用户和B端开发者提供专属的社交链。它快速进入layer2领域,结合OP Stack超级链、Eigenlayer AVS再质押模型和Cyber DID入口层,为未来发展奠定基础。虽然仍需出现现象级的社交应用,但通过再质押机制,CYBER Token可以找到新的应用场景。.....

    每日资讯 2024-05-16 17:02 327