作者:Francesco Madonna
来源:https://github.com/ilghan/bssl-whitepaper/blob/main/README.md
摘要
数十亿美元价值的比特币已经因为用户私钥保管不当而永久丢失。与此同时,比特币保管的托管解决方案又重新引入了比特币本身志在消除的对手方风险。
本论文提出了 “ B-SSL(比特币的安全签名层)”,一种信任最小化的保险柜合约架构,它让不可挽回的密钥丢失和人身劫持变得几乎不可能,并且只需要现有的比特币共识特性。它是一种基于 Taproot、无需限制条款的系统,它利用了时间锁、镜像密钥和可选的 秘密通知 来提供可复原的、便于操作的自主保管。
B-SSL 不需要新的操作码,也不需要软分叉,可以按当前的共识规则部署到比特币主网上。
本文仅用于学术和技术审核目的。
动机
比特币提供了完美的所有权概念,但也提供了完美的丢失概念。每一个密钥丢失的案例都在劝退个人自己持有比特币。
“ B-SSL ” 的目的是启用一种模式,用户可以独立地持有比特币,又能保留一种密码学保证的复原路径 —— 无需引入需要信任的托管方,也不需要修改比特币协议。
设计概述
B-SSL 使用了 “ Taproot ” 和 “ Miniscript ”,在一个交易输出(保险柜)中承诺多条独立的花费路径。每一条路径都有自己的密钥集合以及时延。组合在一起,它们就形成了一种 层级式安全性模式:
- 一个用于日常操作的,快速的可配置路径
- 一个时延为 1 年、用于保证自主性的备用路径
- 一个时延为 3 年的托管路径,用于身故或者说继承事件
所有花费条件都是可验证的,并且是直接由区块链网络来强制执行的。
密钥结构
| 密钥 | 持有者 | 描述 |
|---|---|---|
| A | 用户 | 首要的密钥 |
| A1 | 用户 | A 的副本,保存在专门的位置 |
| B | 用户 | 次要密钥 |
| B1 | 托管人 | B 的副本,由托管人持有 |
| C | 托管人 | 联合签名密钥,用在可配置的长时延路径中 |
| CS | 便利服务 | 可选的网关,用于强制执行时延和启用秘密通知。可以自己运营,也可以由托管人运营。 |
花费路径
路径 1 —— 可配置的用户路径(2 小时 ~ 15 天的 CSV)
密钥:(A 或 A1)+ C
时延:可配置,从 2 小时到 15 天(CSV 相对时间锁)
网关:CS(可选)
用于日常操作。当用户发起一笔花费操作时,CS 可以强制执行选定的时延并发出一条秘密通知(可监控钱包以及保护用户)。
即使 CS 不可用,用户依然可以使用备用路径,即依然保留完整的控制权。
(译者注:根据作者在 Delving Bitcoin 论坛中的回复,C 的签名动作将由 CS 控制;而 CS 会在脚本本身的 CSV 时间锁之外,额外执行一个时延,从它看到一笔尝试通过路径 1 来花费的交易开始计时。作者认为这样做可以对抗人身威胁。)
路径 2 —— 用户备用路径(1 年的 CLTV)
密钥:A + B
时延:1 年(绝对时间锁 CLTV)
网关:无
保证用户总是留有自治的复原能力,无论便利服务是否可用。
(译者注:根据作者的另一个回复,该路径的建议用法是,保险柜的主人在资金存入的时刻,就创建并签名一笔使用路径 2 来花费的交易,并保存下来。这笔交易虽然在 1 年后才可以生效,但毕竟已经具备签名。作者认为这可以对抗丢失密钥 A 的风险。如果 1 年后密钥并未丢失,可以再签名一笔新的交易、将旧交易销毁。)
路径 3 —— 托管人复原路径(3 年的 CLTV)
密钥:(B 或 B1)+ C
时延:3 年(绝对时间锁 CLTV)
网关:无
这条路径使得两个托管人无法勾结起来偷盗资金。它也用作 身故者 和继承人的保护措施。
只有在 3 年无活动之后,托管人才能联合符合这些资金;在时间锁解锁之前,资金是无法花费的(在共识层面上)。
(译者注:作者在这里使用了更多的外部假设来打消两位托管人勾结的可能性,包括托管人爱惜声誉以及它们受到司法机构的管辖。但就笔者所知,作者所述的 PSBT 的固定性并不足以成为一种保护措施。)
Taproot/Miniscript 条款
tr(<internal>,
or(
and(or(pk(A), pk(A1)), and(pk(C), older(VAR_CSV))), # 2h–15d (A/A1 + C)
or(
and(after(H_1Y), and(pk(A), pk(B))), # 1y (A + B)
and(after(H_3Y), and(or(pk(B), pk(B1)), pk(C))) # 3y (B/B1 + C)
)
)
)
VAR_CSV 是可以配置的,数值在 2 小时到 15 天(72 ~ 10800 个区块)之间。每一个 Tapscript 叶子都是独立的;揭晓其中一个不会导致其它叶子曝光。
安全属性
- 共识强制执行的时间控制:所有时延都是通过
CHECKLOCKTIMEVERIFY和CHECKSEQUENCEVERIFY操作码,由比特币节点(所构成的区块链网络)强制执行的。 - 托管人无法勾结:长达 3 年的绝对时间锁保证了没有托管人组合可以永久移动资金。
- 抵抗人身和电子空间攻击:时延和可选的秘密通知的结合,给用户提供了反应时间来对抗劫持和黑客攻击。
- 永久可复原:时延一年的用户路径,保证了资金在任何外部故障下都是可复原的。
- 无需限制条款:在现有的比特币编程规则下工作,不需要额外的操作码。
便利服务
“便利服务(CS)” 是一种链外的强制执行和通知层。它既不持有私钥,也不托管什么。它的角色仅仅是在配置好的时延之后释放联合签名许可,以及可选地广播待处理交易的通知。
| 模式 | 运营者 | 优势 | 顾虑 |
|---|---|---|---|
| 自主运营的 CS | 用户自己的基础设施 | 最大化独立性和隐私性 | 为人身胁迫提供更小的威慑 |
| 托管人运营的 CS | 第三方或者受监管的托管人 | 通过外部验证措施增加社会和人身攻击抗性 | 最小化对于第三方正常运营时间的依赖 |
这两种选项都保留了时延的完全区块链可执行性。
秘密通知机制
当一笔交易通过可配置时延路径发起时,CS 可以发送一条加密的 秘密通知 到一个预定义的守卫钱包(guardian wallets)或者监控端点。这些实体可以验证这一花费被启动了,然后在时间锁过期之前提醒用户。
区块链强制执行的时延,与链外通知,两者的结合极大地减少了人身攻击和赛博空间攻击的成功概率,因为在交易敲定之前,有足以反制的提醒时间。
操作指南
- 保险柜轮换:大约每 2.5 年就轮换一次保险柜,以避免意外激活托管人复原路径。
- 备份:在安全的断网媒介中保存描述符和公钥。
- 测试:在测试网上验证所有的路径,再部署到主网上。
- 硬件支持:确认签名硬件兼容 Taproot 密钥路径签名。
- 监控:定期验证通知断电和警告系统。