當前位置:首頁 » 比特幣問答 » 公匙和比特幣地址能否互換

公匙和比特幣地址能否互換

發布時間: 2024-03-16 16:28:24

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

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

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

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

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

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

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

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

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

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

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

⑵ 【貓說】打開比特幣錢包的兩把鑰匙:私鑰、公鑰

如果不了解區塊鏈,不知道公鑰、私鑰這些最基本的概念,擁有錢包對幣圈新人來講,就好像拿手指頭去捅鱷魚的腦袋,風險極高。此文謹獻給幣圈新朋友,幫助大家梳理比特幣錢包的基本常識。

區塊鏈觀察網在 《區塊鏈是什麼》 一文中提到過,在區塊鏈世界裡,每個人都擁有兩把獨一無二的虛擬鑰匙:公鑰和私鑰。

「公鑰」,可以簡單理解為銀行卡,這是可以發給交易對方看的,銀行卡號則相當於比特幣轉賬中要用到的「地址」。

講得專業一點,公鑰就是一個65位元組的字元串,多長呢?130個字母和數字堆在一起。公鑰太長的話,第一交易起來忒麻煩,第二幹嘛非得暴露公鑰的真實內容呢,這就好像把自己的銀行卡拿出來到處給人看。因此,我們現在看到的地址,就是經過摘要演算法生成的、更短一點的公鑰。

對方知道你的地址才能給你打錢;而且,任何人有了你的地址,都能在Blockchain.info官網查詢這個錢包地址交易了多少次(No. Transactions),收過多少個比特幣(Total Received),以及錢包里還剩下多少個比特幣(Final Balance),如下圖:

「私鑰」,就像打死不能告訴別人的銀行卡密碼。它是一串256位的隨機數。因為讓非IT用戶去記住這個滿屏0 和 1的二進制私鑰是特別不人道的事兒,所以對這一大串私鑰進行了處理,最後私鑰就以5 / K / L 開頭的字元串呈現在我們面前。

公鑰、私鑰、地址之間的關系是:

1)私鑰 → 公鑰 → 地址

私鑰生成唯一對應的公鑰,公鑰再生成唯一對應的地址;

2)私鑰加密,公鑰解密

也就是說,A使用私鑰對交易信息進行加密(數字簽名),B則使用A的公鑰對這個數字簽名進行解密。

其中,私鑰是極度私密的東西。如果你把私鑰發給別人,現在就開始寫一部長篇小說吧,名字都幫你想好了,就叫《永別了,比特幣》。

如果是李笑來老師(網傳擁有數十萬個BTC)這類幣圈大佬,強烈建議使用冷錢包(離線錢包),分開儲存;電視里的富豪在銀行有自己的保險箱,有條件的話也可以參考。

當時,上述方法是安全系數最高的做法。但作為韭菜接班人,暫且假設我們最初只用閑置資金、持有少量的比特幣,比如,小於5個。那麼,動輒上千成本、操作復雜的冷錢包就有點殺雞用牛刀了;因此,區塊鏈觀察網把選擇范圍限定在交易所和輕錢包2項:

在交易平台上買了(極少量)比特幣,可以先不提出來,繼續存在交易所。這種方式最適合幣圈新手。在沒有深入了解每種加密貨幣背後的故事之前,鮮嫩的我們總是充滿了好奇,而放在交易所的比特幣,可以直接進行幣幣交易,交易簡單快捷,不用經數字錢包導來導去;另一方面,平台上幣種齊全,可以滿足我們的嘗鮮心理,方便隨時小試牛刀。

而且像火幣、幣安(已被牆)這些大型交易所,不僅安全等級比某些專為收割韭菜而生的小平台高很多,而且操作簡單,很快就能上手,只需保管好自己的賬號、密碼就行了(再安全一級的話,開啟谷歌二次驗證),其他的就交給平台。

值得注意的是,存在交易所上的資產並不完全屬於自己,更確切地說是借給平台的,我們在資產那一欄看到的數字,相當於平台向我們借錢而打的白條。此外,交易平台本身不是去中心化的,如果安全措施不到位,用戶的賬號密碼有可能被黑客拿到。

輕錢包是相對於「全節點」錢包來說的。

全節點錢包,比如 Bitcoin-Core(核心錢包),運行時需要同步所有區塊鏈數據,佔用相當大內存空間(目前至少50GB以上),完全去中心化;

輕錢包雖然也依賴比特幣網路上其他全節點,但其僅僅同步跟自己有關的交易數據,基本實現去中心化的同時,也提升了用戶體驗。

根據不同的設備類型,我們把輕錢包分為:

1)PC錢包:適用於電腦桌面操作系統(如Windows/MacOS/Linus);

2)手機錢包:適用於安卓、iOS智能手機,比如比太錢包(以太也有PC端);

3)網頁錢包:通過瀏覽器訪問,比如上文提過的blockchain網頁版。

輕錢包操作比較簡單,一般是免費獲取。申請錢包的時候,系統會生成一個私鑰。准備敲黑板!

1)不要截圖、拍照存在手機里;

2)不要把私鑰信息發給任何人;

3)最好手寫(幾份)抄下,藏在你覺得最安全的地方。

總之一句話,誰掌握了錢包的私鑰,誰就擁有錢包的絕對控制權。私鑰只要掌握在你的手裡,比特幣就絕不會丟。

最後多說幾句,作為普通投資者,我們需要做的並不多:

1)走點心,不要把手機弄丟了,畢竟丟了對手機里的比特幣錢包有風險;

2)不要手癢刪掉設備上的錢包應用,除非你決定再也不用這個錢包了,否則後期很麻煩;

3)設置復雜的密碼(原因見第1點),並用心去記牢,這是私鑰弄丟以後留的一手。

對於記不住密碼,又懶得科學備份私鑰的朋友,咱還是把錢存在銀行里吧。

⑶ 聊聊錢包、私匙、公匙和地址

自從比特幣誕生伊始,與此相關的私鑰、公鑰、地址等名詞概念就不斷出現在大眾眼前,那麼這四個概念之間是什麼樣的關系呢?今天就給大家簡單聊一些相關的專業名詞和背後的邏輯。

1 這些名詞的關系是什麼樣的?

如果用一句話說明這幾個名詞的關系,那就是: 錢包生成私鑰 → 私鑰生成公鑰 → 公鑰生成公鑰哈希 → 公鑰哈希生成地址 → 地址用來接受比特幣 ,簡單吧,能聽懂吧。

2 這幾個名詞究竟是什麼東西?

還是一句話概括, 除了錢包是軟體以外,剩下的四個都是長度不一的字元串 ,比如私鑰是52位的字元串,地址是34位的字元串。

3 這四個字元串分別從哪裡來的?

私鑰 由錢包軟體隨機生成,隨後用密碼演算法生成公鑰和地址,如果用等式表示的話,可寫成如下形式:

公鑰=演算法1(私鑰)

公鑰哈希=演算法2(公鑰)

地址=演算法3(公鑰哈希)

所以, 地址 =演算法3(演算法2(演算法1(私鑰)))

其中,演算法1,演算法2,演算法3都是公開的演算法。

4 這幾個字元串哪個必須保密,哪個可以公開?

私鑰絕對不能公開 ,因為有了它本質上就取得了對應比特幣的所有權。

地址可以公開 ,因為它是用來接受比特幣的, 公鑰和公鑰哈希也可以公開 ,不過一般情況下你看不到。

5 為什麼地址和公鑰可以公開?

因為 即使被別人知道了地址和公鑰,對方也推算不出你的私鑰,也就掌握不了你的比特幣 。

為什麼推算不出?

舉個例子。電影《模仿游戲》中,英軍即使在得到了engima密碼機(演算法)後仍然無法破解德軍的密碼,原因就是德軍每次發信息都會用一個新的口令(私鑰)作為起始點。在不知道口令的前提下,進行反向暴力破解大概需要幾千萬年,不過最後因為刻板的德國人每次都用同一個口令作為起點,而這個口令還是自然語言,導緻密碼被破解。

所以,每次交易的時候才會要求生成一個新的私鑰,然後得到一個新的地址,這樣你的交易安全性就有了很大的保障。

6 做自己開心的事

從上面的描述我們可以推出,私鑰的本質是一個復雜數學問題的解,當有人向公開地址發送比特幣時,其實是在向全網所有比特幣客戶端發出了一道數學題,而這道題目的正確解,就是你的私鑰。因為那道題是用你的私鑰生成的呀,所以只有你能在第一時間回答出答案,於是比特幣就歸你了,因此 私鑰千萬不能告訴別人。

如何找到私鑰並妥善保管?

在bitcoin-qt軟體中,進入windows debug或者調試窗口,在命令行下輸入 getaddressbyaccount 命令可以查看所有已經生成的錢包地址。選取其中一個地址,然後用 mpprivkey  「地址」命令就能看到私鑰了(54位字元串)。

下圖是用getaddressbyaccount 「」命令查看地址列表,用mpprivkey查看私鑰的截圖,注意第一張圖中由於錢包是加密的,所以直接打mpprivkey命令是看不到私鑰的。

輸入錢包密碼後才能用mpprivkey命令看到私鑰。

剛已經說了私鑰非常的重要,它是真正決定比特幣歸誰的證明。私鑰在bitcoin-qt客戶端里,實際上是存在於一個叫wallet.dat的文件里的,而且剛安裝的bitcoin-qt客戶端是不設密碼的。萬一電腦落入不法分子手中或被黑客攻擊,導致私鑰丟失,就狠尷尬了,所以一定要設置密碼,且密碼一定要遵守隨機復雜大小寫字元數字都有的規則。建議用專門的密碼生成軟體生成,關於密碼軟體,找機會專門說一下。

特別注意,千萬千萬千萬記住了,一定不要把密碼給忘了!因為你 忘了密碼就打不開錢包 wallet.dat 文件了,也就找不到私鑰了 ,然後,就沒有然後了。

我就發生過剛開始倒騰錢包把密碼搞錯了,然後打不開錢包的尷尬,最後只好怒刪wallet.dat文件,讓系統再自己生成一個,這時候的感覺大約相當於把一筆錢埋在了宇宙某顆星球上,然後把坐標圖搞丟了,因為比特世界只認私鑰不認身份證,你掉了就是掉了,再也找不回來了。

不過正因為比特幣的所有權是依靠私鑰確認的,也就有個最狠的保存辦法,老貓也提過,那就是,找到私鑰後記在紙上,然後把紙鎖在保險櫃里,或者乾脆記在腦子里,不過54位的字元串誰特么能記住?然後把電腦上的客戶端連同錢包文件一起刪除。

好了,關於錢包客戶端,大概就說這些吧,相關知識我也是剛開始了解,隨著了解信息的增加,可能會有更新的認識,到時候會再寫出來。

千萬注意,千萬注意,千萬注意不要搞丟了私鑰。

⑷ ​入門科普:比特幣的私鑰、公鑰和地址是什麼

上一篇,我們講到了幣圈要注意防範傳銷、洗錢等一類的騙局,保護好自己的資產。這一篇,我要告訴大家,進行比特幣交易時,都會用到的私鑰、公鑰與地址,如果你還不了解它們的重要性,隨便交易,很容易弄丟自己的資產。那什麼是私鑰、公鑰與地址?三者之間有著什麼樣的關系呢?

01

私鑰

1.導出:

創建錢包後,輸入密碼可以導出私鑰,私鑰由很長的字元串組成,且是隨機生成的, 一個地址只有一個私鑰。

2.用途:

用於控制交易時的簽名,擁有私鑰才能控制賬戶的資金,相當於銀行賬戶的交易密碼,用來解密公鑰加密的信息。

3.注意事項:

私鑰是用來證明這筆交易的發起人確實是比特幣的所有者。所以 私鑰一定不能曝光,私鑰一旦泄露,你的比特幣將會有被盜的風險。 用戶必須保管好私鑰,防止泄露或丟失。

02

公鑰

1.導出:

公鑰是由私鑰通過演算法生成的,使用了橢圓曲線加密, 通過私鑰可以計算出唯一的公鑰。

2.用途:

公鑰是用來驗證交易的簽名,一個私鑰簽名的數據,只有對應的公鑰才能對其進行驗證,公鑰相當於銀行賬戶,公開後無風險。

03

地址

1.導出:

地址由公鑰生成的,使用了哈希運算。創建錢包後會生成一個以「0x」 開頭的 42 位字元串,這個字元串就是錢包地址,一個錢包對應一個錢包地址, 地址唯一且不能修改,也就是說一個錢包中所有代幣的轉賬收款地址都是一樣的。

2.用途:

由於公鑰太長,在交易中不方便使用,所以就有了地址,地址是由公鑰生成的,地址相當於銀行卡號,用來發送和接收比特幣。

3.注意事項:

平台上不同代幣的轉賬收款地址一般都不同,因此,轉幣到交易平台前一定要確認好地址。

總結

私鑰 → 公鑰 → 錢包地址 (不可逆)

私鑰用來簽名交易,公鑰用來驗證私鑰簽名的交易,地址用來收款。

公鑰、私鑰以及地址都在比特幣交易中起到了不同的作用,所以才能順利的完成一筆數字貨幣的交易。 所以用戶必須好好保存,防止泄露重要信息。

⑸ 數字貨幣錢包名稱怎麼取

可以用你的名字加上的數字錢包,簡單又實用。
錢包概念
首先,我們來理解錢包,需要澄清的是,錢包其實並不是裝錢的,而是裝密鑰(私鑰和公鑰)的工具,有了密鑰就可以擁有相應地址上的數字貨幣的支配權。以下以比特幣機制來說明,數字貨幣錢包機制都是類似的。
1、私鑰:是對一個比特幣地址擁有取錢許可權的代表,掌握了私鑰就掌握了其對應比特幣地址上的所有生殺大權。私鑰可以算出公鑰,公鑰可以再算出比特幣地址。每次交易的時候,付款方必須出具私鑰,以及私鑰產生的簽名,每次交易簽名不同,但是由同一個私鑰產生。私鑰是一串
2、公鑰:是和私鑰成對出現的,公鑰可以算出比特幣地址,因此可以作為擁有這個比特幣地址的憑證。
3、比特幣地址:如果說區塊鏈是一個賬本,比特幣地址就是其中的賬號。
4、錢包分為很多種,冷錢包、熱錢包、硬體錢包、腦錢包、紙錢包等等,一看這些概念我就會犯暈,我覺得我們不需要搞懂那麼多。我們只要搞懂應用場景,手機端還是PC端的,而且我覺得我們只會用到輕錢包,那種儲存全部交易的全量錢包太恐怖了。如果你真不放心,就把這個錢包安裝在平時不怎麼上網的終端上,防止黑客盜用就好。

⑹ 像誠信幣這樣基於區塊鏈的數字貨幣中,私鑰,公鑰,地址到底是怎麼回事

很多小白剛入場時,就被私鑰,公鑰,地址,等等關系弄暈頭。有的甚至把自己私鑰搞丟了,地址上特別有錢,可偏偏就是取不出來,今天小白就把私鑰,公鑰,還有地址之間的關系跟大家捋一捋。

私鑰、公鑰和地址這三者的關系是:

私鑰轉換成(生成)公鑰,再轉換成地址,如果某個地址上有比特幣或誠信幣,就可以使用轉換成這個地址的私鑰花費上面的誠信幣。公鑰和地址的生成都依賴於私鑰,所以私鑰才最重要。

手機錢包也是同樣,但因為手機的文件管理方式不像計算機那麼方便。所以一般手機錢包會提供一個名為或類似「導出私鑰」的功能,通過這個功能,就可以將私鑰用各種形式導出來。

比如比特幣手機錢包可以導出為二維碼,可以列印或者掃描到紙上。更換手機時,裝好比特幣錢包掃描一下這個二維碼,就可以實現遷移比特幣。比特幣手機錢包和誠信幣手機錢包可以導出為一份明文字元串,列印到紙上——這就是紙錢包。

紙錢包讓用戶可以到任何有比特幣或誠信幣錢包的終端來花費你的比特幣或誠信幣。

由於錢包丟失或損壞會導致失去私鑰,從而徹底失去該數字貨幣的轉賬權。要防止出現這樣的悲劇,就要記得經常備份錢包里的數據。除了地址外,備份時也保存了所有的私鑰。

總結

  1. 私鑰要保護好,防止丟失,防止忘記,在手機清信息時方式被清除,最好手抄一份,但不要泄露。

  2. 要防止自己錢包丟失或損壞,導致丟失私鑰,喪失數字貨幣的轉賬權,否則你頓再多幣取不出來,還不是沒用。

⑺ 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個字元,那麼計算量將無法想像。

⑻ 比特幣如何防止篡改

比特幣網路主要會通過以下兩種技術保證用戶簽發的交易和歷史上發生的交易不會被攻擊者篡改:

  • 非對稱加密可以保證攻擊者無法偽造賬戶所有者的簽名;

  • 共識演算法可以保證網路中的歷史交易不會被攻擊者替換;

  • 非對稱加密


  • 非對稱加密演算法3是目前廣泛應用的加密技術,TLS 證書和電子簽名等場景都使用了非對稱的加密演算法保證安全。非對稱加密演算法同時包含一個公鑰(Public Key)和一個私鑰(Secret Key),使用私鑰加密的數據只能用公鑰解密,而使用公鑰解密的數據也只能用私鑰解密。

  • 圖 4 - 51% 攻擊


  • 1使用如下所示的代碼可以計算在無限長的時間中,攻擊者持有 51% 算力時,改寫歷史 0 ~ 9 個區塊的概率9:

  • #include

  • #include


  • double attackerSuccessProbability(double q, int z) {

  • double p = 1.0 - q;

  • double lambda = z * (q / p);

  • double sum = 1.0;

  • int i, k;

  • for (k = 0; k <= z; k++) {

  • double poisson = exp(-lambda);

  • for (i = 1; i <= k; i++)

  • poisson *= lambda / i;

  • sum -= poisson * (1 - pow(q / p, z - k));

  • }

  • return sum;

  • }


  • int main() {

  • for (int i = 0; i < 10; i++) {

  • printf("z=%d, p=%f\n", i, attackerSuccessProbability(0.51, i));

  • }

  • return 0;

  • }


  • 通過上述的計算我們會發現,在無限長的時間中,佔有全網算力的節點能夠發起 51% 攻擊修改歷史的概率是 100%;但是在有限長的時間中,因為比特幣中的算力是相對動態的,比特幣網路的節點也在避免出現單節點佔有 51% 以上算力的情況,所以想要篡改比特幣的歷史還是比較困難的,不過在一些小眾的、算力沒有保證的一些區塊鏈網路中,51% 攻擊還是極其常見的10。


  • 防範 51% 攻擊方法也很簡單,在多數的區塊鏈網路中,剛剛加入區塊鏈網路中的交易都是未確認的,只要這些區塊後面追加了數量足夠的區塊,區塊中的交易才會被確認。比特幣中的交易確認數就是 6 個,而比特幣平均 10 分鍾生成一個塊,所以一次交易的確認時間大概為 60 分鍾,這也是為了保證安全性不得不做出的犧牲。不過,這種增加確認數的做法也不能保證 100% 的安全,我們也只能在不影響用戶體驗的情況下,盡可能增加攻擊者的成本。

  • 總結


  • 研究比特幣這樣的區塊鏈技術還是非常有趣的,作為一個分布式的資料庫,它也會遇到分布式系統經常會遇到的問題,例如節點不可靠等問題;同時作為一個金融系統和賬本,它也會面對更加復雜的交易確認和驗證場景。比特幣網路的設計非常有趣,它是技術和金融兩個交叉領域結合後的產物,非常值得我們花時間研究背後的原理。


  • 比特幣並不能 100% 防止交易和數據的篡改,文中提到的兩種技術都只能從一定概率上保證安全,而降低攻擊者成功的可能性也是安全領域需要面對的永恆問題。我們可以換一個更嚴謹的方式闡述今天的問題 — 比特幣使用了哪些技術來增加攻擊者的成本、降低交易被篡改的概率:

  • 比特幣使用了非對稱加密演算法,保證攻擊者在有限時間內無法偽造賬戶所有者的簽名;

  • 比特幣使用了工作量證明的共識演算法並引入了記賬的激勵,保證網路中的歷史交易不會被攻擊者快速替換;


  • 通過上述的兩種方式,比特幣才能保證歷史的交易不會被篡改和所有賬戶中資金的安全。

⑼ bitcoin私鑰是如何產生的

比特幣地址和私鑰是怎樣生成的?比特幣使用橢圓曲線演算法生成公鑰和私鑰,選擇的是secp256k1曲線。生成的公鑰是33位元組的大數,私鑰是32位元組的大數,錢包文件wallet.dat中直接保存了公鑰和私鑰。我們在接收和發送比特幣時用到的比特幣地址是公鑰經過演算法處理後得到的,具體過程是公鑰先經過SHA-256演算法處理得到32位元組的哈希結果,再經過RIPEMED演算法處理後得到20位元組的摘要結果,再經過字元轉換過程得到我們看到的地址。這個字元轉換過程與私鑰的字元轉換過程完成相同,步驟是先把輸入的內容(對於公鑰就是20位元組的摘要結果,對於私鑰就是32位元組的大數)增加版本號,經過連續兩次SHA-256演算法,取後一次哈希結果的前4位元組作為校驗碼附在輸入內容的後面,然後再經過Base58編碼,得到字元串。

熱點內容
win10偷挖礦 發布:2024-11-19 21:15:50 瀏覽:364
區塊鏈和大數據都做的公司 發布:2024-11-19 21:09:47 瀏覽:212
德國的比特幣是合法貨幣 發布:2024-11-19 20:36:35 瀏覽:683
外地車幾點可以去上海市中心 發布:2024-11-19 20:30:51 瀏覽:636
10年比特幣在哪交易 發布:2024-11-19 20:25:20 瀏覽:725
娛樂圈中的劣幣驅逐良幣 發布:2024-11-19 20:21:25 瀏覽:690
幣圈韭菜成長 發布:2024-11-19 20:15:46 瀏覽:44
歐鏈eup礦池收益 發布:2024-11-19 20:15:32 瀏覽:897
中國移動4年合約怎麼刷新了時間 發布:2024-11-19 20:15:04 瀏覽:931
移動合約套餐退不掉怎麼辦 發布:2024-11-19 19:56:28 瀏覽:111