比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

區塊鏈基礎知識篇——《精通比特幣》第四章“密鑰、地址、錢包”解讀_SHA

Author:

Time:1900/1/1 0:00:00

通過本章的學習,可以幫你很具象的熟悉錢包的原理,以及私鑰、公鑰、比特幣地址和錢包的關系。本章可以為產品和技術人員設計研發數字錢包時提供參考。

閱讀時長:15分鐘左右

4.1私鑰、公鑰、地址和錢包的關系

錢包:錢包是私鑰的容器,錢包中只包含私鑰,不包含比特幣,錢包定義了一套生成私鑰、管理私鑰以及使用私鑰簽名的規則。

私鑰:作用是對交易進行簽名。由錢包通過隨機熵源生成,也可由錢包導入已有的私鑰。

公鑰:由私鑰通過特定的橢圓曲線函數生成。由私鑰可以推出公鑰,但由公鑰很難計算出私鑰。

比特幣地址:由公鑰經過單向的雙哈希函數生成,通過Base58check編碼的方式呈現,比特幣地址以數字1開頭。

在了解以上4個概念的關系后,下面詳細講解私鑰、公鑰、地址的生成原理以及錢包的分類。

4.2私鑰的生成原理

私鑰就是一個隨機選出的數字而已,該隨機數是一個二進制的256位數字。隨機性數據來源于符合密碼學安全的隨機數生成器,即從一堆隨機源的數據中取出一串隨機字節,通過SHA算法轉化成256位的二進制數字,再驗證選擇的隨機數是否處于1到n-1之間(其中n是一個常數,略小于2^256),如果運算結果小于n-1,則隨機數合適,否則需要重新選取隨機數,直至所選取的隨機數滿足驗證條件為止。

日本國稅廳發布對區塊鏈游戲等NFT交易征稅的指導方針,涵蓋所得稅、消費稅等情況:1月16日消息,日本國稅廳今日發布了有關NFT的稅務上的一般處理文件,指南除了列舉爭對NFT征收所得稅的案例外,也發布了征收消費稅等情況的案例。因游戲內代幣的取得和使用情況非常頻繁,難以評估,因此將在年末統一進行計算。

指南指出,如果個人創建NFT并將其出售給第三方(一次分配),或者如果購買NFT的人將其轉售給另一個人(二次分配),則利潤是“所得稅”,需繳納稅款。如果你把NFT免費送給熟人,贈送的一方可能不征稅,但贈與的一方可能征稅。某人制作NFT并通過市場銷售給日本消費者從中獲得報酬時,該NFT制作者將被征收消費稅。另外,作為二次流通,將購入的NFT賣給他人時,如果是通過日本經營者進行對價出售的,則對該經營者征收消費稅。

通過區塊鏈游戲獲得的報酬原則上被劃分為“雜項收入”,是所得稅的征稅對象。但作為報酬獲得的游戲內代幣,如果只能在游戲內使用,則不被視為所得稅征稅對象。另外,對于此前不明確的“因不正當訪問導致NFT被盜、消失的情況”等,也明確了稅法上的原則性處理。但是,FAQ只是關于一般處理的回答,需要注意具體問題將具體對待,因此確定申報時的詳細計算方法需要向專家和國稅廳確認。(Coinpost)[2023/1/16 11:14:19]

當然,不同的錢包選取的隨機數位數可能不一樣。

FIS集團公司Worldpay加入Klaytn區塊鏈治理委員會:由韓國互聯網巨頭Kakao(KRX:035720)領導的區塊鏈項目Klaytn宣布,來自FIS(富達國家信息服務公司)的全球金融科技領導者Worldpay將加入Klaytn治理委員會。

Worldpay將與治理委員會成員合作開發基于區塊鏈的全渠道分發中心,為Klaytn及其生態系統合作伙伴(包括交易所、交易商和托管人)提供全球信用卡和借記卡服務。[2020/8/4]

私鑰的表示方法

私鑰的常見表示法有十六進制、WIF格式、WIF-compressed格式。

十六進制格式的私鑰,是將原始256位的二進制數據轉換成了64位的十六進制數據表示出來;

WIF,即錢包導入格式,指將私鑰導入新的錢包中時,錢包用來識別私鑰的格式,所以在錢包導出私鑰時,會生成該格式的私鑰。WIF格式的私鑰以5開頭,代表該格式的私鑰需要生成非壓縮格式的公鑰。

WIF-compressed,即錢包導入壓縮格式,該私鑰的格式以K或L開頭,將私鑰導入到錢包后,代表錢包會用該格式的私鑰生成壓縮格式的公鑰,以便正確解析比特幣地址。

伯明翰城市大學等進行區塊鏈證書試驗:伯明翰城市大學、非盈利組織Centre for Citizenship與Enterprise and Governance(CCEG)已經開始了一項基于區塊鏈證書的試驗。該試驗名為“Сoronavirus Сlearance Сertificate(CCC)”,建立在Seratio區塊鏈上,旨在保護供應鏈免受新冠病感染。(Decrypt)[2020/4/24]

4.3公鑰的生成原理

私鑰通過橢圓曲線函數,可以計算得到公鑰,這是不可逆的過程:K=k*G。其中k是私鑰,G是橢圓曲線上定義的初始常數點,K是公鑰。

比特幣的橢圓曲線方程:y^2=x^3+7,這條曲線定義在素數階p的有限域內,可以想象為在一個極大的網格上定義了一系列復雜的散點。公鑰K的計算運用了橢圓曲線的加法和乘法規則:k*G=G+G+……+G,且該橢圓曲線上的兩個點想加,其相加的和等于與橢圓曲線相交于另一點、然后在X軸上的反射點。那么G+G的值相當于從G點做切線后與曲線相交點,其在X軸上的反射點2G,如下圖所示:

動態 | 泰國海關總署將采用區塊鏈技術對貨運進行跟蹤:據vietnamplus報道,泰國海關總署將采用區塊鏈平臺TradeLens,用以對貨運進行跟蹤,實現信息共享,從而簡化程序。[2019/8/29]

圖一橢圓曲線同點相加,圖片來源于網絡

公鑰K定義為該反射點的坐標K=。

公鑰的表示方法

公鑰是根據橢圓曲線計算出來的坐標,知道了x的值,可以根據函數求出對應y的值。如果同時將x和y用256位二進制存儲的話,所占空間將增大1倍,存儲空間上有些浪費。所以,公鑰的表示格式分為非壓縮格式和壓縮格式。

非壓縮格式的公鑰,是指生成的公鑰拼接了x和y的值,非壓縮格式的公鑰,以前綴04開頭。

壓縮格式的公鑰,是指生成的公鑰中只包含了x的值,壓縮格式的公鑰,以前綴02或03開頭。如上述橢圓曲線同點相加圖示,同一個橫坐標x可能對應2個y值,由于y在有限域中只有正數,此處的2個y值分別對應奇數和偶數,前綴02開頭表示y是偶數,前綴03開頭表示y是奇數。

聲音 | 香港財政司司長:在港發展的創新科技業務涵蓋區塊鏈等多方面:據文匯報消息,香港特區政府財政司司長陳茂波表示,在港發展的創新科技業務涵蓋多方面,包括大數據、區塊鏈、移動支付、網絡安全、人工智能、程序交易等的應用研發。[2018/11/9]

由私鑰生成壓縮格式的公鑰時,會在私鑰的后面拼接01,用以表明該私鑰來自于一個較新的錢包,只能用來生成壓縮的公鑰。對于私鑰本身,是不會改變原值而壓縮的。這樣做的目的是為了給導入私鑰的錢包一個信號:到底是使用壓縮格式公鑰和比特幣地址去掃描區塊鏈,還是使用非壓縮格式公鑰和比特幣地址。

4.4比特幣地址

比特幣地址是將公鑰經過雙哈希,得到公鑰哈希后,采用Base58check編碼的形式展示。比特幣地址以1開頭。

Base64編碼是將任意的一長串輸入轉化成特定長度的數字和字母組成的表示法,其編碼字符使用了26個小寫字母、26個大寫字母、10個數字和兩個符號+以及/,Base58編碼舍棄了一些容易錯讀和混淆的字符,其不含數字0,小寫o、大寫O、小寫i、大寫I以及+和/兩個字符。Base58check編碼采用的是Base58編碼,同時加入了校驗的功能。

最終的比特幣地址由版本前綴、公鑰哈希和校驗碼3部分組成。其中版本前綴用來標識編碼后得到的是比特幣地址,如采用Base58check編碼時,比特幣地址的前綴是0,私鑰編碼的前綴為128;公鑰哈希,即將原始公鑰經過SHA256和RIPEMD計算后得到的20字節的值;校驗碼,是由前綴拼接公鑰哈希后,經過2次SHA256,取計算后的值的前4個字節得到。

比特幣地址的生成原理,如下圖所示:

圖二比特幣地址的生成原理

使用Base58check編碼格式時,編碼軟件會計算原始數據的校驗碼和結果數據中自帶的校驗碼進行對比,二者不匹配則表明有錯誤產生,那么這個地址也是無效的。

4.5比特幣錢包的分類

錢包是用來管理私鑰的容器。比特幣錢包分為非確定性錢包錢包和確定性錢包。

非確定性錢包:由錢包預先隨機生成N個私鑰,每個私鑰一旦使用,需要單獨備份,當密鑰足夠多時,很難管理、備份和導入到新錢包,所以這種錢包使用起來很不方便,正被確定性錢包替代。

確定性錢包:又稱種子錢包,顧名思義,即通過一個種子即可推出所有密鑰。所以,在備份密鑰或導入到新錢包時,只需要備份種子密鑰即可,剩余的密鑰可以根據既定規則推算出來。常見的確定性錢包,包含助記碼詞匯以及分層確定性錢包。

助記碼詞匯

助記碼詞匯是用英文單詞序列代表作種子,來對應確定性錢包的隨機數。單詞的順序就是錢包的備份,也就是對應的私鑰集合。助記碼詞匯可以讓使用者復制錢包更容易一些,它們相對于隨機數字順序來說,可以很容易的被讀并且正確抄寫。

助記碼和種子的創建過程如下:

1.創造一個128到256位的隨機順序;

2.使用SHA256哈希該隨機順序,取前幾位作為校驗和。所選取的隨機數的位數不同,校驗和的字符數也不相同。

3.把校驗和拼接在隨機順序的后面

4.按順序把拼接后的值分解成11位不同的集合,并用這些集合去和一個預先已經定義的2048個單詞字典做對應

5.取出對應的單詞,按順序即可生成一個12至24個詞的助記碼。

分層確定性錢包

分層確定性錢包,是通過單個種子生成主密鑰,再由主密鑰以樹狀結構衍生子密鑰,子密鑰又可以通過規則衍生出孫密鑰,以此類推,一個種子可以衍生出無窮個子密鑰,而且備份時只需備份種子即可將錢包中的所有密鑰備份。

由種子衍生主密鑰的過程:

如上圖所示,由隨機數生成種子后,通過單向哈希函數,輸出512位的值,其中左邊的256位做為主密鑰,右邊的256位作為主鏈編碼。

由父私鑰衍生子私鑰的過程:

如上圖所示,父私鑰衍生子私鑰時,先由父私鑰生成父公鑰,再由父公鑰、父鏈編碼和索引號通過單向哈希函數計算輸出512位的值,左邊的256位對應子密鑰,右邊的256位對應子鏈編碼。其中索引號用來標識子私鑰對應的位置。

4.6總結

通過本章的學習,可以很具象的熟悉私鑰、公鑰和比特幣地址的背后原理,同時了解錢包的本質及其管理私鑰的方式。本章可以為產品和技術人員設計研發數字錢包時提供參考。

推薦閱讀

區塊鏈基礎知識篇——《精通比特幣》第三章“比特幣客戶端”解讀

區塊鏈基礎知識篇——《精通比特幣》第二章“比特幣的原理”解讀

區塊鏈基礎知識篇——比特幣經典書籍《精通比特幣》第一章解讀

比特幣是有錢人的收藏品,不具備社會流通價值

作為一個普通白領,我為什么會認可區塊鏈?

區塊鏈大火,這是普通人參與區塊鏈投資最簡單直接的方式

Tina說

轉型區塊鏈,來這里就對了

Tags:比特幣區塊鏈SHA比特幣中國官網聯系方式40億比特幣能提現嗎比特幣最新價格行情走勢區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢SHA價格SHA幣

以太坊價格今日行情
區塊鏈日報:好萊塢女影星唱多比特幣,比特幣價格走勢得到修復_比特幣

區塊鏈日報:好萊塢女影星唱多比特幣,比特幣價格走勢得到修復早間行情播報:BTC窄幅震蕩于6460USDT左右數字貨幣市場跌多漲少據火幣Pro行情顯示,今日零時開始BTC持續下跌.

1900/1/1 0:00:00
比特幣現金硬分叉之戰_ABC

BCH將在11月15日進行硬分叉,距離上一次比特幣分叉,BCH出現也僅僅過了15個月。橫盤已久的BCH近期市場表現極好,甚至帶動了瑞波等其它主流幣種的走勢.

1900/1/1 0:00:00
漫話穩定幣:周碩基長期看好PAX_穩定幣

2019年3月12日,美國數字資產信托公司Paxos與全球知名投資機構FBGCapital聯合主辦的“漫話穩定幣”活動在香港中環舉行.

1900/1/1 0:00:00
KTM 2019全系16款新車型 高清大圖和主要參數_DUK

轉載自百家號作者:寰泰MOTORBIKEKTM是一個活躍在越野賽場上的奧地利摩托車品牌,在2019年陸續推出包括探險拉力、旅行、街車、仿賽各類別共16款新車型。聲勢浩大,款款精品,吸睛無數.

1900/1/1 0:00:00
誰是最后的比特幣信徒?_數字貨幣

作者/張小黑編輯/張瀟 審核/劉樂樂 哪個領域的財富正在快速地煙消云散、化為烏有? 數字貨幣,沒有第二.

1900/1/1 0:00:00
比特幣未完成初稿,B-money以及他背后的亞裔密碼學家Wei Dai | 讀懂區塊鏈_比特幣

作者任意 審核凌晨 墨客星球于深圳河畔報道 編者按:本文為《區塊鏈史前簡史》的第5部分。在《區塊鏈史前簡史》中,我們對區塊鏈誕生的前世今生做了一個梳理;此后,我們又對為比特幣的誕生作出了巨大貢獻.

1900/1/1 0:00:00
ads