當前位置:首頁 » 比特幣問答 » 比特幣地址的形成過程

比特幣地址的形成過程

發布時間: 2023-03-08 17:08:49

① 4. 比特幣的密鑰、地址和錢包 - 精通比特幣筆記

比特幣的所有權是通過密鑰、比特幣地址和數字簽名共同確定的。密鑰不存在於比特幣網路中,而是用戶自己保存,或者利用管理私鑰的軟體-錢包來生成及管理。

比特幣的交易必須有有效簽名才會被存儲在區塊中,因此擁有密鑰就擁有對應賬戶中的比特幣。密鑰都是成對出現的,由一個公鑰和一個私鑰組成。公鑰相當於銀行賬號,私鑰就相當於銀行卡密碼。通常情況下密鑰由錢包軟體管理,用戶不直接使用密鑰。

比特幣地址通常是由公鑰計算得來,也可以由比特幣腳本得來。

比特幣私鑰通常是數字,由比特幣系統隨機( 因為演算法的可靠性與隨機性正相關,所以隨機性必須是真隨機,不是偽隨機,因此比特幣系統可以作為隨機源來使用 )生成,然後將私鑰作為輸入,使用橢圓曲線演算法這個單向加密函數生成對應的公鑰,再將公鑰作為輸入,使用單向加密哈希函數生成地址。例如,通過公鑰K得到地址A的計算方式為:

其中SHA256和PIPEMD160被稱為雙哈希或者HASH160,Base58Check是帶有驗證功能的Base58編碼,驗證方式為先計算原始數據(編碼前)的驗證碼,再比較編碼後數據的驗證碼,相同則地址有效,否則無效。而在使用Base58Check編碼前,需要對數據做處理。
處理方式為: 版本前綴 + 雙哈希後的數據 + 校驗碼
其中版本前綴是自定義的,如比特幣私鑰的前綴是0x80,校驗碼是把版本前綴和雙哈希後的數據拼接起來,進行兩次SHA256計算,取前4位元組。得到處理的數據後,再進行Base58編碼,得到最終的結果。

下圖是Base58Check版本前綴和Base58編碼後的結果

密鑰可以採用不同的編碼格式,得到的編碼後結果雖然不同,但密鑰本身沒有任何變化,採用哪種編碼格式,就看情況而論了,最終目的都是方便人們准確無誤的使用和識別密鑰。
下圖是相同私鑰採用不同編碼方式的結果:

公鑰也有很多種格式,不過最重要的是公鑰被分為壓縮格式和非壓縮格式,帶04前綴的公鑰為非壓縮格式的公鑰,而03,02開頭的標識壓縮格式的公鑰。

前面說過,公鑰是橢圓曲線上的一個點,由一對坐標(x, y)表示,再加上前綴,公鑰可以表示為:前綴 x y。
比如一個公鑰的坐標為:

以非壓縮格式為例,公鑰為(略長):

壓縮格式的公鑰可以節省一定的存儲,對於每天成千上萬的比特幣交易記錄來說,這一點點的節省能起到很大效果。

因為橢圓曲線實際上是一個方程(y2 mod p = (x3 + 7)mod P, y2是y的平方,x3是x的立方),而公鑰是橢圓曲線上的一個點,那麼公鑰即為方程的一個解,如果公鑰中只保留x,那麼可以通過解方程得到y,而壓縮公鑰格式有兩個前綴是因為對y2開方,會得到正負兩個解,在素數p階的有限域上使用二進制算術計算橢圓曲線的時候,y坐標或奇或偶,所以用02表示y為奇數,03表示y為偶數。

所以壓縮格式的公鑰可以表示為:前綴x
以上述公鑰的坐標為准,y為奇數為例,公鑰K為:

不知道大家發現沒有,這種壓縮方式存在一個問題,即一個私鑰可以得出兩個公鑰,壓縮和非壓縮公鑰,而這兩個公鑰都對應同一個私鑰,都合法,但生成的比特幣地址卻不相同,這就涉及到錢包軟體的實現方式,是使用壓縮公鑰還是非壓縮公鑰,或者二者皆用,這個問題後面來介紹。

比特幣錢包最主要的功能就是替用戶保管比特幣私鑰,比特幣錢包有很多種,比如非確定性(隨機)錢包,確定性(種子)錢包。所謂的非確定性是指錢包運行時會生成足夠的私鑰(比如100個私鑰),每個私鑰僅會使用一次,這樣私鑰管理就很麻煩。確定性錢包擁有一個公共種子,單向離散方程使用種子生成私鑰,種子足夠回收所有私鑰,所以在錢包創建時,簡單備份下,就可以在錢包之間轉移輸入。

這里要特別介紹下助記碼詞彙。助記碼詞彙是英文單詞序列,在BIP0039中提出。這些序列對應著錢包中的種子,種子可以生成隨機數,隨機數生成私鑰,私鑰生成公鑰,便有了你需要的一切。所以單詞的順序就是錢包的備份,通過助記碼詞彙能重建錢包,這比記下一串隨機數要強的多。

BIP0039定義助記碼和種子的創建過程如下:

另外一種重要的錢包叫做HD錢包。HD錢包提供了隨機(不確定性) 鑰匙有兩個主要的優勢。
第一,樹狀結構可以被用來表達額外的組織含義。比如當一個特定分支的子密鑰被用來接收交易收入並且有另一個分支的子密鑰用來負責支付花費。不同分支的密鑰都可以被用在企業環境中,這就可以支配不同的分支部門,子公司,具體功能以及會計類別。
第二,它可以允許讓使用者去建立一個公共密鑰的序列而不需要訪問相對應的私鑰。這可允許HD錢包在不安全的伺服器中使用或者在每筆交易中發行不同的公共鑰匙。公共鑰匙不需要被預先載入或者提前衍生,但是在伺服器中不具有可用來支付的私鑰。

BIP0038提出了一個通用標准,使用一個口令加密私鑰並使用Base58Check對加密的私鑰進行編碼,這樣加密的私鑰就可以安全地保存在備份介質里,安全地在錢包間傳輸,保持密鑰在任何可能被暴露情況下的安全性。這個加密標准使用了AES,這個標准由NIST建立,並廣泛應用於商業和軍事應用的數據加密。

BIP0038加密方案是: 輸入一個比特幣私鑰,通常使用WIF編碼過,base58chek字元串的前綴「5」。此外BIP0038加密方案需要一個長密碼作為口令,通常由多個單詞或一段復雜的數字字母字元串組成。BIP0038加密方案的結果是一個由base58check編碼過的加密私鑰,前綴為6P。如果你看到一個6P開頭的的密鑰,這就意味著該密鑰是被加密過,並需個口令來轉換(解碼) 該密鑰回到可被用在任何錢包WIF格式的私鑰(前綴為5)。許多錢包APP現在能夠識別BIP0038加密過的私鑰,會要求用戶提供口令解碼並導入密鑰。

最通常使用BIP0038加密的密鑰用例是紙錢包一一張紙張上備份私鑰。只要用戶選擇了強口令,使用BIP0038加密的私鑰的紙錢包就無比的安全,這也是一種很棒的比特幣離線存儲方式(也被稱作「冷存儲」)。

P2SH函數最常見的實現時用於多重簽名地址腳本。顧名思義,底層腳本需要多個簽名來證明所有權,然後才能消費資金。這類似在銀行開設一個聯合賬戶。

你可以通過計算,生成特殊的比特幣地址,例如我需要一個Hello開頭的地址,你可以通過腳本來生成這樣一個地址。但是每增加一個字元,計算量會增加58倍,超過7個字元,需要專門的硬體或者礦機來生成,如果是8~10個字元,那麼計算量將無法想像。

② 比特幣礦池錢包地址怎麼來的

錢包地址沒有海外海內之分。
比特幣礦池的錢包地址是做礦池的人生成的。你自己也可以運行程序,生成地址。

③ 【區塊鏈】什麼是比特幣地址

比特幣地址是一串由字母和數字組成的26位到34位字元串,看起來有些像亂碼。但它就是你個人的比特幣賬戶,相當於你的銀行卡卡號,任何人都可以通過你的比特幣地址給你轉賬比特幣。

它與比特幣私鑰不同,不會因為信息泄露而造成比特幣丟失,因此你可以將比特幣地址放心的告訴任何人。

通過區塊鏈瀏覽器可以查看每個比特幣地址所有的轉賬交易記錄。

常用的比特幣區塊鏈瀏覽器有:
https://btc.com/block
https://www.blockchain.com/zh-cn/explorer

我們常用的比特幣地址格式一般有如下四種。

1、BASE58格式
BASE58格式是人們常見的比特幣地址格式,一般由1開頭的。

例如:

2、HASH160格式
HASH160格式為RIPEMD160演算法對130位公鑰的SHA256簽名進行計算得出的結果 。

例如:

3、WIF壓縮格式
WIF壓縮格式即錢包輸入格式,是將BASE58格式進行壓縮後的結果130位公鑰格式 這是最原始的由ECDSA演算法計算出來的比特幣公鑰。

例如:

4、60位公鑰格式
60位公鑰格式即130位公鑰進行壓縮後得出的結果。

例如:

比特幣是建立在數學加密學基礎上的,中本聰大神用了橢圓加密演算法(ECDSA)來產生比特幣的私鑰和公鑰。

由私鑰是可以計算出公鑰的,公鑰的值經過一系列數字簽名運算會得到比特幣地址。

比特幣地址是由演算法隨機生成,那麼就會有人問,既然都是隨機生成的,那麼比特幣的地址會不會重復呢?關於這個問題,想必就更不用擔心。

因為比特幣的私鑰長度是256位的二進制串,那麼隨機生成的兩個私鑰正好重復的的概率是2 ^ 256 ≈ 10 ^ 77之一,這個數字大到你根本無法想像,比中彩票的概率還要小好多;所以不用擔心的啦,每個人的比特幣地址都是獨一無二的。

④ 比特幣錢包地址是如何得到的不是比特幣地址而是錢包地址!

首先,你應該在大腦中想像出一個「錢包」的概念。你的bitcoin都放在你的「錢包」中一個錢包可以包含很多很多......很多個地址。地址的形式就是形如。

利用比特幣錢包中生成的比特幣地址你可以接收來自他人的比特幣,你也可以將你帳戶上的比特幣轉到他人的比特幣地址上面。比特幣地址就像銀行卡號一樣,具有支付、轉賬、提現功能,但在轉賬時,你只有知道別人的比特幣地址才能進行比特幣轉賬。

如果我們把比特幣錢包簡單比作成銀行卡賬戶的話,那麼比特幣錢包地址就可以看成是銀行卡賬號。不同的是,比特幣地址是可以不存儲在網路上的,更是可以獨立於你的錢包而存在的。

(4)比特幣地址的形成過程擴展閱讀:

比特幣地址是一串由26位到34位字母和數字字元串組成的。看上去像一堆亂碼一樣,說白了這個就像你的銀行卡卡號一樣。通過區塊鏈查可以查每個比特幣地址的所有轉賬記錄,公開透明。

比特幣錢包地址生成:通過隨機選出256位二進制數字,形成私鑰,然後通過加密函數來生成地址。這個生成方向是單向的。也就是你知道了地址是無法通過解密方法來計算出私鑰的。就目前的人類計算機運算能力無法破解,你可以很放心地把地址公布到網上。

參考鏈接:比特幣|網路

⑤ 提幣地址什麼意思怎麼添寫

提幣地址是用來接收數字貨幣資產的。這個地址非常的特殊,由34位字母和字元串組成。值得注意的是,提幣地址一種是注冊區塊鏈錢包時生成的,一種是交易所為用戶自動生成的。
在用戶想把幣提出去時,需要填寫提幣地址,按照提幣步驟、根據提醒來填寫就行了。 數字貨幣常見的有比特幣、萊特幣、狗狗幣等,以上數字貨幣是一種不受管制的、數字化的貨幣,通常由開發者發行和管理,被特定虛擬社區的成員所接受和使用。可以按照一定的比率與真實貨幣進行兌換、贖回。
比特幣只有2100萬個,在2008年11月1日提出,並於2009年1月3日正式誕生,需要通過大量的計算產生,支持全世界7*24小時交易,不過國內不能進行比特幣的買賣,同時比特幣的價格受到多種因素的影響,波動范圍非常大。
萊特幣,外文名為Litecoin,簡稱LTC,採用的是一種「點對點」技術的網路貨幣,通過它可以幫助用戶付款給世界上任何一個人。由一名曾任職於谷歌的程序員設計並編程實現 , 2011年11月9日發布運行。比特幣提幣地址其實相當於比特幣錢包地址,如果我們把比特幣錢包簡單比作成銀行卡賬戶的話,那麼比特幣錢包地址就可以看成是銀行卡賬號。不同的是,比特幣地址是可以不存儲在網路上的,更是可以獨立於你的錢包而存在的。
拓展資料:
比特幣提幣地址通過隨機選出256位二進制數字,形成私鑰,然後通過加密函數來生成地址。這個生成方向是單向的。也就是你知道了地址是無法通過解密方法來計算出私鑰的。就目前的人類計算機運算能力無法破解,你可以很放心地把地址公布到網上。
它的生成過程本質上是計算一個隨機數。簡單舉個例子,通過拋硬幣將正面向上計為0,反面向上計為1,連續拋256次,就隨機得到一個256位的二進制數字。這個數字就是私鑰。
這個隨機性有多隨機呢?全世界的人隨便怎麼拋,被拋出兩個相同的256位二進制數字的概率無限接近零,就是不可能出現相同。

⑥ 比特幣的地址、公鑰、私鑰,你都了解了嗎

了解比特幣,就不可避免地要掌握什麼是比特幣的地址、公鑰、私鑰,下面我們一個一個來解釋。

地址,就好比是銀行賬(卡)號,在創建數字錢包後就會自動生成,簡單來說,就是創建錢包的時候,先產生一對私鑰和公鑰,然後公鑰通過一套演算法生成地址,這個地址實質上是一串字元,比如。

像銀行賬(卡)號可以用來收款一樣,比特幣地址也可以用來接收比特幣。

這個比特幣地址不單單給你轉幣的人知道,連整個比特幣網路的人都能查看,可以說,全球所有用戶的地址都可以被任何人知道。為什麼這樣說呢?因為比特幣本質就是一個大型的公開賬本,所有交易對所有人都是可見的。而交易記錄中包括了交易流水單號、發幣人的發幣地址、收幣人地址、發幣人的找零地址。

私鑰,可以看作是銀行密碼,是一串很長的由錢包生成的隨機數,比如, LBB9ZXMCJ。私鑰是唯一能夠證明你擁有的比特幣是屬於你的,也只有用私鑰才能轉賬、交易和使用數字錢包里的比特幣。

我們都知道了,銀行密碼絕對不能泄露給別人,私鑰也一樣,打死也不要告訴他人,否則你的比特幣很容易就被轉走。銀行的錢被盜了,因為有國家監管和第三方信用,還有可能被追回,但比特幣是去中心化的,沒有第三方,自己的幣只能自己負責看管,丟了,或被他人轉走了,就永遠拿不回來了。所以千萬千萬不要把私鑰告訴他人,不要把私鑰保存在手機或者電腦上,不要通過網路傳輸你的私鑰,那怎麼辦?記住了,要用筆寫在紙上,寫兩到三份分別放在不同的地方,保管好。

公鑰,顧名思義,是可以公開的,也是像地址和私鑰一樣,是一串長長的字元。公鑰由私鑰通過橢圓曲線加密演算法生成,通過私鑰可以算出唯一一個公鑰,但公鑰不能逆向推導出私鑰。

那到底比特幣地址、公鑰、私鑰在交易中起什麼作用的呢?

首先,錢包通過加密演算法把私鑰加密成字元串(也叫作簽名),然後把這個字元串,和公鑰一起寫到交易信息里,再發給礦工。礦工收到信息後,就會將簽名、公鑰寫入一個驗證函數,如果得出的結果為「true」,那麼這個交易會被確認為真實有效,就能被驗證通過。而結果為「false」,則說明這筆交易存在問題,不能被驗證通過。

通過以上淺顯的文字,希望能幫到你對比特幣的地址、公鑰和私鑰有一個初步的了解吧!感謝你的閱讀!

⑦ 比特幣的地址是怎麼成成的

比特幣地址是由比特幣私鑰經過九道加密演算法生成的,具體來說用的是橢圓曲線加密演算法。
這其中的原理很復雜。如果你想多了解請谷歌:比特幣基礎

⑧ 離線生成的比特幣地址是如何避免沖突的

BTC的地址生成過程如下,完整的可以查一下比特幣中文維基:
比特幣地址的生成過程

(說明: 有些數字以"0x"開頭,意思是此數字使用十六進製表示法。"0x"本身沒有任何含義,它是C語言流傳下來的,約定俗成的寫法,比如0xA就是十進制的10。另外,1個位元組 = 8位二進制 = 2位十六進制)。

第一步,隨機選取一個32位元組的數、大小介於1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間,作為私鑰。


第二步,使用橢圓曲線加密演算法(ECDSA-secp256k1)計算私鑰所對應的非壓縮公鑰。 (共65位元組, 1位元組 0x04, 32位元組為x坐標,32位元組為y坐標)關於公鑰壓縮、非壓縮的問題另文說明。
第三步,計算公鑰的 SHA-256 哈希值


第四步,取上一步結果,計算 RIPEMD-160 哈希值


第五步,取上一步結果,前面加入地址版本號(比特幣主網版本號「0x00」)
00

第六步,取上一步結果,計算 SHA-256 哈希值


第七步,取上一步結果,再計算一下 SHA-256 哈希值(哈哈)


第八步,取上一步結果的前4個位元組(8位十六進制)
D61967F6

第九步,把這4個位元組加在第五步的結果後面,作為校驗(這就是比特幣地址的16進制形態)。
00D61967F6

第十步,用base58表示法變換一下地址(這就是最常見的比特幣地址形態)。

⑨ 比特幣是怎樣產生的

比特幣(Bitcoin)的概念最初由中本聰在2008年11月1日提出,並於2009年1月3日正式誕生 。根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的虛擬的加密數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。

比特幣網路通過「挖礦」來生成新的比特幣。所謂「挖礦」實質上是用計算機解決一項復雜的數學問題,來保證比特幣網路分布式記賬系統的一致性。比特幣網路會自動調整數學問題的難度,讓整個網路約每10分鍾得到一個合格答案。隨後比特幣網路會新生成一定量的比特幣作為區塊獎勵,獎勵獲得答案的人。

⑩ 我了解到生成比特幣地址的十個步驟, 求問:第一步生成私鑰是隨機生成呢,還是根據你的比特幣數量信息

礦工你好

熱點內容
備用usdt 發布:2025-06-17 20:27:42 瀏覽:288
比特幣與電子貨幣的區別 發布:2025-06-17 20:27:39 瀏覽:61
去寶安中心醫院坐地鐵幾號線到 發布:2025-06-17 20:14:20 瀏覽:12
以太n卡礦機用什麼主板 發布:2025-06-17 20:09:09 瀏覽:874
合約機剩餘話費怎麼查 發布:2025-06-17 19:59:18 瀏覽:734
比特幣多長時間了 發布:2025-06-17 19:58:27 瀏覽:986
為什麼要收usdt 發布:2025-06-17 19:58:26 瀏覽:391
李笑來600eth 發布:2025-06-17 19:52:29 瀏覽:884
我在算力蜂上的錢怎麼提出來 發布:2025-06-17 19:47:16 瀏覽:68
元宇宙中英論文 發布:2025-06-17 19:20:06 瀏覽:470