科普 | 瞭解私鑰

買賣虛擬貨幣

私鑰在加密貨幣的世界裡至關重要。我們建議所有經驗豐富的加密使用者瞭解他們的本源、理由和價值。在本文中,我們會解釋私鑰的來源及其與加密的關係。

私鑰及其在加密中的作用

歸根結底,擁有加密貨幣歸根結底就是持有私鑰。在現實世界中,擁有實體財產通常需要擁有帶有自己名字的契據或收據,而在加密世界中,擁有某個資產就是掌握某個資訊。簡而言之,掌握了私鑰就相當於擁有加密資產。

“知識就是力量”這句話從來沒有像加密世界裡那樣正確。

所有資產都可以透過交易進行操縱。在現實世界中,這些交易通常需要您的簽名才能授權。

然而,在加密世界中,這些交易只能使用私鑰進行授權,私鑰用於對這些交易進行加密簽名。

簽署的交易表示授予對連線到這些私鑰的資產的訪問權。儘管任何人都可以生成涉及您的數字資產相關的交易,但只有與他們相關聯的私鑰所有者才能對交易進行簽名,從而驗證交易。雖然假簽名在現實世界中是一個問題,但加密世界受到其基本密碼學性質的保護。迄今為止,還沒有已知的駭客允許別人在沒有你的私鑰的情況下籤署你的資產交易。

“沒有私鑰,幣就不是你的”這句話很有說服力,因為任何人只要擁有私鑰,就可以在這些資產上籤署任何交易,從而隨心所欲地轉移或移動它們。

什麼是私鑰?

從實用的角度來看,私鑰是特定範圍內的數字,允許資金使用(這就是為什麼保密是如此迫切的原因)。從數學的角度來看,私鑰只是一個隨機的正整數。以下是一個更專業、更準確的描述:私鑰是使用隨機數生成器在給定定義的正範圍內獲得的加密強隨機數。

大多數情況下,計算機使用偽隨機數生成器(PRNG)來生成這些隨機正整數(真正的隨機數生成器很難獲得)。這些生成器通常需要有專門的硬體,並使用物理源,例如電路中的熱噪聲或蓋革計數器的精確定時。

PRNG 是一種密碼學加強型函式,需要輸入一個熵足夠大的值作為隨機種子。

熵是一個複雜的概念,但它的目標很簡單:為函式提供不可預測性。透過使用安全熵源,PRNG 可以建立出偽隨機數,其非隨機性概率是可以忽略不計的(在可接受的特定範圍內)。

Linux 中的“/dev/urandom”或Microsoft Windows中的“rand_s”通常用作 PRNG 的熵源,以實現安全的隨機數生成。在這個圖表中,術語“範圍”被隨意地用來表示範圍的數學概念和計算機生成隨機數所需的位元組大小。

為 PRNG 提供的安全建立有效的以太坊或比特幣私鑰的範圍是 1到 2256-1(設想一個由數字0-9組成,長度為78位的密碼鎖)。

由於這個範圍很大,生成兩個私鑰的概率可以忽略不計,這就是為什麼您的私鑰不太可能由其他使用者建立的原因。

從你的鑰匙中選擇的整數集是一個巨大的數字-幾乎與整個宇宙中可見原子的總數差不多。

比特幣和以太坊都採用了 1 到 2256-1 的範圍,這要歸功於這兩個區塊鏈建立公鑰所使用的數學策略。例如,以太坊使用橢圓曲線(特別是SECP-256k1)生成公鑰。在最初的黃皮書中,Davin Wood 博士將私鑰定義為在[1,secp256k1n−1]範圍內隨機選擇的正整數(表示為長度為32的大端形式的位元組陣列)。有關所有正式定義,請參閱實際的黃皮書。

私鑰、公鑰和地址

由於私鑰是必須保密,因此我們需要一種不同的機制來允許其他人找到我們的資產,也讓我們找到他們的資產。因此,所有區塊鏈都引入了地址的概念,從您的私鑰計算出的唯一數字。

這些地址是您的加密資產的位置,可以與任何您需要了解您的加密資產餘額的人共享(如果您願意)。

區塊鏈地址是使用公鑰建立的,以確保您是該地址的所有者。反過來,這些公鑰是從您的私鑰生成的。

此過程是單向的,即您可以使用私鑰計算出賬戶地址,但不能透過賬戶地址倒推計算出私鑰。私鑰可以派生公鑰,公鑰可以推出區塊鏈地址。但是,區塊鏈地址無法用來推出公鑰,公鑰也無法用來推出私鑰。

一單向過程是透過密碼陷門功能完成的。陷門函式是一種單向函式,一個輸入值只能導致唯一的輸出值,但是不能根據輸出值倒推原始的輸入值。根據區塊鏈生態系統的不同,這些單向功能會有所不同。

例如,最流行的區塊鏈系統使用基於橢圓曲線的代數構造來生成它們的公鑰。與這些特徵無關,結果始終是確定的:公鑰對於其對應的私鑰是唯一的,並且私鑰總是生成相同的公鑰。

雖然像比特幣或以太坊這樣的流行區塊鏈使用 ECDSA 上橢圓曲線 secp256k1 的固定點乘以私鑰來獲得其公鑰,但其他區塊鏈專案使用不同的策略。例如,門羅使用的是 EdDSA 演算法和 Curve25519 曲線,Polkadot 和 Substrate 使用的是 sr25519 演算法和 Ed25519 曲線。所有這些區塊鏈都基於 1 到 2256-1 範圍內的私鑰生成公鑰。

區塊鏈地址還使用單向函式,稱為雜湊函式。比特幣和以太坊地址是透過公鑰上的一個或多個加密強雜湊函式建立的,此外,還根據特定的區塊鏈建立特定的數學運算。

由於這些雜湊函式的運作方式,你絕對可以相信你的公鑰和私鑰對應的區塊鏈地址是唯一的。

以太坊帳戶是公鑰的 Keccak-256 雜湊值,此外還獲取此類計算的最右邊的 20 個位元組。比特幣私鑰使用 SHA-256 和 RIPEMD-160,而 Polkadot 和 ZCash 使用 Blake2b。所有這些雜湊函式都是抗碰撞的,降低了從兩個公鑰生成相同帳戶的可能性,並確保從輸入重新生成帳戶的唯一方法是透過經濟低效的暴力手段。我們不能保證這些雜湊函式不會被破解,但是迄今為止,還沒有任何區塊鏈使用的雜湊函式已被證明遭到破解。

學點數學就能保守秘密

私鑰背後的密碼學和數學是我們的加密資產安全的原因,只要我們保持私鑰的安全。迄今為止,還沒有人可以透過暴力破解方式找到與你的區塊鏈地址對應的私鑰,因為這需要消耗的能量比太陽儲存的能量都多。

影片連結:https://www.youtube.com/watch?v=S9JGmA5_unY

在下篇中,我們將介紹流行的區塊鏈生態系統以及公鑰生成背後的一些數學原理。

我們將提供一些程式碼示例,讓您嘗試從每個區塊鏈描述的過程中計算金鑰,並使用一些程式碼庫來讓生成過程變得更加簡單。

End

非常感謝您對 IPFS&Filecoin 專案的持續支援。我們很高興繼續與您一起,為人類資訊建立一個強大的,去中心化和高效的基礎。

FilCloud 幫你迅速瞭解 IPFS 領域的熱點技術和應用公眾號:filcloud

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读