比特幣源碼私鑰生成
1. 鎬庝箞鏍峰煎嚭縐侀掗bitcoi
鎬庝箞瀵煎嚭縐侀掗bitcoin
鍦ㄦ瘮鐗瑰竵緗戠粶涓錛屾瘡涓鍦板潃閮藉瑰簲鐫涓涓縐侀掗銆傜侀掗鏄涓涓鐢64涓瀛楃︾粍鎴愮殑闅忔満瀛楃︿覆錛屽畠鍙浠ョ敤浜庣敓鎴愭暟瀛楃懼悕錛屼粠鑰屼嬌寰楁瘮鐗瑰竵緗戠粶涓鐨勪氦鏄撳緱浠ュ畬鎴愩
浠ヤ笅鏄瀵煎嚭姣旂壒甯佺侀掗鐨勬ラわ細
鎵撳紑浣犵殑姣旂壒甯侀挶鍖呰蔣浠訛紝閫夋嫨浣犳兂瑕佸煎嚭縐侀掗鐨勬瘮鐗瑰竵鍦板潃銆
鎵懼埌鈥滃煎嚭縐侀掗鈥濇垨鈥滄樉紺虹侀掗鈥濈殑閫夐」銆傚湪澶у氭暟姣旂壒甯侀挶鍖呰蔣浠朵腑錛岃繖涓閫夐」閫氬父鍦ㄢ滆劇疆鈥濇垨鈥滃畨鍏ㄢ濊彍鍗曚笅銆
杈撳叆浣犵殑閽卞寘瀵嗙爜銆備竴浜涢挶鍖呰蔣浠跺彲鑳介渶瑕佷綘杈撳叆瀵嗙爜鎵嶈兘鏄劇ず縐侀掗錛屼互紜淇濆彧鏈夋巿鏉冪敤鎴鋒墠鑳界湅鍒扮侀掗銆
鏄劇ず縐侀掗銆傚湪鏌愪簺閽卞寘杞浠朵腑錛屼綘闇瑕佸崟鍑燴滄樉紺虹侀掗鈥濇寜閽鎵嶈兘鐪嬪埌縐侀掗銆傚湪鍏朵粬杞浠朵腑錛岀侀掗鍙鑳戒細鑷鍔ㄦ樉紺哄嚭鏉ャ
澶囦喚縐侀掗銆傜侀掗闈炲父閲嶈侊紝鍥犱負濡傛灉鏈変漢鑾峰緱浜嗕綘鐨勭侀掗錛屼粬浠灝卞彲浠ヨ塊棶浣犵殑姣旂壒甯佸苟榪涜屼氦鏄撱傚洜姝わ紝璇峰姟蹇呭囦喚縐侀掗錛屽苟灝嗗叾瀛樻斁鍦ㄥ畨鍏ㄧ殑鍦版柟錛屼緥濡傜葷嚎瀛樺偍璁懼囨垨綰歌川澶囦喚銆
璇鋒敞鎰忥紝濡傛灉浣犱笉紜瀹氬備綍瀵煎嚭縐侀掗鎴栦笉鐔熸倝姣旂壒甯侀挶鍖呯殑鎿嶄綔錛屾渶濂戒笉瑕佸皾璇曡嚜琛屾搷浣溿傝繖鍙鑳戒細瀵艱嚧姣旂壒甯佺殑涓㈠け鎴栬鐩椼傚湪榪欑嶆儏鍐典笅錛屾渶濂藉悜涓撲笟浜哄+鎴栫粡楠屼赴瀵岀殑姣旂壒甯佺敤鎴峰繪眰甯鍔┿
2. 管好你的「錢包」
Kiwi(WeChat:Kiwind)
一:什麼是私鑰?助記詞?什麼是明文私鑰?以及什麼是keystore ?
1、私鑰: 隨機生成的,用來解鎖對應(錢包)地址的一串字元。生成一個比特幣地址的同時就會有一個私鑰被生成,嚴格來說是, 先生成私鑰,然後通過私鑰使用加密函數來計算出地址 。作為用戶,我們很少會直接看到私鑰,一般情況下,私鑰是被存儲在錢包文件里,由錢包軟體進行管理。下面就是一個比特幣私鑰:
這是對應私鑰生成的地址:
2、助記詞: 其實是 明文私鑰的另一種表現形式 ,因為私鑰是一個64位的哈希值,非常復雜。所以通過助記詞將其簡化。
3、明文私鑰:未加密的私鑰。這意味著任何人只要拿到你的明文私鑰,就可以控制你的錢包資產。 我們時常會聽說用戶被盜幣了,其實就是私鑰泄露,幣被轉走。有時候我們會把地址比作銀行卡號,私鑰比作銀行卡密碼。所以說保護好自己的私鑰有多重要。
4、keystore : 是 加密過後的私鑰 ,需要用用戶生成這個文件時設置的密碼解開,才能夠進行交易操作。如果你備份了keystore 但是忘記了自設密碼,那麼就尷尬了。所以keystore 的同時,也要記住密碼。
二:如何導入錢包?
以imToken為例:
1、官方錢包導入
2、助記詞導入
3、私鑰導入
注意 :
1、imToken目前無法導出明文私鑰,只能導出助記詞和Keystore,但是可以導入明文私鑰。
2、明文私鑰可以去MyEtherWallet,先將Keystore導入,然後導出明文私鑰。具體操作步驟如下:
(1)登陸 myetherwallet.com
(2)點擊View Wallet Info(查看錢包信息),後選擇Keystore File,在右側的灰色區域上傳Keystore文本信息,注意要.txt格式。
(3)上傳完成,輸入imToken上設置的錢包密碼,點擊Unlock解鎖。
(4)導出明文私鑰(切記安全保存)。
3、使用imToken的ETH錢包時,用Keystore導入錢包時,輸入的是之前的密碼。用助記詞和私鑰導入錢包時,輸入的是新的密碼。所以一旦助記詞被盜,黑客是可以設置新的密碼的!
具體說明請看下這篇來自「烏托邦皮條社」彭皓的文章:
http://mp.weixin.qq.com/s/5uNosRiiqpeTYOVR7i2TrQ
3. 【區塊鏈】比特幣私鑰、公鑰、簽名
在 了解區塊鏈的基礎名詞概念 提到地址由字元和數字組成,但沒有說明怎樣產生的。銀行卡號由銀行核心系統生成,那比特幣地址是通過什麼生成的呢?看下圖:
對於剛接觸比特幣的小白來說,看到這張圖就蒙圈了,究竟什麼是私鑰、公鑰,為什麼生成個地址要這么麻煩嗎?
現在請大家記住這句話: 私鑰通過橢圓曲線相乘生成公鑰,使用公鑰不能導推出私鑰;公鑰通過哈希函數生成比特幣地址,地址也無法導推出公鑰 。
通過這么復雜演算法才算出地址,那私鑰和公鑰只是為了生成地址嗎?不是的,他們還有其他用途,我們先了解下私鑰和公鑰。
現在已經講解地址、挖礦、工作量證明、算力、區塊、區塊鏈等等的概念,不知大家還有印象嗎?如果忘記請溫習這些概念,因為後續很多地方都會用到這些概念。明天講解下區塊鏈有哪些特點。
參考書籍:《精通比特幣》
區塊鏈知識專題:
比特幣記賬方式(區塊鏈知識2)
了解塊鏈的基礎名詞概念(區塊鏈知識1)
4. bitcoin私鑰是如何產生的
比特幣地址和私鑰是怎樣生成的?比特幣使用橢圓曲線演算法生成公鑰和私鑰,選擇的是secp256k1曲線。生成的公鑰是33位元組的大數,私鑰是32位元組的大數,錢包文件wallet.dat中直接保存了公鑰和私鑰。我們在接收和發送比特幣時用到的比特幣地址是公鑰經過演算法處理後得到的,具體過程是公鑰先經過SHA-256演算法處理得到32位元組的哈希結果,再經過RIPEMED演算法處理後得到20位元組的摘要結果,再經過字元轉換過程得到我們看到的地址。這個字元轉換過程與私鑰的字元轉換過程完成相同,步驟是先把輸入的內容(對於公鑰就是20位元組的摘要結果,對於私鑰就是32位元組的大數)增加版本號,經過連續兩次SHA-256演算法,取後一次哈希結果的前4位元組作為校驗碼附在輸入內容的後面,然後再經過Base58編碼,得到字元串。
5. 比特幣地址是怎麼產生的
比特幣使用橢圓曲線演算法生成公鑰和私鑰,選擇的是secp256k1曲線。生成的公鑰是33位元組的大數,私鑰是32位元組的大數,錢包文件wallet.dat中直接保存了公鑰和私鑰。我們在接收和發送比特幣時用到的比特幣地址是公鑰經過演算法處理後得到的,具體過程是公鑰先經過SHA-256演算法處理得到32位元組的哈希結果,再經過RIPEMED演算法處理後得到20位元組的摘要結果,再經過字元轉換過程得到我們看到的地址。這個字元轉換過程與私鑰的字元轉換過程完成相同,步驟是先把輸入的內容(對於公鑰就是20位元組的摘要結果,對於私鑰就是32位元組的大數)增加版本號,經過連續兩次SHA-256演算法,取後一次哈希結果的前4位元組作為校驗碼附在輸入內容的後面,然後再經過Base58編碼,得到字元串。喬曼特區塊鏈專業站鏈喬教育在線是從事區塊鏈相關培訓,且獲得教育部認證的區塊鏈專業培訓工作站。
6. 物理比特幣如何得到裡面的私匙
比特幣的私鑰就是隨機的256位數字,由0和1組成的二進制數字。這串數字是由可靠的隨機數生成器生成。
然後把這些2進制數轉換成16進制,再轉換成大寫字母就獲得了現在比特幣錢包客戶端中導出的私鑰格式.
或者對這個256位二進制數再進行哈希256得到的結果也可以用來當作私鑰。
7. 入門科普:比特幣的私鑰、公鑰和地址是什麼
上一篇,我們講到了幣圈要注意防範傳銷、洗錢等一類的騙局,保護好自己的資產。這一篇,我要告訴大家,進行比特幣交易時,都會用到的私鑰、公鑰與地址,如果你還不了解它們的重要性,隨便交易,很容易弄丟自己的資產。那什麼是私鑰、公鑰與地址?三者之間有著什麼樣的關系呢?
01
私鑰
1.導出:
創建錢包後,輸入密碼可以導出私鑰,私鑰由很長的字元串組成,且是隨機生成的, 一個地址只有一個私鑰。
2.用途:
用於控制交易時的簽名,擁有私鑰才能控制賬戶的資金,相當於銀行賬戶的交易密碼,用來解密公鑰加密的信息。
3.注意事項:
私鑰是用來證明這筆交易的發起人確實是比特幣的所有者。所以 私鑰一定不能曝光,私鑰一旦泄露,你的比特幣將會有被盜的風險。 用戶必須保管好私鑰,防止泄露或丟失。
02
公鑰
1.導出:
公鑰是由私鑰通過演算法生成的,使用了橢圓曲線加密, 通過私鑰可以計算出唯一的公鑰。
2.用途:
公鑰是用來驗證交易的簽名,一個私鑰簽名的數據,只有對應的公鑰才能對其進行驗證,公鑰相當於銀行賬戶,公開後無風險。
03
地址
1.導出:
地址由公鑰生成的,使用了哈希運算。創建錢包後會生成一個以「0x」 開頭的 42 位字元串,這個字元串就是錢包地址,一個錢包對應一個錢包地址, 地址唯一且不能修改,也就是說一個錢包中所有代幣的轉賬收款地址都是一樣的。
2.用途:
由於公鑰太長,在交易中不方便使用,所以就有了地址,地址是由公鑰生成的,地址相當於銀行卡號,用來發送和接收比特幣。
3.注意事項:
平台上不同代幣的轉賬收款地址一般都不同,因此,轉幣到交易平台前一定要確認好地址。
總結
私鑰 → 公鑰 → 錢包地址 (不可逆)
私鑰用來簽名交易,公鑰用來驗證私鑰簽名的交易,地址用來收款。
公鑰、私鑰以及地址都在比特幣交易中起到了不同的作用,所以才能順利的完成一筆數字貨幣的交易。 所以用戶必須好好保存,防止泄露重要信息。
8. 每個比特幣都有一個不一樣的私鑰嗎
每個人的比特別錢包中有多個比特幣地址,每個比特幣地址代表一定數量的比特幣。而比特幣地址是通過一個公鑰通過哈希(RPIEMD+SHA)生成的,這個公鑰又是由私鑰通過橢圓曲線(ECC)生成的。私鑰保存在比特幣錢包中,不應泄露出去。而公鑰在付款交易時,需要和比特幣地址一起,通過交易記錄公開發布,由區塊鏈系統驗證付款交易的有效性。
9. 比特幣的密鑰是怎麼樣
比特幣的密鑰是怎麼樣
比特幣的密鑰可以分為私鑰和公鑰。
私鑰是一個256位的隨機數,它是由比特幣錢包生成的,並且只有錢包的所有者才能知道它。私鑰是比特幣交易的核心,因為只有持有私鑰的人才能對其進行簽名,從而授權比特幣的轉移。
公鑰是由私鑰通過一種數學演算法生成的。具體來說,公鑰是通過將橢圓曲線加密的私鑰進行解密而生成的。公鑰通常用於接收比特幣,因為人們可以將其公開共享,而不會泄露私鑰。
比特幣地址是由公鑰通過一種哈希演算法生成的。比特幣地址是一串長長的數字和字母,可以用來接收比特幣。任何人都可以看到比特幣地址,但只有持有私鑰的人才能授權比特幣的轉移。
因此,私鑰是比特幣安全的基石,因為只有私鑰持有人才能對比特幣進行控制。任何其他人都不能夠訪問或操縱持有人的比特幣,除非私鑰持有人授權或泄露了私鑰。