区块链重要基础知识8-2——解决私钥保存一毁俱毁的问题:秘钥分存

1. 为什么要进行秘钥分存

像前面的纸钱包以及防损硬件都有一个致命的缺点,就是一旦损坏就是一毁俱毁,所以我们可以将秘钥存储的方式改为秘钥分寸,其中密钥分存并不是简单地切分密钥,而是将密钥转换成若干“子密钥”

2. 秘钥分存方法主要分类

方法如下:密钥被分成N个片段,只要我们获得其中的K个片段,就可以把原密钥重新还原。但如果获得的片段数量少于K,就无法知道关于密钥的任何信息。

2.1 大致分为两大类

分为两种情况:1、 N = k N=k N=k;2、 N > k N>k N>k

  1. N = k N=k N=k

    1. 原秘钥(128位) ⊕ \oplus 随机数 R R R → \to ( S ⊕ R ) (S \oplus R) (SR)
    2. 这里秘钥就被分为了 ( S ⊕ R ) (S \oplus R) (SR)和随机数 R R R
    3. 但是这样的在 N > k N>k N>k的情况下就做不成,因为N个片段就进行N-1次异或 ⊕ \oplus
  2. N > k N>k N>k

    1. 使用直线或者n次拉格朗日插值,n次拉格朗日可查看链接,这里主要说一下直线进行秘钥分存

    2. 直线进行秘钥分存:

      1. 由于两点确定一条直线,那么只需要将秘钥分存在直线的两个点上,那么任意两点求出这条直线之后就能够得出在 y y y轴上的两点也就是原秘钥 R R R

      秘钥分存的几何示例

2.2 N > k N>k N>k的时候——门限签名

门限签名:

  • 实现方案:一般通过拉格朗日插值进行实现,门限为几就是几门限的门限签名;
  • 原理:详细见链接

3. 不从分存的角度,从签名的次数来看

多重签名:

把一个比特币账户的控制权交给多个密钥,而不是将密钥分存。

  • 通过比特币脚本,可以直接把一个比特币账户的控制权交给多个密钥,而不是将密钥分存。
  • 密钥保存在不同的地点,并分别生成签名;
  • 最终完成的交易的信息保存在某台设备上(只有这里黑客可以乘机而入);
  • 最糟糕的情况:但即使黑客控制了这台设备,他所能做的也只不过阻止这个交易被广播到整个网络上去。没有其他设备参与,他无法生成出一个正当有效的多重签名。

参考文章

  1. 拉格朗日插值原理以及实现
  2. 解读区块链全套六册.第三册.第四章.第三节
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值