: 基本上幣圈常用的鏈,如果自己理解沒有錯誤
: 應該都是用橢圓曲線函數來加密
: 其中關於公私鑰的產生公式:
: K = k * G
: 大K是公鑰,小k是自己選擇的私鑰,G是生成點
: G照理說應該是一個已知,大家公認的常數
: 小k是2^256以內隨機選一個自然數
: 那是不是代表,我可以自己任意選一個數字,再把他推導成公鑰?
差不多是這樣,既然講到這個程度了,再講一些細節
BTC和ETH用的是Secp256k1:
https://en.bitcoin.it/wiki/Secp256k1BTC和ETH用的是Secp256k1:
它的循環群大小n是略小於2^256的
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
每間隔n個會循環回同一個點,所以如果選了一個接近2^256,剛好比n大一點的整數,
一減下來搞不好是k=10那個公鑰也有可能。
: 以內的公私鑰對基本上都算得出來,大家都知道,人人都可以存錢提款,是這樣嗎?
不會建議去用很小的數,理論上機率沒有差別,但確實有可能有人會從1往上掃,
也有可能有人從最大值往下掃,或正中間往兩邊掃。
反正人想得到的數字都有可能有人去掃。
已知一把私鑰去算對應公鑰,不管私鑰值的大小都很快。(我想確實有個體差異但都很快)
所以如果你想問的是會不會大的私鑰比較難算就比較沒人會去算,那多半是沒啥差別。
私鑰的安全性在於可能的數量非常多,在有限時間內被掃的機率很低。
但非隨機的私鑰值被特別拿去掃的機會可能會比較高,這跟密碼會被試的狀況有點類似。
: 那冷熱錢包商選擇私鑰有什麼特別的原理嗎?也有可能有人從最大值往下掃,或正中間往兩邊掃。
反正人想得到的數字都有可能有人去掃。
已知一把私鑰去算對應公鑰,不管私鑰值的大小都很快。(我想確實有個體差異但都很快)
所以如果你想問的是會不會大的私鑰比較難算就比較沒人會去算,那多半是沒啥差別。
私鑰的安全性在於可能的數量非常多,在有限時間內被掃的機率很低。
但非隨機的私鑰值被特別拿去掃的機會可能會比較高,這跟密碼會被試的狀況有點類似。
: 要怎麼知道冷錢包商不會藏後門,自己偷留一份私鑰,或者私鑰可能和別人的一樣?如果
: 都是隨機亂數,有沒有可能亂數的私鑰和另一家錢包商提供的私鑰一模一樣?(雖然機率
: 可能只有1/(2^256))
: 印象中SHA-256是有可能找到collision的,只是目前暫時還沒有人找到而已
: 如果我自己選一個夠大的數當私鑰,再導入熱錢包推出公鑰地址,是不是就也不需要冷錢
: 包了?
冷熱錢包不是這樣分的
至於隨機選一個範圍內的整數當私鑰,是運作得起來的。
有些錢包,尤其早期來講,匯入私鑰就一串16進位碼輸進去,那其實就是一個大整數,
也沒有什麼檢查碼,只要輸入長度正確的16進位碼(除非用到零點)都可以匯進去。
私鑰會遇到的問題是256bit的真隨機私鑰通常都不好記憶,
如果不隨機那被破的可能性就提高了。
如果你另外用一些規則去產生私鑰,安全性就看你的熵而定。
像現在常見的助記詞是個改良版的方案。
: 如果自己對加密原理有理解錯誤的話還請大家多多指正,謝謝大家至於隨機選一個範圍內的整數當私鑰,是運作得起來的。
有些錢包,尤其早期來講,匯入私鑰就一串16進位碼輸進去,那其實就是一個大整數,
也沒有什麼檢查碼,只要輸入長度正確的16進位碼(除非用到零點)都可以匯進去。
私鑰會遇到的問題是256bit的真隨機私鑰通常都不好記憶,
如果不隨機那被破的可能性就提高了。
如果你另外用一些規則去產生私鑰,安全性就看你的熵而定。
像現在常見的助記詞是個改良版的方案。
--
ethereum:0x09B25bd7d9B8dE2914C8314a2E0059A6a8ADEadE
polygon :0x09B25bd7d9B8dE2914C8314a2E0059A6a8ADEadE
smartbch:0x5a8B6db897003C8aFA62066d3bE876Fd8BBe9082
bitcoincash:qqjzmy6mjp8sp97c7thhflv9s2j96xk0q5pr26dftl
simpleledger:qqjzmy6mjp8sp97c7thhflv9s2j96xk0q5dcppcf4p
--