Wallets

錢包如何生成新的密鑰對?

  • January 21, 2022

任何兩個隨機選擇的私鑰-公鑰對的衝突機率都非常低。但是,我想知道錢包或密鑰生成器是否使用隨機數或偽隨機數來生成密鑰。如果是後者,則具有更高的可預測性和更高的碰撞率,對嗎?

普通電腦中不存在真正的隨機性(這裡不討論基於量子的隨機性)。

它總是偽隨機的,就好像你知道所有可以重現結果的參數一樣。

基於滑鼠和時間的隨機發生器不是真正隨機的,而是偽隨機的,就像您將時鐘設置為準確的時間並執行完全相同的滑鼠移動並讓所有設備以完全相同的方式工作並控制溫度和許多事情一樣,那麼您具有完全相同的隨機數。即使具有完全相同的初始狀態,真正的隨機也是不可預測的。但我們不會用普通的家用電腦這樣做,否則你將不得不深入研究 QRNG(量子隨機數生成器)https://en.wikipedia.org/wiki/Hardware_random_number_generator

但是我們在家用和家用電腦中使用的偽隨機生成器 (PRNG) 已經基於非常難以預測的輸入(滑鼠、時間、其他可能產生雜訊、熱量的設備,以及任何難以預測的東西……),並提供一種密碼學上合適的隨機性水平,根據生成的內容長度,現在在物理上是不可能進行遊戲的(我的意思是在目前已知的計算技術狀態下)。

您使用電腦的次數越多,熵增加的越多。因此,例如它會變熱,您在滑鼠上進行更多移動,在鍵盤上鍵入更多內容,通過處理器進行更多操作,……所以在使用 PRNG 和隨機性之前等待相當長的時間使用電腦會更好。

在https://en.wikipedia.org/wiki/Cryptographically-secure_pseudorandom_number_generator上查看更多資訊,並註意重要部分是“適用於密碼學”。

您還可以在此處閱讀有關 linux 熵源的更多資訊/dev/random(但其他人的工作方式大多相同)https://security.stackexchange.com/questions/71813/where-does-dev-random-get-its-entropy

引用自:https://ethereum.stackexchange.com/questions/119565