欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 錢包知識(shí) > 關(guān)于錢包的基礎(chǔ)密碼學(xué)

區(qū)塊鏈錢包原理科普:關(guān)于錢包的基礎(chǔ)密碼學(xué)

2021-12-13 11:51:34 | 來源: | 作者:佚名
這篇文章主要介紹了區(qū)塊鏈錢包原理科普:關(guān)于錢包的基礎(chǔ)密碼學(xué)的相關(guān)資料,希望這篇關(guān)于錢包的基礎(chǔ)密碼學(xué)的文章,能夠幫助到各位朋友對(duì)區(qū)塊鏈錢包原理的理解。

通過區(qū)塊鏈,人類歷史上首次通過技術(shù)徹底、純粹地保障「私有財(cái)產(chǎn)神圣不可侵犯」。

讓人沉思,讓人興奮的一段話。

可在這背后的基礎(chǔ)技術(shù)「密碼學(xué)」是如何工作,以及保障數(shù)字資產(chǎn)的安全呢?無論你是愛好者亦或投資客,應(yīng)該需要多少了解背后的原理,免得誤解,輕則鬧笑話,重則損失資產(chǎn)。因?yàn)槲覀兛倳?huì)聽到一些鬼扯的故事(幫我找回密碼吧!私鑰發(fā)到群里了誒?。?,皆是由于對(duì)錢包本質(zhì)的不了解。

本文僅談?wù)撳X包原型涉及的相關(guān)密碼學(xué),不包含 keystore,助記詞,轉(zhuǎn)賬交易等。

錢包如何生成

區(qū)塊鏈錢包原理科普:關(guān)于錢包的基礎(chǔ)密碼學(xué)

這是以太坊黃皮書關(guān)于錢包(私鑰、公鑰、地址)的描述,僅僅 2 行文字。主要講解私鑰通過 ECDSA(橢圓曲線簽名算法)推導(dǎo)出公鑰,繼而經(jīng)過 Keccak 單向散列函數(shù)推導(dǎo)出地址。

分解為 3 個(gè)步驟:

1. 創(chuàng)建隨機(jī)私鑰 (64 位 16 進(jìn)制字符 / 256 比特 / 32 字節(jié))

2. 從私鑰推導(dǎo)出公鑰 (128 位 16 進(jìn)制字符 / 512 比特 / 64 字節(jié))

3. 從公鑰推導(dǎo)出地址 (40 位 16 進(jìn)制字符 / 160 比特 / 20 字節(jié))

區(qū)塊鏈錢包原理科普:關(guān)于錢包的基礎(chǔ)密碼學(xué)

這是我從 ethereumjs/keythereum 中剝離出來的 JavaScript 代碼,關(guān)于黃皮書上的公式的具體實(shí)現(xiàn),僅僅 6 行代碼。

這是一件很奇妙的事情,2 行文字,6 行代碼承載著億萬級(jí)別的資產(chǎn),但往往越簡(jiǎn)單,越奧妙。以上的 6 行代碼,就已經(jīng)囊括密碼學(xué)中大多數(shù)技術(shù),比如隨機(jī)數(shù)生成器、非對(duì)稱加密,單向散列函數(shù)等。以下我會(huì)為大家解剖這 6 行代碼,逐一介紹背后相關(guān)的密碼學(xué)知識(shí)。

隨機(jī)數(shù)

隨機(jī)數(shù)用于生成私鑰,若隨機(jī)數(shù)可以被預(yù)測(cè)或重現(xiàn),則私鑰就會(huì)立刻形同虛設(shè)。所以保證隨機(jī)數(shù)擁有下列三項(xiàng)特征,至關(guān)重要:

隨機(jī)性:不存在統(tǒng)計(jì)學(xué)偏差,完全雜亂的數(shù)列

不可預(yù)測(cè)性:不能從過去的數(shù)列推測(cè)下一個(gè)出現(xiàn)的數(shù)

不可重現(xiàn)性:除非將數(shù)列保存下來,否則不能重現(xiàn)相同的數(shù)列

軟件本身是無法生成具有不可重現(xiàn)性的隨機(jī)數(shù),因?yàn)檫\(yùn)行軟件的計(jì)算機(jī)本身僅具備有限的內(nèi)部狀態(tài)。所以通過確定性的代碼,在周期足夠長(zhǎng)的情況下,必然會(huì)出現(xiàn)相同的隨機(jī)數(shù)。因此要生成具備不可重現(xiàn)性的隨機(jī)數(shù),需要從不確定的物理現(xiàn)象中獲取信息,比如周圍溫度、環(huán)境噪音、鼠標(biāo)移動(dòng),鍵盤輸入間隔等。

在 Linux 內(nèi)核中維護(hù)了一個(gè)熵池用來收集來自設(shè)備驅(qū)動(dòng)程序和其它來源的環(huán)境噪音。熵(entropy)是描述系統(tǒng)混亂無序程度的物理量,一個(gè)系統(tǒng)的熵越大則說明該系統(tǒng)的有序性越差,即不確定性越大。

所以在選擇生成私鑰的隨機(jī)數(shù)方法時(shí),需要選擇滿足密碼學(xué)強(qiáng)度的隨機(jī)數(shù)方法,比如 Node 中的 crypto.randomBytes。當(dāng)你調(diào)用 crypto.randomBytes(32) 方法時(shí),它會(huì)等待熵池搜集足夠的信息后,返回 64 位的隨機(jī)數(shù),即私鑰。

const privateKey = crypto.randomBytes(32)

// privateKey.toString('hex'): ea4692a11d962b249f8f0439d642a9013a1a08807649311d3672886d72d1fe51

另外,在以太坊中想要獲得隨機(jī)數(shù)是一件不容易的事情,因?yàn)榈V工需要得到同樣的結(jié)果,并經(jīng)過驗(yàn)證提交到區(qū)塊鏈上。但如果 EVM 存在 random opcode,礦工會(huì)生成不一致隨機(jī)數(shù),無法達(dá)成共識(shí)。

目前社區(qū)也提出相應(yīng)的方案,Mist 的作者 Alex van de Sande 提出使用 blockhashes 生成隨機(jī)數(shù),但由于礦工擁有操縱區(qū)塊數(shù)據(jù)的能力,如果有能力且愿意放棄 5 個(gè)區(qū)塊的獎(jiǎng)勵(lì),理論上可以間接影響隨機(jī)數(shù),所以不是完全足夠安全可靠。

為了解決礦工有可能作惡的問題,國內(nèi)社區(qū)提出 RANDAO: A DAO working as RNG of Ethereum 項(xiàng)目,構(gòu)建一個(gè)人人可以參與的 DAO,通過經(jīng)濟(jì)激勵(lì),由所有參與者共同決定一個(gè)隨機(jī)數(shù)。在 RANDAO 的基礎(chǔ)上,Vitalik Buterin 也提出 RANDAO++ 方案,感興趣可以看看。

非對(duì)稱加密

在對(duì)稱密碼中,由于加密和解密的密鑰相同,所以必須向接收者配送密鑰用于解密。但發(fā)送密鑰過程中,竊聽者可以竊取密鑰解密,不發(fā)送密鑰吧,接收者無法解密,密鑰必須發(fā)送,但又不能發(fā)送,這問題稱為密鑰配送問題。一般采取事先共享密鑰、密鑰分配中心、Diffie-Hellman 密鑰交換等方案來解決,但直到非對(duì)稱加密方案的出現(xiàn),無需向接收者配送解密密鑰,密鑰配送問題才完美解決。

在非對(duì)稱加密中,將密鑰分為加密密鑰和解密密鑰,也就是我們常說的公鑰和私鑰。公鑰和私鑰一一對(duì)應(yīng),由公鑰加密的密文,必須使用公鑰配對(duì)的私鑰才可以解密。

看似有點(diǎn)復(fù)雜,我們祭出密碼學(xué)的男女主角 Alice 和 Bob,來通俗地梳理一下:

發(fā)送者: Bob,接收者:Alice,竊聽者:Eve

1. Alice 生成密鑰對(duì)(私鑰和公鑰),私鑰由 Alice 自身妥善保管

2. Alice 將自己的公鑰發(fā)送給 Bob,即使被 Eve 竊取也沒關(guān)系

3. Bob 使用 Alice 的公鑰對(duì)消息加密,發(fā)送給 Alice

4. 密文可能被 Eve 竊取,但他無法使用公鑰解密

5. Alice 使用自己的私鑰解密密文

區(qū)塊鏈錢包原理科普:關(guān)于錢包的基礎(chǔ)密碼學(xué)

當(dāng)我們調(diào)用 secp256k1.publicKeyCreate 獲得公鑰時(shí),實(shí)際使用的是非對(duì)稱加密中的橢圓曲線算法。通過該算法可以從私鑰推導(dǎo)出公鑰,這是一個(gè)不可逆的過程:K = k * G。給出常數(shù)點(diǎn) G 時(shí),使用已知私鑰 k 求公鑰 K 的問題并不困難,但反過來,已知公鑰 K 求私鑰 k,則非常困難。這就是橢圓曲線算法上的離散對(duì)數(shù)問題,也是為什么你可以分享地址(或公鑰)給別人,但不能暴露自己的私鑰。

const publicKey = secp256k1.publicKeyCreate(privateKey, false).slice(1)

// publicKey.toString('hex'): 1e3f1532e3285b02...45d91a36a8d78cb6bef8

為了形象的表現(xiàn)橢圓曲線算法如何將私鑰推導(dǎo)出公鑰,我們將使用簡(jiǎn)單的整數(shù)作為私鑰 k,找到公鑰 K = k * G,也就是 G 相加 k 次(數(shù)學(xué)原理一致)。在橢圓曲線中, 點(diǎn)的相加等同于從該點(diǎn)畫切線找到與曲線相交的另?點(diǎn), 然后映射到 x 軸。下圖展示了從曲線上獲得 G、2G、4G、8G 的幾何操作。

區(qū)塊鏈錢包原理科普:關(guān)于錢包的基礎(chǔ)密碼學(xué)

單向散列函數(shù)

單向散列函數(shù) (one-way hash function) 有一個(gè)輸入和一個(gè)輸出,其中輸入稱為消息 (message) ,輸出稱為散列值 (hash value) 。散列值也稱為消息摘要 (message digest) 或者指紋 (fingerprint) 。單向散列函數(shù)可以根據(jù)消息的內(nèi)容計(jì)算出散列值,而散列值就可以用來檢查消息的完整性。

單向散列函數(shù)擁有下列四項(xiàng)特征:

1. 根據(jù)任意長(zhǎng)度的消息計(jì)算出固定長(zhǎng)度的散列值

2. 能夠快速計(jì)算出散列值

3. 具備單向性

4. 消息不同散列值也不同

當(dāng)我們調(diào)用 createKeccakHash("keccak256") 方法時(shí),Keccak 使用海綿函數(shù),對(duì)公鑰與初始的內(nèi)部狀態(tài)做 XOR 運(yùn)算得到 32 字節(jié)散列值,取其后 20 字節(jié),轉(zhuǎn)成 40 位的 16 進(jìn)制字符,即為地址。

const address = createKeccakHash("keccak256").update(publicKey).digest().slice(-20)
// address.toString("hex"): 7a48ac1bf3943b2ca7a4ca4999cbcbb0e999950c

在以太坊中還有許多地方應(yīng)用了單向散列函數(shù),例如:

1. 礦工需要不斷計(jì)算特定數(shù)據(jù)的散列值,當(dāng)散列值滿足難度要求時(shí),礦工便可以廣播該區(qū)塊,獲得獎(jiǎng)勵(lì)。

2. 根據(jù)默克爾樹根哈希的值前后是否一致來判斷區(qū)塊中的交易是否被篡改

題外話,有一陣子我很好奇單向散列函數(shù)或哈希函數(shù)中的”Hash“ 代表什么意思呢?后來經(jīng)過查詢得知,”Hash“ 在古法語中的原意時(shí)「斧頭」,后來被引申為「剁碎」,正好形象的比喻單向散列函數(shù),將消息剁碎,混合成固定長(zhǎng)度的散列值。后來通過 Herbert Hellerman 的《Digital Computer System Principles》成為廣為流傳的術(shù)語。

以上就是區(qū)塊鏈錢包原理科普:關(guān)于錢包的基礎(chǔ)密碼學(xué)的詳細(xì)內(nèi)容,更多關(guān)于關(guān)于錢包的基礎(chǔ)密碼學(xué)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

免責(zé)聲明:本文只為提供市場(chǎng)訊息,所有內(nèi)容及觀點(diǎn)僅供參考,不構(gòu)成投資建議,不代表本站觀點(diǎn)和立場(chǎng)。投資者應(yīng)自行決策與交易,對(duì)投資者交易形成的直接或間接損失,作者及本站將不承擔(dān)任何責(zé)任。!

你可能感興趣的文章

更多

熱門幣種

  • 幣名
    最新價(jià)格
    24H漲幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 103283.77¥ 735277.15
    -3.44%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 3439.17¥ 24483.45
    -5.29%
  • tether USDT 泰達(dá)幣

    USDT

    泰達(dá)幣

    $ 0.9995¥ 7.1154
    +0.01%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 2.4009¥ 17.092
    -5.51%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 962.24¥ 6850.18
    -4.29%
  • solana SOL Solana

    SOL

    Solana

    $ 154.52¥ 1100.02
    -9.91%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0002¥ 7.1204
    +0.01%
  • tron TRX 波場(chǎng)

    TRX

    波場(chǎng)

    $ 0.2993¥ 2.1307
    +0.3%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.1719¥ 1.2237
    -6.32%
  • cardano ADA 艾達(dá)幣

    ADA

    艾達(dá)幣

    $ 0.5603¥ 3.9887
    -7.02%

幣圈快訊

  • 加密KOL100萬美元MegaETH代幣配額被撤銷,官方稱其違反一年鎖定期規(guī)則

    2025-11-12 11:54
    據(jù)Decrypt報(bào)道,加密KOLIcoBeast被取消價(jià)值100萬美元的MegaETH代幣配額,原因是IcoBeast公開表示試圖對(duì)沖其MEGA分配,違反了與一年鎖定期相關(guān)的規(guī)則。 此前,MegaETH首席戰(zhàn)略官NamikMuduroglu在X上發(fā)文稱:“任何參與MegaETH銷售并鎖定代幣一年的參與者都必須: (i)為自己的賬戶獲取代幣,不得有任何轉(zhuǎn)售或轉(zhuǎn)讓意圖; (ii)不得進(jìn)行任何違反適用法律的轉(zhuǎn)讓、轉(zhuǎn)售或?qū)_交易。任何在推特上公開討論場(chǎng)外交易和對(duì)沖計(jì)劃的人都將獲得退款,且不分配任何代幣?!?Muduroglu表示,此次代幣發(fā)售超額認(rèn)購28倍。把代幣分配給那些還沒收到就想賣掉的人毫無意義,如果把這些代幣分配給那些看好MEGA,并且至少愿意在他們自己設(shè)定的鎖定期內(nèi)持有的人,這對(duì)MegaETH和其他MEGA持有者更有利。
  • BitwiseCIO:市場(chǎng)低估加密市場(chǎng)結(jié)構(gòu)立法成功通過的概率

    2025-11-12 11:51
    Bitwise首席投資官M(fèi)attHougan表示,我認(rèn)為市場(chǎng)低估了加密市場(chǎng)結(jié)構(gòu)立法成功通過的概率,CLARITY法案通過的可能性相當(dāng)大。加密貨幣目前獲得了兩黨支持,加密游說資金達(dá)到歷史最高水平,而且到目前為止,政府也在兌現(xiàn)對(duì)加密行業(yè)的承諾。
  • 美國Solana現(xiàn)貨ETF單日總凈流入798萬美元,連續(xù)11日凈流入

    2025-11-12 11:44
    根據(jù)SoSoValue數(shù)據(jù),美東時(shí)間11月11日,美國Solana現(xiàn)貨ETF總凈流入798萬美元。BitwiseSolana現(xiàn)貨ETFBSOL單日凈流入205萬美元,歷史總凈流入達(dá)3.32億美元。灰度Solana現(xiàn)貨ETFGSOL單日凈流入593萬美元,歷史總凈流入達(dá)1872萬美元。截至發(fā)稿前,Solana現(xiàn)貨ETF總資產(chǎn)凈值為5.68億美元,Solana凈資產(chǎn)比率達(dá)0.64%,歷史累計(jì)凈流入已達(dá)3.5億美元。
  • Matrixport:比特幣可能已進(jìn)入小型熊市階段

    2025-11-12 11:31
    Matrixport發(fā)文表示“相對(duì)于市場(chǎng)規(guī)模,加密貨幣交易量仍然疲軟。在過去12個(gè)月里,總市值從2.4萬億美元升至3.7萬億美元,而日交易量從3520億美元降至1780億美元,下降了50%。這種分化可能表明市場(chǎng)參與度更加有限、上漲動(dòng)力減弱,若這種情況持續(xù),可能需要采取謹(jǐn)慎立場(chǎng)。根據(jù)近期鏈上指標(biāo),比特幣可能已進(jìn)入小型熊市階段。雖存在多個(gè)潛在催化劑,但其推動(dòng)持續(xù)上漲趨勢(shì)的能力仍不確定。在流動(dòng)性較低的背景下,上市場(chǎng)所的報(bào)告交易活動(dòng)和手續(xù)費(fèi)收入仍然低迷?!?/div>
  • 多個(gè)代幣出現(xiàn)沖高回落,SOL觸及今日新低

    2025-11-12 11:30
    據(jù)幣安現(xiàn)貨數(shù)據(jù)顯示,市場(chǎng)多空分化。ARDR24小時(shí)跌幅9.44%,LPT24小時(shí)跌幅6.53%,ADX24小時(shí)跌幅17.29%,DIA也出現(xiàn)“沖高回落”狀態(tài),24小時(shí)跌幅11.64%和16.08%。與此同時(shí),LUMIA和EPIC分別上漲5.16%和5.51%,并出現(xiàn)“探底回升”狀態(tài),DASH同樣上漲7.85%。此外,SOL觸及今日新低,24小時(shí)跌幅6.48%。
  • 查看更多