10个版本 (1个稳定版)
1.0.0 | 2024年3月28日 |
---|---|
0.8.0 | 2024年3月13日 |
0.7.0 | 2023年11月28日 |
0.3.0 | 2023年7月31日 |
#1946 在 魔法豆
每月1,612次下载
在 tap_aggregator 中使用
80KB
1.5K SLoC
时间线聚合协议 (TAP)
概述
时间线聚合协议 (TAP) 促进发送者向接收者的一系列支付(TAP收据),接收者将这些支付汇总成一笔单笔支付(收据汇总凭证,或RAV)。这笔汇总支付可以由支付验证器在链上验证,从而减少交易次数并简化支付过程。
关键组件
- 发送者: 启动支付。
- 接收者: 接收支付。
- 签署者: 发送者授权的多个签署者签署收据。
- 状态通道: 发送者向接收者打开的一个单向通道,用于发送收据。
- 收据: 发送者向接收者发送的支付记录。
- 收据汇总凭证 (RAV): 包含收据汇总金额的签名消息。
- tap_aggregator: 发送者管理的一个服务,根据接收者的请求将收据汇总成签名RAV。
- 托管账户: 在区块链中为发送者-接收者对创建的账户,用于存放资金。
安全措施
- 协议使用非对称加密(ECDSA secp256k1)来签署和验证消息,确保收据和RAV的完整性。
过程
- 打开状态通道: 通过区块链合约打开状态通道,为发送者-接收者对创建托管账户。
- 发送收据: 发送者通过状态通道向接收者发送收据。
- 存储收据:接收方存储收据并跟踪总付款。
- 创建RAV请求:RAV请求由收据列表组成,可选地包含以前的RAV。
- 签署RAV:接收方将RAV请求发送到tap_aggregator,该聚合器将其签署为新RAV。
- 跟踪总价值:接收方跟踪自上次RAV以来的总价值和新收据。
- 请求新的RAV:接收方将新收据和上次RAV发送到tap_aggregator以获取新的RAV。
- 关闭状态通道:当分配期结束时,接收方可以将最后一份RAV发送到区块链,并从EscrowAccount接收付款。
性能考虑因素
- 主要性能限制是验证收据所需的时间和向tap_aggregator发送请求的网络限制。
用例
- TAP协议适用于需要单向、并行微支付但单个支付成本过高的系统。通过在链下聚合操作并在一次交易中赎回,成本可以大幅降低。
兼容性
- 当前实现适用于与EVM兼容的区块链,其中大部分系统是链下的。
贡献
欢迎贡献!请提交一个拉取请求或创建一个问题来讨论潜在的变化。同时,请确保遵循贡献指南。
依赖项
~30–46MB
~859K SLoC