1. 为什么要进行秘钥分存
像前面的纸钱包以及防损硬件都有一个致命的缺点,就是一旦损坏就是一毁俱毁,所以我们可以将秘钥存储的方式改为秘钥分寸,其中密钥分存并不是简单地切分密钥,而是将密钥转换成若干“子密钥”
2. 秘钥分存方法主要分类
方法如下:密钥被分成N个片段,只要我们获得其中的K个片段,就可以把原密钥重新还原。但如果获得的片段数量少于K,就无法知道关于密钥的任何信息。
2.1 大致分为两大类
分为两种情况:1、;2、
-
:
- 原秘钥(128位) 随机数
- 这里秘钥就被分为了和随机数
- 但是这样的在的情况下就做不成,因为N个片段就进行N-1次异或,
-
:
-
使用直线或者n次拉格朗日插值,n次拉格朗日可查看链接,这里主要说一下直线进行秘钥分存
-
直线进行秘钥分存:
- 由于两点确定一条直线,那么只需要将秘钥分存在直线的两个点上,那么任意两点求出这条直线之后就能够得出在轴上的两点也就是原秘钥。
-
2.2 的时候——门限签名
门限签名:
- 实现方案:一般通过拉格朗日插值进行实现,门限为几就是几门限的门限签名;
- 原理:详细见链接
3. 不从分存的角度,从签名的次数来看
多重签名:
把一个比特币账户的控制权交给多个密钥,而不是将密钥分存。
- 通过比特币脚本,可以直接把一个比特币账户的控制权交给多个密钥,而不是将密钥分存。
- 密钥保存在不同的地点,并分别生成签名;
- 最终完成的交易的信息保存在某台设备上(只有这里黑客可以乘机而入);
- 最糟糕的情况:但即使黑客控制了这台设备,他所能做的也只不过阻止这个交易被广播到整个网络上去。没有其他设备参与,他无法生成出一个正当有效的多重签名。
参考文章
- 拉格朗日插值原理以及实现
- 解读区块链全套六册.第三册.第四章.第三节