聊聊 SLIP-0039
原文链接 http://dbarobin.com/2020/10/17/slip-0039/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
文/Robin
昨天提到的 OKEx 暂停提币事件,这个真是一个影响非常大的事情,后面估计会有不少连锁反应。BitMEX 事情很大但是对国内影响小,但是 OKEx 主场都在国内。朋友圈观察到的现象,各大去中心化钱包、硬件钱包都在推广,各个交易所出来辟谣自己是怎么保障安全的。
提到硬件钱包,随之而来的重要概念就是助记词以及私钥。你保存的硬件钱包私钥,往往都是助记词的形式。昨天在读者群提到保存私钥是个技术活,今天笔者就给大家详细介绍下。
通常购买的硬件钱包都会赠送一张助记词卡片,方便用户将助记词抄写到卡片上进行保管。笔者认为这是一种非常笨拙的保管方式。第一,这张卡片可能会被用户乱扔乱放,等真正要找备份的时候,发现不见了。不见有多种可能,比如被别人拿走、扔到垃圾篓、暂时不知道放哪里某天可能还会出现。第二,助记词卡片保管很好,可是哪天地震来了,或者是家里发生火灾,导致卡片永久物理性销毁。第三,明文保存的卡片,即使保管再严密,随时存在泄漏的可能。毕竟不是每个人都家里都有保险箱,也不是每个人都用得起银行的保险柜服务。
那有没有更好的保管助记词的方式,答案是有的,那就是助记词分片技术,英文是 Shamir's Secret-Sharing for Mnemonic Codes,也就是 Satoshilabs 推出的 SLIP-0039。目前 Trezor Model T,以及国内的 Cobo,都支持 SLIP-0039。
谈到 SLIP-0039,我们来聊下背后的 Shamir's Secret Sharing。
Shamir’s Secret Sharing 是由 Adi Shamir 创建的密码学算法。Shamir’s Secret Sharing 是「Secret Sharing」的一种实现。具体的工作方式如下:现有 N 个参与者,其中一个参与者将一段私钥、密码或者敏感信息分为 N 个加密片段,设置的恢复阈值是 M(M < N),将每个唯一的片段分给每个参与者,各自妥善保管。要恢复原始私钥、密码或者敏感信息,需要至少 M 个加密的片段。通常我们将此类加密解密的方式称为多签,比如设置了 3/5 多签,需要至少 3 个人签名(Shamir’s Secret Sharing Scheme 中叫做提供加密的片段)才能发送交易(Shamir’s Secret Sharing Scheme 中叫做解密原始私钥、密码或者敏感信息)。
题图来自: © Thanh / Shamir’s secret sharing scheme / robinsnippet.blogspot.com
Shamir’s Secret Sharing Scheme 的应用场景,更多是在私钥、密码或者敏感信息的备份,单人或者多人泄漏丢失片段,原始的信息不会受影响。
Secret sharing 方案例如 Shamir’s 在少于分享机密的人数时,不会泄漏任何机密信息,所以具有信息论安全性 (也具有完善保密性)。一个密码系统具有信息论安全性(英语:Information-theoretic security ),意思是说它的安全性完全是以信息论为基础的。这种安全性要求即使攻击者有无限的计算能力也不能破解它。由于一定要使对手根本没有足够的信息来破解,所以这些密码系统被认为是不能以密码分析破解的。
Shamir’s Secret Sharing 可以做到助记词的分片备份,也可以理解成多签备份,可以实现类似多签的容错机制。这种备份方法,既适用于个人,也适用于团队。即使部分片段丢失,依然可以恢复出完整的私钥或者助记词。
当然了,Trezor 和 Cobo 的硬件钱包只是实现了 SLIP-0039,但并不代表我们必须要要有这两款硬件钱包。可以根据 Shamir’s Secret Sharing 算法,写个工具自己使用,也是可行的。
我是区块链罗宾,博客 dbarobin.com 如果您想和我交流,我的微信: Wentasy
本站推广
币安是全球领先的数字货币交易平台,提供比特币、以太坊、BNB 以及 USDT 交易。
- 币安注册: https://accounts.binancezh.pro/cn/register/?ref=11190872
- 邀请码: 11190872
本博客开通了 Donate Cafe 打赏,支持 Mixin Messenger、Blockin Wallet、imToken、Blockchain Wallet、Ownbit、Cobo Wallet、bitpie、DropBit、BRD、Pine、Secrypto 等任意钱包扫码转账。
–EOF–