儲存錢幣
利用wallet software,有兩種可能:- offline storage (cold),安全但是不方便!
- online storage (hot),方便但是不安全!
下圖是一個offline bitcoin wallet,左邊印有public address(QR code以及 58字元的字串):
右邊雷射彌封的就是這個public address相關連的private key:
可以同時規劃兩者,但兩者之間也不容易流通,主要是cold storage並沒always聯網。一個解決方案是利用hierarchical wallet
Hierarchical key generation
主要概念就是把generate key的know how publish 出來,所以可以動態產生public address/private key pair:bitcoin使用的ECDSA signature機制有support hierarchical key generation!
所以cold / hot wallet不用為了聯網溝通:
拆散private keys (不是真的“拆”成parts)
雞蛋放在一個籃子裡面很危險,即便是cold storage,也有可能被偷竊。可以利用密碼學的技巧來拆散一組private key,把它拆成N份,如果任何人得到至少其中K份,則可以重建此key,否則將永遠無法窺知此key。例如一組private key S,如果標記在x-y座標上,可以點在y軸上,形成一個intersect。如果利用一條直線方程式,斜率為R,則通過此(0,S)的斜率為R的直線,線上的所有點都可以是N個sample中的一員(此處N ~= inifinity)。 但是實際上我們只要這直線上的任意兩點(K=2),就能找出S,但是K<2則不可能解出S:
所以可以用更高次方程式,來提高K值。
不過這種分散private key儲存地方的方法,有一個最致命的就是當private key合在一起的時候,有可能被竊取或是攻擊,這是架構上的問題,無法修正。
所以另一個比較好的架構是Multi-sig
沒有留言:
張貼留言