區塊鏈重要基礎知識8-2——解決私鑰保存一毀俱毀的問題:祕鑰分存

1. 爲什麼要進行祕鑰分存

像前面的紙錢包以及防損硬件都有一個致命的缺點,就是一旦損壞就是一毀俱毀,所以我們可以將祕鑰存儲的方式改爲祕鑰分寸,其中密鑰分存並不是簡單地切分密鑰,而是將密鑰轉換成若干“子密鑰”

2. 祕鑰分存方法主要分類

方法如下:密鑰被分成N個片段,只要我們獲得其中的K個片段,就可以把原密鑰重新還原。但如果獲得的片段數量少於K,就無法知道關於密鑰的任何信息。

2.1 大致分爲兩大類

分爲兩種情況:1、N=kN=k;2、N>kN>k

  1. N=kN=k

    1. 原祕鑰(128位) \oplus 隨機數RR\to(SR)(S \oplus R)
    2. 這裏祕鑰就被分爲了(SR)(S \oplus R)和隨機數RR
    3. 但是這樣的在N>kN>k的情況下就做不成,因爲N個片段就進行N-1次異或\oplus
  2. N>kN>k

    1. 使用直線或者n次拉格朗日插值,n次拉格朗日可查看鏈接,這裏主要說一下直線進行祕鑰分存

    2. 直線進行祕鑰分存:

      1. 由於兩點確定一條直線,那麼只需要將祕鑰分存在直線的兩個點上,那麼任意兩點求出這條直線之後就能夠得出在yy軸上的兩點也就是原祕鑰RR

      祕鑰分存的幾何示例

2.2 N>kN>k的時候——門限簽名

門限簽名:

  • 實現方案:一般通過拉格朗日插值進行實現,門限爲幾就是幾門限的門限簽名;
  • 原理:詳細見鏈接

3. 不從分存的角度,從簽名的次數來看

多重簽名:

把一個比特幣賬戶的控制權交給多個密鑰,而不是將密鑰分存。

  • 通過比特幣腳本,可以直接把一個比特幣賬戶的控制權交給多個密鑰,而不是將密鑰分存。
  • 密鑰保存在不同的地點,並分別生成簽名;
  • 最終完成的交易的信息保存在某臺設備上(只有這裏黑客可以乘機而入);
  • 最糟糕的情況:但即使黑客控制了這臺設備,他所能做的也只不過阻止這個交易被廣播到整個網絡上去。沒有其他設備參與,他無法生成出一個正當有效的多重簽名。

參考文章

  1. 拉格朗日插值原理以及實現
  2. 解讀區塊鏈全套六冊.第三冊.第四章.第三節
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章