什么是 Double Signing?
Double Signing 是在权益证明网络中,验证者在同一高度或轮次为两条冲突消息签名的行为。可以把它想成两条不同的区块或投票在同一时刻都声称“我是那一个”。这就像同时在两个演唱会签到却指望保安微笑以对。
“Double Signing 与双重花费相同。”不完全。双重花费是交易层面的手法,而 Double Signing 则是验证者在同一时段为冲突数据签名,从而违反共识的行为,相关角色为 验证者。
Double Signing 是如何发生的
简要说明有人如何因此惹上麻烦,无论是故意还是意外。
- 步骤 1: 验证者的密钥在线,准备为链上消息签名。
- 步骤 2: 操作员用相同密钥启动第二个节点,或客户端错误配置了故障转移。糟了。
- 步骤 3: 两个节点在相同高度生成签名,但签名的载荷不同。
- 步骤 4: 如果出现临时的 网络分叉,不同分支可能会从同一密钥接收到不同的签名。
- 步骤 5: 节点检测到冲突,记录证据,协议会惩罚签名者。
对,可能只是一次误操作,但后果并不简单。
为什么 Double Signing 很重要
即便你从未运行节点,也应关心它的原因:
- 好处: 了解该问题可以帮助你避免带来资金和声誉风险的配置。
- 视角: 大多数网络会采取 slashing 措施,因为该行为削弱了对共识的信任。
- 相关性: 你会在质押文档、DAO 投票和验证者仪表板中看到相关提及。
每个密钥只运行一个活跃签名器,并认真处理故障转移。设置告警、哨兵架构,以及拒绝为同一高度重复签名的远程签名器。证据会记录在 区块链 上,无法隐藏。
Double Signing 的主要特征
便于识别和记住的核心特征:
- 冲突: 同一密钥在相同高度或轮次对不同数据生成两份签名。
- 惩罚: 通常会导致质押被削减并被暂时禁止验证。
- 可检测性: 证据会被广播和存储,从而让节点间保持诚实。
不同形式
不同链上对此有不同称呼,但本质相同:
- 双重投票: 对同一高度在不同区块上投出两票。
- 重复提案: 同一提议者在一个轮次提出两个区块。
- 跨分叉签名: 在临时分裂期间,同一密钥在竞争分支上签名。
大多数 Double Signing 是意外造成的。两台使用相同密钥的机器同时运行几秒钟就可能触发。
示例
例如:验证者启动了备用节点而未关闭主节点,两个节点在相同高度签署了区块,网络在几分钟内识别出 Double Signing 并标记。
趣闻
许多客户端内置“防止重复签名”机制,会记录密钥最近签名的高度,像一个小门卫,拒绝你的第二张假证件。
总结
简短说明:Double Signing 就是共识层面上的同时处于两处并因此受到惩罚的情形。
