當前位置:首頁 » 文件管理 » 私鑰壓縮地址

私鑰壓縮地址

發布時間: 2024-05-14 22:37:46

Ⅰ 鍍忚瘹淇″竵榪欐牱鍩轟簬鍖哄潡閾劇殑鏁板瓧璐у竵涓錛岀侀掗錛屽叕閽ワ紝鍦板潃鍒板簳鏄鎬庝箞鍥炰簨錛

寰堝氬皬鐧藉垰鍏ュ満鏃訛紝灝辮縐侀掗錛屽叕閽ワ紝鍦板潃錛岀瓑絳夊叧緋誨紕鏅曞ご銆傛湁鐨勭敋鑷蟲妸鑷宸辯侀掗鎼炰涪浜嗭紝鍦板潃涓婄壒鍒鏈夐挶錛屽彲鍋忓嚲灝辨槸鍙栦笉鍑烘潵錛屼粖澶╁皬鐧藉氨鎶婄侀掗錛屽叕閽ワ紝榪樻湁鍦板潃涔嬮棿鐨勫叧緋昏窡澶у舵崑涓鎹嬨

縐侀掗銆佸叕閽ュ拰鍦板潃榪欎笁鑰呯殑鍏崇郴鏄錛

縐侀掗杞鎹㈡垚錛堢敓鎴愶級鍏閽ワ紝鍐嶈漿鎹㈡垚鍦板潃錛屽傛灉鏌愪釜鍦板潃涓婃湁姣旂壒甯佹垨璇氫俊甯侊紝灝卞彲浠ヤ嬌鐢ㄨ漿鎹㈡垚榪欎釜鍦板潃鐨勭侀掗鑺辮垂涓婇潰鐨勮瘹淇″竵銆傚叕閽ュ拰鍦板潃鐨勭敓鎴愰兘渚濊禆浜庣侀掗錛屾墍浠ョ侀掗鎵嶆渶閲嶈併

鎵嬫満閽卞寘涔熸槸鍚屾牱錛屼絾鍥犱負鎵嬫満鐨勬枃浠剁$悊鏂瑰紡涓嶅儚璁$畻鏈洪偅涔堟柟渚褲傛墍浠ヤ竴鑸鎵嬫満閽卞寘浼氭彁渚涗竴涓鍚嶄負鎴栫被浼尖滃煎嚭縐侀掗鈥濈殑鍔熻兘錛岄氳繃榪欎釜鍔熻兘錛屽氨鍙浠ュ皢縐侀掗鐢ㄥ悇縐嶅艦寮忓煎嚭鏉ャ

姣斿傛瘮鐗瑰竵鎵嬫満閽卞寘鍙浠ュ煎嚭涓轟簩緇寸爜錛屽彲浠ユ墦鍗版垨鑰呮壂鎻忓埌綰鎬笂銆傛洿鎹㈡墜鏈烘椂錛岃呭ソ姣旂壒甯侀挶鍖呮壂鎻忎竴涓嬭繖涓浜岀淮鐮侊紝灝卞彲浠ュ疄鐜拌縼縐繪瘮鐗瑰竵銆傛瘮鐗瑰竵鎵嬫満閽卞寘鍜岃瘹淇″竵鎵嬫満閽卞寘鍙浠ュ煎嚭涓轟竴浠芥槑鏂囧瓧絎︿覆錛屾墦鍗板埌綰鎬笂鈥斺旇繖灝辨槸綰擱挶鍖呫

綰擱挶鍖呰╃敤鎴峰彲浠ュ埌浠諱綍鏈夋瘮鐗瑰竵鎴栬瘹淇″竵閽卞寘鐨勭粓絝鏉ヨ姳璐逛綘鐨勬瘮鐗瑰竵鎴栬瘹淇″竵銆

鐢變簬閽卞寘涓㈠け鎴栨崯鍧忎細瀵艱嚧澶卞幓縐侀掗錛屼粠鑰屽交搴曞け鍘昏ユ暟瀛楄揣甯佺殑杞璐︽潈銆傝侀槻姝㈠嚭鐜拌繖鏍風殑鎮插墽錛屽氨瑕佽板緱緇忓父澶囦喚閽卞寘閲岀殑鏁版嵁銆傞櫎浜嗗湴鍧澶栵紝澶囦喚鏃朵篃淇濆瓨浜嗘墍鏈夌殑縐侀掗銆

鎬葷粨

  1. 縐侀掗瑕佷繚鎶ゅソ錛岄槻姝涓㈠け錛岄槻姝㈠繕璁幫紝鍦ㄦ墜鏈烘竻淇℃伅鏃舵柟寮忚娓呴櫎錛屾渶濂芥墜鎶勪竴浠斤紝浣嗕笉瑕佹硠闇層

  2. 瑕侀槻姝㈣嚜宸遍挶鍖呬涪澶辨垨鎹熷潖錛屽艱嚧涓㈠け縐侀掗錛屼撫澶辨暟瀛楄揣甯佺殑杞璐︽潈錛屽惁鍒欎綘欏垮啀澶氬竵鍙栦笉鍑烘潵錛岃繕涓嶆槸娌$敤銆

Ⅱ 涓涓縐侀掗鍙浠ョ敓鎴愬氬皯涓鍦板潃

3涓銆傛牴鎹鏌ヨ㈡偀絀洪棶絳旀樉紺猴紝鍚屼竴涓狟TC縐侀掗鉶界劧瀵瑰簲鐫3涓涓嶅悓鐨凚TC鍦板潃錛屼絾鏄榪3涓鍦板潃閮芥槸姝e父鍦板潃錛岄兘鏄鍙浠ヤ嬌鐢ㄧ殑銆

Ⅲ 【以太坊易錯概念】nonce, 公私鑰和地址,BASE64/BASE58,

以太坊里的nonce有兩種意思,一個是proof of work nonce,一個是account nonce。

在智能合約里,nonce的值代表的是該合約創建的合約數量。只有當一個合約創建另一個合約的時候才會增加nonce的值。但是當一個合約調用另一個合約神棚中的method時 nonce的值是不變的。
在以太坊中nonce的值可以這樣來獲取(其實也就是屬於一個賬戶的交易數量):

但是這個方法只能獲取交易once的值。仔茄目前是沒有內置方法來訪問contract中的nonce值的

通過橢圓曲線演算法生成鑰匙對(公鑰和私鑰),以太坊採用的是secp256k1曲線,
公鑰採用uncompressed模式,生成的私鑰為長度32位元組的16進制字串,公鑰為長度64的公鑰字串。公鑰04開頭。
把公鑰去掉04,剩下的進行keccak-256的哈希,得到長度64位元組的16進制字串,丟掉前面24個,拿後40個,再加上"0x",即為以太坊地址。

整個過程可以歸納為:

2)有些網關或系統只能使用ASCII字元。Base64就是用來將非ASCII字元的數據轉換成ASCII字元的一種方法,而且base64特別適合在http,mime協議下快速傳輸數據。Base64使用【字母azAZ數字09和+/】這64個字元編碼。原理是將3個位元組轉換成4個位元組(3 X 8) = 24 = (4 X 6)
當剩下的字元數量不足3個位元組時,則應使用0進行填充,相應的,輸出字元則使用'='佔位,因此編碼後輸出的文本末尾可能會出現1至2個'='。

1)Base58是用於Bitcoin中使用的一種獨特的編碼方式,主要用於產生Bitcoin的錢包地址。相比Base64,Base58不使用數字"0",字母大寫"O",字母大寫"I",和字母小寫"l",以及"+"和"/"符號。

Base58Check是一種常用在比特幣中的Base58編碼格式,增加了錯誤校驗碼來檢查數據在轉錄中出現的錯誤。 校驗碼長4個位元組,添加到需要編碼的數據之後。校驗碼是從需要編碼的數據的哈希值中得到的,所以可以用來檢測並避免轉錄和輸入中產生的錯誤。使用 Base58check編碼格式時,編碼軟體會計算原始數據的校驗碼並和結果數據中自帶的校驗碼進行對比。二者不匹配則表明有錯誤產生,那麼這個 Base58Check格式的數據就是無效的。例如,一個錯誤比特幣地址就不會被錢游戚則包認為是有效的地址,否則這種錯誤會造成資金的丟失。

為了使用Base58Check編碼格式對數據(數字)進行編碼,首先我們要對數據添加一個稱作「版本位元組」的前綴,這個前綴用來明確需要編碼的數 據的類型。例如,比特幣地址的前綴是0(十六進制是0x00),而對私鑰編碼時前綴是128(十六進制是0x80)。 表4-1會列出一些常見版本的前綴。

接下來,我們計算「雙哈希」校驗碼,意味著要對之前的結果(前綴和數據)運行兩次SHA256哈希演算法:

checksum = SHA256(SHA256(prefix+data))
在產生的長32個位元組的哈希值(兩次哈希運算)中,我們只取前4個位元組。這4個位元組就作為校驗碼。校驗碼會添加到數據之後。

結果由三部分組成:前綴、數據和校驗碼。這個結果採用之前描述的Base58字母表編碼。下圖描述了Base58Check編碼的過程。

相同:

1) 哈希演算法、Merkle樹、公鑰密碼演算法
https://blog.csdn.net/s_lisheng/article/details/77937202?from=singlemessage

2)全新的 SHA-3 加密標准 —— Keccak
https://blog.csdn.net/renq_654321/article/details/79797428

3)在線加密演算法
http://tools.jb51.net/password/hash_md5_sha

4)比特幣地址生成演算法詳解
https://www.cnblogs.com/zhaoweiwei/p/address.html

5)Base58Check編碼實現示例
https://blog.csdn.net/QQ604666459/article/details/82419527

6) 比特幣交易中的簽名與驗證
https://www.jianshu.com/p/a21b7d72532f

熱點內容
安卓手機藍牙默認地址在哪裡 發布:2025-01-18 03:47:57 瀏覽:906
shell腳本文件路徑 發布:2025-01-18 03:40:31 瀏覽:483
sql語句執行錯誤 發布:2025-01-18 03:21:49 瀏覽:651
資料庫雙引號 發布:2025-01-18 03:10:20 瀏覽:79
學java和php 發布:2025-01-18 03:01:03 瀏覽:452
怎麼開伺服器的埠 發布:2025-01-18 02:54:23 瀏覽:648
別克君越編程 發布:2025-01-18 02:32:24 瀏覽:914
ftp游戲下載網站 發布:2025-01-18 02:09:04 瀏覽:628
python調用另一個文件中的函數 發布:2025-01-18 02:03:54 瀏覽:597
mysql存儲html 發布:2025-01-18 01:57:24 瀏覽:129