區塊鏈去中心化錢包系統開發功能定製邏輯分析
比特幣的所有權是通過數字金鑰、比特幣地址和數字簽名來確立的。系統詳情瞭解(V+hkkf5566)數字金鑰由使用者生成並儲存在數字錢包(也稱比特幣錢包)。錢包中包含成對的私鑰和公鑰。使用者用私鑰來簽名交易,從而證明他們擁有交易的輸出;而通過公鑰生成的比特幣地址,則用於收款。以下分別對公/私鑰、比特幣地址、比特幣錢包進行說明。
(1)公鑰和私鑰
比特幣使用橢圓曲線演算法作為其公鑰加密的基礎演算法。
每個金鑰對包括一個私鑰和一個公鑰。私鑰是一個隨機選擇的數字,由256位的二進位制數字組成,由隨機數生成。
使用橢圓曲線演算法這個單向加密函式,由私鑰生成公鑰;而反向用公鑰求解私鑰的過程是非常困難的,被稱為“尋找離散對數”。
在橢圓曲線上,公鑰計算方法為:
K=k*G
其中,k是私鑰,G是生成點,在該曲線上所得的點K是公鑰。比特幣中的生成點G都是相同的。
在比特幣中,私鑰和公鑰可以用多種編碼格式表示。公鑰分為非壓縮格式公鑰和壓縮格式公鑰兩種。其中,非壓縮格式公鑰的字首是04,壓縮格式公鑰的字首是02或者03。
(2)比特幣地址
比特幣地址是一個由數字和字母組成的字串,通常作為收款方出現。由公鑰生成比特幣地址時使用的演算法是SHA (Secure Hash Algorithm)和RIPEMD (RACE Integrity Primitives Evaluation Message Digest),特別是SHA256和RIPEMD160。
以公鑰K為輸入,計算其SHA256雜湊值,並用該結果計算RIPEMD160雜湊值,得到一個長度為160位元(20位元組)的數字:
A=RIPEMD160(SHA256(K))
其中,K是公鑰,A是生成的比特幣地址。
通常,比特幣地址是經過Base58Check編碼的,這種編碼使用了58個字元(一種Base58數字系統)和校驗碼,提高了可讀性,避免了歧義,並有效防止了在地址轉錄和輸入中產生的錯誤。下圖是公鑰生成比特幣地址的過程。
從公鑰生成比特幣地址
(3)比特幣錢包
作為私鑰的容器,比特幣錢包有兩種型別,即非確定性(隨機)錢包和確定性(種子)錢包。
早期的比特幣錢包屬於非確定性(隨機)錢包,錢包是隨機生成的私鑰集合,通過有序檔案或簡單的資料庫實現。這種錢包的缺點是對於錢包中的多個隨機私鑰,需要經常性地備份,以免錢包不能訪問時,錢包所控制的資金將不能再被使用。
目前使用較多的確定性(種子)錢包通過使用單項離散方程可從公共的種子生成私鑰,只需在初始建立時做一次備份即可。該型別錢包中,代表性的是分層確定性錢包(Hierarchical Deterministic Wallet或HDWallet),簡稱HD錢包。
HD錢包由單個根種子建立,根種子為128〜256位的隨機數。為了便於使用者抄寫和備份,根種子表示為助記碼詞彙序列。使用HMAC-SHA512演算法,可以由根種子衍生出子金鑰序列,繼而衍生出孫金鑰序列,以此無窮類推。
助記碼和種子的建立過程如下:
1)創造一個128〜256位的隨機順序(熵)。
2)提出SHA256雜湊前幾位,就可以創造一個隨機序列的校驗和。
3)把校驗和加在隨機順序的後面。
4)把順序分解成11位的不同集合,並用這些集合去和一個預先己經定義的由2048個單片語成的字典做對比;
5)生成一個12〜24個詞的助記碼。
建立主金鑰以及HD錢包的主鏈編碼的過程如圖7-2所示。根種子輸入到HMAC-SHA512演算法中,就可以得到一個可用來創造主私鑰m和主鏈編碼的雜湊。使用橢圓曲線上的K=k*G可以由主私鑰m生成相對應的主公鑰M。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011332/viewspace-2896561/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 去中心化區塊鏈錢包支付系統開發模式中心化區塊鏈模式
- 區塊鏈錢包系統去中心化錢包模式開發案例詳情區塊鏈中心化模式
- 區塊鏈多鏈錢包開發詳情版丨區塊鏈多鏈錢包系統開發實現技術方案及邏輯區塊鏈
- 多鏈token去中心化錢包系統開發應用(原始碼分析)中心化原始碼
- 區塊鏈數字錢包系統開發方案,去中化多幣種錢包搭建區塊鏈
- 區塊鏈錢包系統開發:區塊鏈支付平臺系統開發區塊鏈
- 區塊鏈去中心化交易所原始碼|去中心化交易系統開發區塊鏈中心化原始碼
- 關於區塊鏈DAPP系統開發詳細功能邏輯區塊鏈APP
- Kcash區塊鏈錢包系統app開發區塊鏈APP
- 去中心化(多鏈)錢包系統開發方案(現有原始碼)中心化原始碼
- 區塊鏈錢包支付系統:區塊鏈支付平臺開發區塊鏈
- BSEX交易所去中心化系統開發技術(邏輯分析)中心化
- 區塊鏈去中化錢包開發方案,交易所錢包社交軟體開發區塊鏈
- 區塊鏈數字錢包系統開發方案區塊鏈
- 區塊鏈錢包開發區塊鏈
- 區塊鏈去中心化和傳統去中心化的區別區塊鏈中心化
- 區塊鏈去中心化DAPP系統開發技術(成熟技術)區塊鏈中心化APP
- imtoken錢包丨metamask小狐狸錢包丨tp錢包系統開發丨去中心化錢包系統開發詳細及原始碼中心化原始碼
- 區塊鏈挖礦錢包系統開發技術搭建區塊鏈
- 區塊鏈趣步DAPP合約模式系統開發丨去中心化DAPP系統開發方案區塊鏈APP模式中心化
- 從區塊鏈公司角度,分析區塊鏈錢包區塊鏈
- 多幣種數字錢包開發及區塊鏈數字錢包系統區塊鏈
- 區塊鏈DAPP錢包開發,波場DAPP開發錢包區塊鏈APP
- 區塊鏈錢包系統開發,數字貨幣高頻搬磚錢包app開發區塊鏈APP
- 區塊鏈錢包開發(Android篇)區塊鏈Android
- 區塊鏈技術開發 區塊鏈錢包交易所開發區塊鏈
- 區塊鏈Web3.0系統開發功能分析區塊鏈Web
- TP錢包/ImToken錢包/MetaMask小狐狸錢包/去中心化錢包系統開發成熟技術丨原始碼案例中心化原始碼
- 淺談區塊鏈錢包開發的功能及優勢區塊鏈
- 區塊鏈技術交易系統開發Token多幣種錢包開發區塊鏈
- 多鏈錢包開發原理丨多鏈錢包系統開發(詳情及流程)丨多鏈錢包系統原始碼分析原始碼
- 什麼是區塊鏈錢包開發區塊鏈
- 區塊鏈錢包開發與型別區塊鏈型別
- 關於多鏈錢包系統開發技術邏輯及規則(開發原始碼)原始碼
- DEX去中心化交易所|去中心化交易所APP系統定製開發技術中心化APP
- 區塊鏈波場TRX鏈DAPP挖礦專案系統開發邏輯(Python)區塊鏈APPPython
- 區塊鏈商城系統開發規則說明(邏輯及原始碼)區塊鏈原始碼
- 區塊鏈槓桿交易系統(邏輯實現及開發建議)區塊鏈