欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > 比特幣的私鑰轉(zhuǎn)碼與使用

一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用

2021-12-13 17:06:23 | 來源: | 作者:佚名
這篇文章主要介紹了一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用的相關(guān)資料,希望這篇關(guān)于一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用的文章,能夠幫助到各位朋友對比特幣私鑰的有一個(gè)深入地了解。

凡是關(guān)心自己的比特幣財(cái)產(chǎn)安全的人都應(yīng)該試著理解下圖:

一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用

數(shù)字

如果你完全理解二進(jìn)制、十進(jìn)制和十六進(jìn)制,可以跳過這部分。

十進(jìn)制指每一位數(shù)都有 10 種可能(0、1、2、3、4、5、6、7、8 或 9)。數(shù)字 “6.15” 有 3 位數(shù)(順帶一提,6.15 這個(gè)數(shù)字是有特殊含義的,即,每個(gè)人都應(yīng)該努力擁有 6.15 個(gè)比特幣)。第一個(gè)數(shù)是 “6”,第二個(gè)數(shù)是 “1”,第三個(gè)數(shù)是 “5”。這三個(gè)數(shù)可以是 0、1、2、3、4、5、6、7、8、9 中的任何一個(gè)。

在十進(jìn)制中,我們從 “0” 數(shù)到 “9”(0、1、2、3、4、5、6、7、8、9)就沒有新的數(shù)了,接下來就要在左邊新增一位 “1”(即,逢十進(jìn)一),得到 “10”,然后再從 “0” 開始數(shù)起 —— 原先的 “9” 進(jìn)了一位,十位數(shù)變成了 “1”,個(gè)位數(shù)變成了 “0”。

二進(jìn)制指每一位數(shù)只有兩種可能(“0” 和 “1”)。

在二進(jìn)制中,我們從 “0” 數(shù)起,然后是 “1” ,接著就是 “10”!看見沒?如果你覺得跨度很大,那是因?yàn)槟氵€沒有跳出十進(jìn)制思維。

在十進(jìn)制中,“10” 就是普通人的手指數(shù)量 —— 因?yàn)槲覀冇?10 個(gè)手指,所以我們?nèi)祟惓S?10 進(jìn)制。

但是,在二進(jìn)制中,“10” 就是一個(gè)人的大拇指的數(shù)量。想象一下用你的大拇指數(shù)數(shù):1、10、11、100、101、111、1000、1001…… (譯者注:這幾個(gè)數(shù)字換算成十進(jìn)制就是 1、2、3、4 ……)

如果這是你第一次了解二進(jìn)制,可以用紙和筆自己算一下,可能會有幫助。這就像是第一次學(xué)習(xí)數(shù)數(shù)那樣,而且還不能靠直覺。

十六進(jìn)制指每一位數(shù)有 16 種可能(0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f)。其中,a=10、b=11、c=12、d=13、e=14 和 f=15。

就像撲克牌游戲一樣,Jack=11、Queen=12、King=13、Ace=14 或 1。一個(gè)字母可以代表一個(gè)數(shù)字,這就是關(guān)鍵。

每一位數(shù)的可能性越多,表達(dá)一個(gè)大數(shù)字所用的位數(shù)就越少。例如,十進(jìn)制下的 2047 ,寫成二進(jìn)制就是 11111111111(11 位數(shù)),寫成十六進(jìn)制就是 7FF。

總結(jié):

一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用

隨機(jī)二進(jìn)制數(shù)、校驗(yàn)和、私鑰

私鑰首先是一個(gè)二進(jìn)制數(shù),可以轉(zhuǎn)換成其它形式。但是,私鑰本質(zhì)上是二進(jìn)制數(shù),因?yàn)樗菫榱私o計(jì)算機(jī)使用的。下面是二進(jìn)制私鑰的一個(gè)例子:

01000011111 10101110110 01001000001 01001101000 10000100011 10001011011 00100110111 11010000011 11001000001 10111110010 00010101000 00101110110 01100001101 11000010011 01101111001 11001010111 10011010000 01001110000 01000010010 00001110011 10011110101 11000110011 10101101110 00100111111

請注意,這個(gè)私鑰由 24 組數(shù)字組成,每 11 個(gè)數(shù)字為一組,共計(jì) 264 個(gè)二進(jìn)制數(shù)字(24×11=264)。

計(jì)算機(jī)看到的私鑰雖然是同一串?dāng)?shù)字,但是沒有空格:

010000111111010111011001001000001010011010001000010001110001011011001001101111101000001111001000001101111100100001010100000101110110011000011011100001001101101111001110010101111001101000001001110000010000100100000111001110011110101110001100111010110111000100111111

這是個(gè)很大的數(shù)字,寫成十進(jìn)制就是:

7,869,270,257,961,728,227,967,109,454,183,816,220,476,881,432,001,550,169,555,390,346,110,510,455,025,983

請注意這兩個(gè)數(shù)的值是一樣的,區(qū)別只在于十進(jìn)制寫起來更短。

總之,私鑰有一部分是隨機(jī)生成的,而最后 8 位(叫作校驗(yàn)和(checksum))是以前面的隨機(jī)部分作為輸入通過一個(gè)公式計(jì)算得出的。這是一種(軟件錢包共同認(rèn)可的)工程設(shè)計(jì):如果數(shù)據(jù)輸入不正確,計(jì)算機(jī)就會發(fā)現(xiàn)校驗(yàn)和與輸入數(shù)據(jù)不匹配,并警告用戶。錢包會提示 “抱歉,您的輸入可能有誤” 。當(dāng)然,用戶可以強(qiáng)行選擇繼續(xù)。校驗(yàn)和并非比特幣代碼的一部分,是為了保障用戶安全而引入的。

換言之……從數(shù)學(xué)設(shè)計(jì)上來講,在創(chuàng)建私鑰時(shí),下面這個(gè)隨機(jī)部分……

01000011111 10101110110 01001000001 01001101000 10000100011 10001011011 00100110111 11010000011 11001000001 10111110010 00010101000 00101110110 01100001101 11000010011 01101111001 11001010111 10011010000 01001110000 01000010010 00001110011 10011110101 11000110011 10101101110 001

只會生成下面這個(gè)校驗(yàn)和……

00111111

把二者結(jié)合起來就得到了最終的私鑰。點(diǎn)擊此處,了解私鑰是怎么來的,以及校驗(yàn)和是如何計(jì)算的。請注意,8 位數(shù)的校驗(yàn)和與末尾 3 個(gè)隨機(jī)數(shù)字組合起來剛好是一組 11 位數(shù)字,與其它幾組一樣(在 BIP39 標(biāo)準(zhǔn)下,一個(gè)單詞需要 11 位數(shù)表達(dá),詳見下文)。

不同的 隨機(jī) 二進(jìn)制數(shù)會產(chǎn)生不同的校驗(yàn)和。假設(shè)用戶在錢包里輸入私鑰,并聲稱 “這是我之前生成的私鑰,請顯示我的地址”,只要有一位數(shù)字錯(cuò)誤,軟件錢包都會發(fā)現(xiàn)并發(fā)出警告。

請?jiān)徫矣行﹩?,但是掌握這些背景知識真的很重要。

私鑰轉(zhuǎn)換

人類很難準(zhǔn)確記錄下一個(gè)二進(jìn)制私鑰并將其輸入軟件錢包。一旦發(fā)生錯(cuò)誤,就有可能導(dǎo)致比特幣丟失。手寫無法使用校驗(yàn)和來檢查錯(cuò)誤,只有輸入計(jì)算機(jī)才可以。

一種解決方案是將二進(jìn)制數(shù)轉(zhuǎn)化成十進(jìn)制數(shù),讓私鑰變得更短、更好記。

假設(shè)一個(gè)二進(jìn)制數(shù)被切分成每 11 個(gè)數(shù)字一組,則每一組數(shù)最多可以表示 2048 個(gè)十進(jìn)制數(shù)(可表示的十進(jìn)制數(shù)范圍是 “0” 至 “2047”)。“0” 至 “2047” 轉(zhuǎn)化成二進(jìn)制就是 “00000000000” 至 “11111111111”。

我們可以將這個(gè)私鑰轉(zhuǎn)換成 24 組十進(jìn)制數(shù),每組十進(jìn)制數(shù)的范圍是 “0” 至 “2047”。這樣寫起來容易,但還是容易出錯(cuò)。

BIP39 可以有效化解這一風(fēng)險(xiǎn)。這個(gè)協(xié)議建議比特幣用戶使用一列由協(xié)議定義過的單詞表,我猜測這些單詞是經(jīng)過精挑細(xì)選的,以防被誤讀成其它單詞。

BIP 39 單詞表共包含 2048 個(gè)單詞,按照字母順序排列。點(diǎn)擊此處,查看列表。除了英文版,還有其它語言版本。每個(gè)單詞都代表 “0” 至 “2047” 之間的某個(gè)數(shù)字。這樣一來,私鑰中的每個(gè)十進(jìn)制數(shù)都可以被寫成一個(gè)單詞。數(shù)字和所對應(yīng)的單詞之間有什么特殊聯(lián)系嗎?沒有,這只是由協(xié)議定義的,只要我們都使用這個(gè)協(xié)議,那么單詞與數(shù)字之間就可以畫上等號。

這就是助記詞(seed words)的由來。你在軟件錢包中輸入助記詞后,每個(gè)單詞都會轉(zhuǎn)化成 11 個(gè)二進(jìn)制位,將它們組合起來就會形成一個(gè) 264 位的二進(jìn)制數(shù),也就是私鑰(還記得嗎?最后一個(gè)單詞包含校驗(yàn)和,因此不是隨機(jī)的)。如果是由 12 個(gè)單詞組成的助記詞,私鑰的長度只有一半,也就是 132 位。

遺憾的是,原始的 BIP 39 單詞表存儲在 GitHub 內(nèi),代表的十進(jìn)制數(shù)范圍是 “1” 至 “2048”,而非 “0” 至 “2047”。這只是 Github 格式的問題,而非有意設(shè)計(jì)成如此。

為了清楚地說明這個(gè)問題,我們來舉個(gè)例子。假設(shè)某個(gè)私鑰的開頭是 11 個(gè) “0”,例如 “00000000000”,那么我們要用單詞表上的第一個(gè)單詞來表示這個(gè)二進(jìn)制數(shù)。第一個(gè)單詞是 “abandon”,表示的是 “00000000000”,但是被標(biāo)記成了 “1”。這是不對的。十進(jìn)制數(shù) “1” 轉(zhuǎn)化成二進(jìn)制是 “00000000001”,這不是我們想要的。但是,由于格式的問題,單詞表上所有單詞的序號都比它們實(shí)際代表的十進(jìn)制數(shù)大了 “1”。

我們還可以通過拋硬幣來生成二進(jìn)制數(shù)。計(jì)算機(jī)可以幫助我們獲得使用斜體表示的最后 8 位數(shù):

0100001111110101110110010010000010100110100010000100011100010110110010011011111010000011110010000011011111001000010101000001011101100110000110111000010011011011110011100101011110011010000010011100000100001001000001110011100111101011100011001110101101110001*00111111*

我們首先要做的,是將這個(gè)二進(jìn)制數(shù)按照每 11 個(gè)數(shù)為一組進(jìn)行切分:

01000011111 10101110110 01001000001 01001101000 10000100011 10001011011 00100110111 11010000011 11001000001 10111110010 00010101000 00101110110 01100001101 11000010011 01101111001 11001010111 10011010000 01001110000 01000010010 00001110011 10011110101 11000110011 10101101110 00100111111

接下來,我們將每一組數(shù)轉(zhuǎn)化成十進(jìn)制數(shù):

543, 1398, 577, 616, 1059, 1115, 311, 1667, 1601, 1522, 168, 374, 781, 1555, 889, 1623, 1232, 624, 530, 115, 1269, 1587, 1390, 319

然后,我們查詢這些十進(jìn)制數(shù)在單詞表上對應(yīng)的單詞:

一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用

考考你:十進(jìn)制數(shù) 543 對應(yīng)的是哪個(gè)單詞?Dry、duck 還是 dumb?

上圖是從 Github 上截取的,因此這張單詞表的序號是從 “1” 開始的。因此,每個(gè)序號都減去 “1” 之后才是每個(gè)單詞真正對應(yīng)的十進(jìn)制數(shù)。 因此,序號 544 的單詞 dumb 實(shí)際上代表的是 “543”,也就是我們要找的那個(gè)單詞。

第二個(gè)數(shù)是 1398,對應(yīng)的是單詞表上序號為 1399 的單詞。

全部轉(zhuǎn)化為單詞后就是:

dumb put else escape love merge cheap spare sight salad bench conduct giant second hundred slab old evoke drastic attack pact shoe punch child

請注意,所有單詞都是按字母排序的,首字母越靠前的單詞代表的數(shù)字越小,首字母越靠后的單詞代表的數(shù)字越大。當(dāng)你明白這些單詞的排序規(guī)律之后,可以明顯看出這點(diǎn)。

擴(kuò)展私鑰

再來看下面這張圖:

一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用

擴(kuò)展私鑰是使用二進(jìn)制私鑰以及密語(passphrase)和衍生路徑(derivation path),根據(jù)你我都沒必要知道的數(shù)學(xué)公式計(jì)算得出的。

請注意增加密語是如何徹底改變下游擴(kuò)展私鑰的。修改衍生路徑也會改變下游數(shù)據(jù)。不要小看了你的軟件錢包提供的默認(rèn)衍生路徑,請務(wù)必把它寫下來保存好。我會另外寫一篇文章來詳細(xì)介紹衍生路徑。

擴(kuò)展私鑰最終用來生成一個(gè)錢包中的所有比特幣地址,而且可以花費(fèi)這些地址上的比特幣。如上圖所示,擴(kuò)展私鑰可以生成多個(gè)獨(dú)立私鑰(不是擴(kuò)展私鑰,而是普通的私鑰),每個(gè)私鑰會生成獨(dú)立的公鑰,每個(gè)公鑰又會生成一個(gè)地址。

擴(kuò)展私鑰還可以用來生成接下來要詳細(xì)討論的擴(kuò)展公鑰。

我們無法根據(jù)單個(gè)獨(dú)立私鑰倒推出擴(kuò)展私鑰。這是我個(gè)人的理解,但是我不是密碼學(xué)專家,因此不能確定,不過這么想很合理。但是,每個(gè)獨(dú)立私鑰有可能指向后一個(gè)獨(dú)立私鑰,當(dāng)然這點(diǎn)我也不確定。因此,為確保萬無一失,別向任何人泄漏你的任何一個(gè)私鑰。

可以確定的是,任何一個(gè)公鑰都不會泄漏其對應(yīng)的私鑰。明白這一點(diǎn)很重要。

我在 https://iancoleman.io/bip39/ 上生成了一個(gè)測試錢包。這個(gè)網(wǎng)站是練習(xí)生成虛擬錢包的好地方(千萬別在聯(lián)網(wǎng)的電腦上使用這種方式生成真的錢包)。

擴(kuò)展私鑰如下所示:

一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用

請注意,上圖顯示的是 “賬戶” 擴(kuò)展私鑰。我不知道這個(gè)網(wǎng)站為什么要這么標(biāo)記。

再來看這個(gè)擴(kuò)展私鑰的開頭是 “x”。這意味著使用這個(gè)私鑰將生成以 “1” 開頭的傳統(tǒng)地址。傳統(tǒng)地址也叫作 P2PKH(pay to public key hash,支付到公鑰哈希值)地址。

使用以 “y” 開頭的私鑰(或公鑰)會生成以 “3” 開頭的地址。這些地址也叫作 P2SH(Pay to script hash,支付到腳本哈希值)地址。

使用以 “z” 開頭的私鑰會生成原生的 segwit/Bech32 地址。這類地址以 “bc1q” 開頭。

最后,以大寫字母 “X”、“Y” 或 “Z” 開頭的私鑰會生成多簽錢包的地址。

擴(kuò)展公鑰

擴(kuò)展公鑰的用途不是很明顯。如果你仔細(xì)看示意圖的底部,你會發(fā)現(xiàn)使用擴(kuò)展公鑰通過錢包軟件生成的比特幣地址與使用擴(kuò)展私鑰生成的一樣,而且地址順序相同。使用擴(kuò)展公鑰和擴(kuò)展私鑰生成的錢包看起來完全一樣。那么區(qū)別在哪兒呢?

使用擴(kuò)展私鑰生成的錢包能夠進(jìn)行支付。

使用公鑰生成的錢包無法進(jìn)行支付。這種錢包通常被稱為 “觀察” 錢包。你可以將這個(gè)錢包放在安全性低的計(jì)算機(jī)上,不用擔(dān)心會丟失私鑰,但可以用來查看你的錢包余額,或是復(fù)制地址發(fā)送給其他人。

但你還是應(yīng)該注意保護(hù)好自己的擴(kuò)展公鑰。一旦泄漏,其他人就可以通過訪問你的擴(kuò)展公鑰來查詢你的錢包余額和你的所有地址。從今往后,他們都可以查詢你的錢包余額,就好像查詢你的銀行賬單一樣。

保護(hù)好你的金融隱私,更要保護(hù)好你的金融密鑰(比特幣私鑰)。

注:擴(kuò)展公鑰如下圖所示:

一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用

如上圖所示,公鑰不是以 “xprv” 開頭,而是以 “xpub” 開頭,另外也可以 “ypub”、“zpub”、“Xpub”、 “Ypub” 和 “Zpub” 開頭。(大寫指的是多簽私鑰。)

總結(jié)

我希望這篇文章能幫助你理解比特幣的公鑰和私鑰,進(jìn)而讓你更容易理解比特幣的運(yùn)作原理。

如果你有任何問題,請聯(lián)系我,或閱讀我的輔導(dǎo)材料。

讀懂了這篇文章會讓你更容易理解如何通過擲骰子的方式生成助記詞,多簽錢包的生成以及 PGP 加密。

補(bǔ)充閱讀

點(diǎn)擊此處,了解什么是衍生路徑。

以上就是一文讀懂比特幣的私鑰轉(zhuǎn)碼與使用的詳細(xì)內(nèi)容,更多關(guān)于比特幣的私鑰轉(zhuǎn)碼與使用的資料請關(guān)注腳本之家其它相關(guān)文章!

聲明:文章內(nèi)容不代表本站觀點(diǎn)及立場,不構(gòu)成本平臺任何投資建議。本文內(nèi)容僅供參考,風(fēng)險(xiǎn)自擔(dān)!

你可能感興趣的文章

幣圈快訊

  • 今日恐慌與貪婪指數(shù)為52,等級為中性

    2025-06-15 06:57
    金色財(cái)經(jīng)報(bào)道,今日恐慌與貪婪指數(shù)為52,等級為中性。注:恐慌指數(shù)閾值為0-100,包含指標(biāo):波動(dòng)性(25%)+市場交易量(25%)+社交媒體熱度(15%)+市場調(diào)查(15%)+比特幣在整個(gè)市場中的比例(10%)+谷歌熱詞分析(10%)。
  • 日本政府:已與美國溝通,探討達(dá)成貿(mào)易協(xié)議的可能性

    2025-06-15 06:53
    金色財(cái)經(jīng)報(bào)道,日本政府:經(jīng)濟(jì)再生大臣赤澤亮正與美國商務(wù)部長盧特尼克進(jìn)行了深入會談,探討了達(dá)成貿(mào)易協(xié)議的可能性。(金十)
  • 薩爾瓦多加密匯款第一季度同比下降45%,為1600萬美元

    2025-06-15 06:32
    金色財(cái)經(jīng)報(bào)道,由于波動(dòng)性和國家支持減少,薩爾瓦多的加密匯款在2025年第一季度同比下降45%至1600萬美元。
  • 加納銀行將YellowCardAffiliate和Hanypay列為未經(jīng)授權(quán)實(shí)體

    2025-06-15 06:11
    金色財(cái)經(jīng)報(bào)道,加納銀行(BoG)已向公眾、金融機(jī)構(gòu)及所有相關(guān)利益相關(guān)方發(fā)出警告,提醒他們注意與兩家數(shù)字支付平臺——YellowCard的關(guān)聯(lián)公司Yellowpay和Hanypay——的合作。央行在6月11日發(fā)布的通知中指出,這兩家實(shí)體在加納管轄范圍內(nèi)運(yùn)營,但未獲得必要的許可和批準(zhǔn),所有利益相關(guān)方立即停止與YellowCard和HanypayGhana的合作。
  • 德國與加密貨幣相關(guān)的反洗錢活動(dòng)2024年增加了8%

    2025-06-15 05:43
    金色財(cái)經(jīng)報(bào)道,根據(jù)德國金融情報(bào)機(jī)構(gòu)(FIU)的年度報(bào)告,2024年德國涉及加密貨幣的反洗錢報(bào)告增加了8.2%。與加密貨幣相關(guān)的報(bào)告總數(shù)從2023年的8,049份攀升至8,711份,占提交給德國負(fù)責(zé)打擊洗錢的機(jī)構(gòu)金融情報(bào)機(jī)構(gòu)(FIU)的所有可疑活動(dòng)報(bào)告(SAR)的3.3%,創(chuàng)歷史新高。這一總數(shù)標(biāo)志著自2020年以來增長了23.6%,其中比特幣在去年的絕大多數(shù)報(bào)告中占據(jù)主導(dǎo)地位,其次是以太坊、XRP、Tether和萊特幣。
  • 查看更多