www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 什么是私鑰? 一般我們看到的私鑰是這樣的一段字符串:5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss 支持比特幣協(xié)議的應(yīng)用都

什么是私鑰?

一般我們看到的私鑰是這樣的一段字符串:5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss

支持比特幣協(xié)議的應(yīng)用都可以正確把這段字符串轉(zhuǎn)換成比特幣的私鑰,再轉(zhuǎn)換出公鑰,再得到一個地址,如果該地址上面有對應(yīng)的比特幣,就可以使用這個私鑰花費上面的比特幣。

私鑰本質(zhì)上是隨機數(shù)私鑰本質(zhì)上是一個隨機數(shù),由32個byte組成的數(shù)組,1個byte等于8位二進制,一個二進制只有兩個值0或者1。所以私鑰的總數(shù)是將近2^(8*32)=2^256個,但是有一些私鑰并不能使用,他真實的大小是介于:1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間的數(shù)。這個數(shù)量已經(jīng)超過了宇宙中原子的總數(shù),想要遍歷所有的私鑰,耗盡整個太陽的能量也是不可能的。

我們所說的比特幣私鑰的是密碼學(xué)上面安全的,并不是說不可能出現(xiàn)重復(fù)的私鑰,而是說不可能通過遍歷的方式找到某一個特定的私鑰,或者通過其它的方式找,而不通過私鑰就能花費地址上面的比特幣,私鑰的安全性是由數(shù)學(xué)上保證的。

私鑰的總數(shù)量很大,但是私鑰的生成是依賴隨機數(shù)的,真正的隨機是很難做到的,大部分私鑰的生成都是依賴于偽隨機算法(PRNG)。

偽隨機是用函數(shù)生成隨機數(shù)。它并不真正是隨機的。只是一個比較近似真隨機的隨機數(shù)。

私鑰生成的隨機性就很重要的,密碼學(xué)上安全的隨機是指:

隨機是不可預(yù)測的,隨機的結(jié)果是不可遍歷的,如果不是安全的隨機數(shù)生成器,生成的私鑰就有可能被別人碰撞到。不依賴隨機生成的私鑰就會大大的降低其生成的概率空間。

什么是公鑰?

公鑰是由數(shù)字和字母組成的另一個地址,這些數(shù)字和字母是通過使用數(shù)學(xué)函數(shù)加密后從私鑰派生出來的。加密過程是不可逆轉(zhuǎn)的,因此沒有人能夠找到原始的私鑰。這個地址可以讓你接收比特幣。

公鑰的哈希值總是1,它看起來是這樣的:1 bvbmseystwetqtfn5au4m4gfg7xjanvn2

這個地址您可以公開提供,以便接收比特幣。用戶可以生成的公共地址數(shù)量沒有限制。為了生成這樣的密鑰并隨后生成錢包地址,必須對私鑰進行多次轉(zhuǎn)換。這些轉(zhuǎn)換稱為哈希函數(shù),是不可逆的轉(zhuǎn)換。

使用ECDSA創(chuàng)建公鑰

你要做的第一件事就是將ECDSA應(yīng)用到你的私鑰上,也就是橢圓曲線數(shù)字簽名算法。定義的一個橢圓曲線方程為y2= x3+ ax + b, a和b為選定值。比特幣利用的是secp256k1曲線。

對私鑰應(yīng)用ECDSA將得到一個64字節(jié)的整數(shù),該整數(shù)由兩個32字節(jié)的整數(shù)組成,它們表示橢圓曲線上點的X和Y。

下面是用Python語言編寫的代碼:

private_key_bytes = codecs.decode(private_key, ‘hex’)

# Get ECDSA public key

key = ecdsa.SigningKey.from_string(private_key_bytes, curve=ecdsa.SECP256k1).verifying_key

key_bytes = key.to_string()

key_hex = codecs.encode(key_bytes, ‘hex’)

在上面給出的代碼中,使用編程器對私鑰進行解碼。在Python中,至少有兩個類可以保存私鑰和公鑰:“str”、字符串?dāng)?shù)組和“bytes”——字節(jié)數(shù)組,事情可能會變得有點混亂。

這是因為X字符串?dāng)?shù)組不等于X字節(jié)數(shù)組,但它等于有兩個元素的字節(jié)數(shù)組O《。codecs.decode方法將字符串轉(zhuǎn)換成字節(jié)數(shù)組。

在應(yīng)用ECDSA之后,我們必須將字節(jié)0x04(04作為前綴)添加到生成的公鑰中。這將生成一個完整的比特幣公鑰。

壓縮公鑰

我們可以將公鑰壓縮得更短,而不是使用公鑰的長版本。

這是通過從ECDSA公鑰中獲取X并在Y的最后一個字節(jié)是偶數(shù)時添加0x02,如果最后一個字節(jié)是奇數(shù),則添加0x03字節(jié)。

使用SHA-256和RIPEMD-160加密密鑰

現(xiàn)在我們繼續(xù)創(chuàng)建錢包地址。不管應(yīng)用于公鑰的方法是什么,過程都是相同的。顯然,您將得到不同的結(jié)果地址。

為此,我們需要應(yīng)用兩個哈希函數(shù): 首先,我們將SHA-256應(yīng)用于公鑰,然后使用RIPEMD-160加密結(jié)果。非常重要的是,算法應(yīng)用的順序要準確。

在這個過程的最后,您將得到一個160位整數(shù),它表示加密的公鑰。

下面是在Python中加密公鑰所需的代碼:

public_key_bytes = codecs.decode(public_key, ‘hex’)

# Run SHA-256 for the public key

sha256_bpk = hashlib.sha256(public_key_bytes)

sha256_bpk_digest = sha256_bpk.digest()

# Run RIPEMD-160 for the SHA-256

ripemd160_bpk = hashlib.new(‘ripemd160’)

ripemd160_bpk.update(sha256_bpk_digest)

ripemd160_bpk_digest = ripemd160_bpk.digest()

ripemd160_bpk_hex = codecs.encode(ripemd160_bpk_digest, ‘hex’)

添加網(wǎng)絡(luò)字節(jié)

由于比特幣有兩個網(wǎng)絡(luò),主網(wǎng)和測試網(wǎng),我們需要創(chuàng)建一個地址在主網(wǎng)使用。這意味著我們必須向加密的公鑰中添加0x00字節(jié)。對于測試網(wǎng)的使用,您必須添加0x6f字節(jié)。

計算校驗和

下一步是計算得到的主網(wǎng)密鑰的校驗和。校驗和確保密鑰在整個過程中仍然保持其完整性。如果校驗和不匹配,地址將被標記為無效。

為了生成密鑰的校驗和,必須應(yīng)用SHA-256哈希函數(shù)兩次,然后從這個結(jié)果中取前4個字節(jié)。請記住,4個字節(jié)代表8個十六進制數(shù)字。

計算校驗和所需的代碼是:

# Double SHA256 to get checksum

sha256_nbpk = hashlib.sha256(network_bitcoin_public_key_bytes)

sha256_nbpk_digest = sha256_nbpk.digest()

sha256_2_nbpk = hashlib.sha256(sha256_nbpk_digest)

sha256_2_nbpk_digest = sha256_2_nbpk.digest()

sha256_2_hex = codecs.encode(sha256_2_nbpk_digest, ‘hex’)

checksum = sha256_2_hex[:8]

創(chuàng)建地址所需的最后一步是合并主網(wǎng)密鑰和校驗和。

用Base58編碼密鑰

您將注意到,生成的密鑰看起來不像其他BTC地址。這是因為大多數(shù)將它們轉(zhuǎn)換為Base58地址。

下面是將十六進制地址轉(zhuǎn)換為Base58地址所需的算法:

ef base58(address_hex):

alphabet = ‘123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz’

b58_string = ‘’

# Get the number of leading zeros

leading_zeros = len(address_hex) — len(address_hex.lstrip(‘0’))

# Convert hex to decimal

address_int = int(address_hex, 16)

# Append digits to the start of string

while address_int 》 0:

digit = address_int % 58

digit_char = alphabet[digit]

b58_string = digit_char + b58_string

address_int //= 58

# Add ‘1’ for each 2 leading zeros

ones = leading_zeros // 2

for one in range(ones):

b58_string = ‘1’ + b58_string

return b58_string

結(jié)果字符串將代表壓縮的比特幣錢包地址。

結(jié)論

如果您密切關(guān)注上述步驟,那么從私鑰生成比特幣錢包地址的過程并不困難。如果您的私鑰已滿或已壓縮,即使生成的地址將看起來不同,但它們都是有效的。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉