比特幣--私鑰->公鑰->錢包地址


腦錢包-字符串SHA256散列成256bit當做私鑰-彩虹表

腦錢包是開源的程序-->用戶輸入字符串當做密碼-->經過SHA256散列算法-->256長bit位 (即是私鑰)-->進過BASE58編碼
-->可見字符串,便於存儲-->再經過私鑰生成公鑰和錢包地址的流程
BASE58: 比特幣專用,類似base64,單是去除了其中易混淆的字母,如 0 (零), O (大寫字母O), I (大寫的字母i) and l (小寫的字母L) ,和幾個影響雙擊選擇的字符,如/, +

比特幣私鑰-即一個256長bit位(32字節)

a).  私鑰本質是一個256長的bit位,生成方法任意,也可以采用BitCoin自帶的程序隨機生成(所以會有極小極小極小概率重復)
b).  通常看到的私鑰是經過BASE58編碼轉成可見字符串,如5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss

私鑰-->公鑰-->錢包地址

私鑰-->公鑰

a). 比特幣選取的生成算法是橢圓曲線密碼(細節實在不懂啊)下的secp256k1標准, 其公式是y^2 = x^3 + 7
函數圖如下
b). 公私鑰關鍵公式: K=k*G, 其中k是我們的私鑰,G為算法基點(對比特幣來說是個固定值),結果K即公鑰是函數曲線上的另外一個點。
k和K的數學運算是單向的,所以不能從公鑰推導出私鑰。
我們的⽬標是找到⽣成點G的倍數kG。 也就是將G相加k次。 在橢圓曲線中, 點的相加等同於從該點畫切線找到與曲線相交的另⼀點, 然后映射到x軸。

c). 公鑰K(65字節)可以用X/Y軸表示,即(x,y)各32字節,一個字節04
公鑰P.X: 06CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385
公鑰P.Y: FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB

公鑰-->錢包地址

a). 將前面得到的公鑰x/Y合並得到標准地址,0406CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB
進行SHA-256得到B
b). 對B進行進行RIPEMD-160計算,得到C
c). C前面加入地址版本號(比特幣主網版本號"0X00"),得到D
d). 對D進行2次SHA-256得到E
e). 取E的前4個字節作為校驗位加入到D的前面,得到 E(4)D == F -- 即是錢包地址
f). 對F進行Base58編碼即是傳統意義上可見的錢包地址啦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM