64比特幣密鑰
① 比特幣密鑰是什麼意思
比特幣的所有權是通過數字密鑰、比特幣地址和數字簽名來確定的。
比特幣包含一系列密鑰對、每個密鑰對包含一個公鑰和私鑰。
私鑰是一個隨機數、私鑰通過橢圓曲線演算法生成公鑰、公鑰再通過單向加密哈希函數生成比特幣地址。
比特幣使用非對稱加密、使得簽名只能由私鑰產生、且在不泄露私鑰情況下所有人都可以驗證該簽名p。
私鑰和公鑰有可以被編碼成多種類型格式、無一例外的作用就是為了方便識別及錢包操作方便。
② 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個字元,那麼計算量將無法想像。
③ 比特幣定義和用途分別是什麼
比特幣(BTC)是一種總量恆定2100萬的數字貨幣,和互聯網一樣具有去中心化、全球化、匿名性等特性。意思就是向地球另一端轉賬比特幣,就像發送電子郵件一樣簡單,低成本、無限制,比特幣也因此被用於跨境貿易、支付、匯款等領域。
比特幣的流通性和有限性,決定了比特幣是可以充當相當於一般等價物的貨幣功能,或者充當貨幣的衡量物,只不過這種衡量不是像黃金一樣的實體衡量,而是一種數字產品。
相關概念:
1、地址
比特幣世界的地址大概長得像這樣:。地址本身只是一串代碼,就像你的銀行賬號3210000003288372一樣,用來標示一個賬戶。每個人可以有無數個地址。地址是公開的。
2、比特幣記錄
銀行賬號裡面有多少錢,是銀行記錄的。
比特幣地址裡面存有多少錢,是整個比特幣網路共同記錄的。每一份完整的比特幣數據,都會記錄著這個地址裡面存了多少個比特幣。
每個參與比特幣網路的節點都可以保存一份完整的比特幣數據,人人手頭都有備份,防止造假。
3、密鑰(私鑰)
密鑰是你自己才知道的另一串字元,密鑰用來操作比特幣地址裡面的錢。密鑰和地址是一把鑰匙一把鎖的關系,每個地址只有一個密碼,每個密碼也操作一個比特幣地址。
有了密鑰以後,你就可以控制比特幣地址裡面的錢,支付給任何人。密鑰要絕對安全,丟失、刪除的密鑰永遠找不回來,對應比特幣地址裡面的錢也就永遠不能用了。
密鑰需要絕對保密,任何知道密鑰的人都可以偷走你的所有比特幣。
4、錢包
比特幣的交易過程會涉及很多復雜計算,為了簡化操作,大家製作了錢包。錢包有計算機上的客戶端軟體,也有在線網頁版的。錢包的功能是輕輕一點就可以付錢,背後的復雜計算交給錢包去完成
5、安全性
如果使用計算機客戶端軟體的話,推薦MultiBit,也可以用Bitcoin-QT。這兩個都是比特幣社區的官方推薦軟體。安裝這兩個軟體一定只能從官方網站直接下載,下載前後一定要檢查校驗碼。這么做是為了防止有人篡改錢包軟體、盜竊密鑰。
6、挖礦
大約每10分鍾,比特幣網路中都會新出現一些比特幣,可以想像成天上在撒錢。這些撒下來的錢落到誰的口袋裡,主要看誰的電腦算得快。算得越快,就越有可能撿到這些錢。挖礦就是用電腦拚命算,去撿這些錢。
④ 比特幣地址密鑰怎麼查我申請20個,只能查到一個密鑰啊,還不知道是那一個的,其它全無效了用不了了
1、錢包加密是指對儲存有私鑰的錢包進行自動加密存儲。 比特幣官方客戶端從0.4.0 版本開始支持錢包加密。加密的錢包在每次付款的時候,都會提示您輸入密碼。如果密碼錯誤,客戶端會拒絕付款。
2、如果用最早備份的錢包(wallet.dat)替換回來,還是一樣可以正常交易。考慮到比特幣的原理應該也可得出,只要有私鑰(錢包)存在,就可以證明你是這個錢包的合法擁有者,不管對這個錢包(核心就是某個地址對應的私鑰)是進行了加密還是刪除,都不能否定它。
3、備份比特幣錢包時,還需注意由於比特幣支付找零機制的存在(比如把一個完整的100 btc中的50 btc發送給某個地址,系統會發送其中的50 btc到對方的地址,並退回50 btc到你客戶端的一個新地址上,這個地址不會直接顯示在你的地址列表中)。
4、每發送了100次比特幣給其它地址或者使用了100個不同的地址接收比特幣後,請重新備份錢包,否則後面交易退回的和接收到的比特幣會永久丟失。 除了給錢包加密外,用戶還可以自行生成離線的紙錢包和腦錢包。
⑤ 知道比特幣的秘鑰,怎麼找回呢
1. 比特幣密鑰丟失怎麼辦?這位極客開發的工具可以幫你恢復它
據Bitcoinist 3月16日報道,一名程序員發布了一個可以使用部分密鑰數據來恢復丟失的比特幣的工具。當錢包數據被損壞或破壞時,用戶可以使用這個程序讓恢復數據這個痛苦的過程變得十分簡單。此外,用戶還可以使用其他技巧來找回丟失的資金。 圖片來源:pixabay 助記詞恢復工具 這個名為「FinderOuter...
知識: 比特幣
2. 加密錢包的一些東西,學習提高安全認識
...部分用戶的疑惑:為什麼這里只能存放四個字母塊一個單詞空間內,存不下怎麼辦的問題。那麼當你使用助記詞密盒存儲你的助記詞時如果你要倒錢包時候怎麼辦?別急,在 imKey 硬體錢包內當你輸前四個字動可以幫你匹配到唯一的一個單詞,千萬不要覺得己備份的單詞不全就覺得丟失了你的比特幣。如...
知識: 私鑰,錢包,公鑰,比特幣錢包
3. 如何使用U2F密鑰保護您的加密帳戶
...將要使用的2FA。將Yubikey與Binance配對如果您想知道U2F鑰匙丟失,損壞或被盜怎麼辦,許多站點都可以讓您配對多個鑰匙,從而在丟失鑰匙時提供冗餘。不幸的是,幣安不是其中之一。丟失密鑰,您將需要啟動Binance的帳戶恢復過程,該過程可能需要幾天才能完成,並且需要備用驗證。每次您登錄Binance時,...
知識: 加密貨幣,密鑰,的比特,比特幣區塊瀏覽器
4. 了解下不用助記詞的ZenGo錢包及門限簽名技術
..., 我們分別考慮下設備丟失和ZenGo服務關停的問題。 設備丟失(或盜竊)怎麼辦? 當設備丟失(或盜竊)時,獲得設備的人由於沒有我們的 TouchID/FaceID ,可以確保我們的資金不會被轉移。 那麼如何取回自己的資產呢?ZenGo 錢包提供了一個對設備部分的秘鑰備份的方案:設備秘鑰通過加密之後存儲在...
知識: 錢包,區塊鏈,數字貨幣
5. 3種比特幣錢包選項,如何選擇最佳
...進入和離開的許可。真的是誰的房子?如果該第三方丟失或竊取了您的鑰匙怎麼辦?在比特幣中,沒有鎖匠,因此,如果您丟失了私鑰,最好與金錢道別。優點缺點恢復訪問密碼的選項需要對第三方的信任易於使用對私鑰的共享控制潛在的資金訪問延遲財務缺乏隱私權資金被盜的風險網路或應用錢包我...
知識: 私鑰,錢包,加密貨幣,硬體錢包
6. EOS的賬號設計:說說steem和EOS的異同
...法,隨著技術的不斷發展,相信EOS會變得越來越容易使用。steem和EOS的錢包密鑰steem和EOS的密鑰設計較為類似,首先說說steem的設計。Steemit裡面有四種密鑰,分別是Owner Key(主密鑰);post key(發帖密鑰);Active Key(活動密鑰);Memo Key(備注密鑰)。四種密鑰分別有不同的許可權和功能,下面來一個個介...
知識: 密鑰,錢包密鑰,區塊鏈性能,錢包
7. 萬一硬體故障導致比特幣丟失該怎麼辦
...硬體錢包已消除了這種危險。 但是,如果您由於硬體錢包故障而丟失比特幣怎麼辦? 也有解決方案,但是您不應該嘗試它們。 在這種緊急情況下,您需要專業的幫助,而不是搜索如何修復Internet上檢測到的Windows硬碟問題。 這種情況是獨特的,需要區別對待。 讓我們來看看。什麼是比特幣硬體錢包?...
⑥ 比特幣私鑰在哪裡
私鑰是一個保密的數據塊,通過加密的簽名,證明你有權從一個特定的比特幣地址花銷比特幣 。每個比特幣地址有它自己唯一的私鑰。如果你使用的是錢包軟體,你的私鑰就存儲在你的計算機內;如果使用的是在線錢包,你的私鑰就存儲在遠程伺服器上;私鑰不可以泄露,因為有了它就可以花銷掉它所對應的比特幣地址里的比特幣。---代 幣 網 論 壇 提 供。
⑦ 比特幣的加密(秘鑰、地址、腳本驗證)
https://en.bitcoin.it/wiki/Address
https://www.cnblogs.com/zhaoweiwei/p/address.html
生成方式:
P2PKH的交易腳本
舉個真實的例子:
ScriptSig:
PUSHDATA(72)[9701] PUSHDATA(33)
[]
這裡面的一個scriptSig由2部分組成,第一部分是簽名,第二部分是公鑰,PUSHDATA(N),表示要壓入棧頂的byte,1個byte表示2個字元,PUSHDATA(72)表示壓入144個字元
Output Scripts
HASH160 PUSHDATA(20)[] EQUAL
DUP HASH160 PUSHDATA(20)[] EQUALVERIFY CHECKSIG
第二個找零output地址因為是P2PKH開頭的,所以格式和描述的一樣
https://www.hibtc.org/2428.html
結合多重簽名一起使用
scriptSig: ..signatures... <serialized script>
scriptPubKey: OP_HASH160 <scriptHash> OP_EQUAL
表示一共有n個參與方,只要有m個參與方同意了這筆交易,則這筆交易就生效了,具體的規則是通過scriptHash裡面的腳本內容決定的
m-of-n multi-signature transaction:
scriptSig: 0 <sig1> ... <script>
script: OP_m <pubKey1> ... OP_n OP_CHECKMULTISIG
ScriptSig:
0[] PUSHDATA(72)[1201] PUSHDATA(71)[01] PUSHDATA1[]
HASH160 PUSHDATA(20)[] EQUAL
結合P2SH的新特徵
https://en.bitcoin.it/wiki/Transaction
目前比特幣支持兩種類型的交易:Pay-to-PubkeyHash、Pay-to-Script-Hash
驗證一筆P2PKH交易的一個輸入是否合法:
總結:先驗證這筆output是不是屬於該用戶,再驗證該用戶的簽名是否有效
參考:
https://blog.csdn.net/jerry81333/article/details/56824166
初級版的比特幣交易
https://www.jianshu.com/p/a57795ec562c
⑧ 比特幣私鑰是52位還是64
比特幣私鑰是64位,WIFI格式是52位
比特幣私鑰是一個256位的隨機數,通過SHA-256演算法產生。比特幣私鑰的定義非常簡單,一個是256位(256個二進制數字)另一個是隨機數,意思是這個數的產生沒有規律。
比特幣私鑰是一個數字,這個數字可以取從0到2___-1之間的任意值。
⑨ 比特幣的私鑰怎麼生成的
私鑰是密文持有人設置的隨機的數字。
私鑰的生成是隨機的數字,通過拋硬幣將正面向上的計為0,反面向上計為1,連續拋256次,就隨機得到一個256位的二進制數字。生成了私鑰,就可以通過加密函數來生成一個地址。私鑰是一個64個字元長的代碼,包括字母a到f和數字1到9的任何混合。