色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

區塊鏈干貨:關于錢包的基礎密碼學

如意 ? 來源:ETHFANS ? 作者:阿樹 ? 2020-06-28 09:38 ? 次閱讀

通過區塊鏈,人類歷史上首次通過技術徹底、純粹地保障「私有財產神圣不可侵犯」。

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

可在這背后的基礎技術「密碼學」是如何工作,以及保障數字資產的安全呢?無論你是愛好者亦或投資客,應該需要多少了解背后的原理,免得誤解,輕則鬧笑話,重則損失資產。因為我們總會聽到一些鬼扯的故事(幫我找回密碼吧!私鑰發到群里了誒!),皆是由于對錢包本質的不了解。

本文僅談論錢包原型涉及的相關密碼學,不包含 keystore,助記詞,轉賬交易等。

錢包如何生成

區塊鏈干貨:關于錢包的基礎密碼學

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

分解為 3 個步驟:

1. 創建隨機私鑰 (64 位 16 進制字符 / 256 比特 / 32 字節)

2. 從私鑰推導出公鑰 (128 位 16 進制字符 / 512 比特 / 64 字節)

3. 從公鑰推導出地址 (40 位 16 進制字符 / 160 比特 / 20 字節)

區塊鏈干貨:關于錢包的基礎密碼學

這是我從 ethereumjs/keythereum 中剝離出來的 JavaScript 代碼,關于黃皮書上的公式的具體實現,僅僅 6 行代碼。

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

隨機數

隨機數用于生成私鑰,若隨機數可以被預測或重現,則私鑰就會立刻形同虛設。所以保證隨機數擁有下列三項特征,至關重要:

隨機性:不存在統計學偏差,完全雜亂的數列

不可預測性:不能從過去的數列推測下一個出現的數

不可重現性:除非將數列保存下來,否則不能重現相同的數列

軟件本身是無法生成具有不可重現性的隨機數,因為運行軟件的計算機本身僅具備有限的內部狀態。所以通過確定性的代碼,在周期足夠長的情況下,必然會出現相同的隨機數。因此要生成具備不可重現性的隨機數,需要從不確定的物理現象中獲取信息,比如周圍溫度、環境噪音、鼠標移動,鍵盤輸入間隔等。

Linux 內核中維護了一個熵池用來收集來自設備驅動程序和其它來源的環境噪音。熵(entropy)是描述系統混亂無序程度的物理量,一個系統的熵越大則說明該系統的有序性越差,即不確定性越大。

所以在選擇生成私鑰的隨機數方法時,需要選擇滿足密碼學強度的隨機數方法,比如 Node 中的 crypto.randomBytes。當你調用 crypto.randomBytes(32) 方法時,它會等待熵池搜集足夠的信息后,返回 64 位的隨機數,即私鑰。

區塊鏈干貨:關于錢包的基礎密碼學

另外,在以太坊中想要獲得隨機數是一件不容易的事情,因為礦工需要得到同樣的結果,并經過驗證提交到區塊鏈上。但如果 EVM 存在 random opcode,礦工會生成不一致隨機數,無法達成共識。

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

為了解決礦工有可能作惡的問題,國內社區提出 RANDAO: A DAO working as RNG of Ethereum 項目,構建一個人人可以參與的 DAO,通過經濟激勵,由所有參與者共同決定一個隨機數。在 RANDAO 的基礎上,Vitalik Buterin 也提出 RANDAO++ 方案,感興趣可以看看。

非對稱加密

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

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

看似有點復雜,我們祭出密碼學的男女主角 Alice 和 Bob,來通俗地梳理一下:

發送者: Bob,接收者:Alice,竊聽者:Eve

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

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

3. Bob 使用 Alice 的公鑰對消息加密,發送給 Alice

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

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

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

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

// publicKey.toString(‘hex’): 1e3f1532e3285b02.。.45d91a36a8d78cb6bef8

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

區塊鏈干貨:關于錢包的基礎密碼學

單向散列函數

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

單向散列函數擁有下列四項特征:

1. 根據任意長度的消息計算出固定長度的散列值

2. 能夠快速計算出散列值

3. 具備單向性

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

當我們調用 createKeccakHash(“keccak256”) 方法時,Keccak 使用海綿函數,對公鑰與初始的內部狀態做 XOR 運算得到 32 字節散列值,取其后 20 字節,轉成 40 位的 16 進制字符,即為地址。

區塊鏈干貨:關于錢包的基礎密碼學

在以太坊中還有許多地方應用了單向散列函數,例如:

1. 礦工需要不斷計算特定數據的散列值,當散列值滿足難度要求時,礦工便可以廣播該區塊,獲得獎勵。

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 對稱密碼學
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6315
  • 數字錢包
    +關注

    關注

    2

    文章

    79

    瀏覽量

    10141
  • 區塊鏈
    +關注

    關注

    111

    文章

    15562

    瀏覽量

    105926
收藏 人收藏

    評論

    相關推薦

    簡單學學之課堂二:區塊的透明性指的是什么?

    者對密碼學有基礎的了解后,第四節課作者君會介紹密碼學區塊之間的關系,其中會涉及到私鑰、公鑰和地址之間的聯系、錢包哪些信息可以公開等等內容
    發表于 01-05 14:19

    區塊錢包軟件開發,區塊錢包源碼搭建

    什么是區塊錢包區塊錢包本質上是一個工具,目前絕大多數的
    發表于 05-26 16:30

    密碼學中的加密技術

    密碼學中的加密技術:密碼學的基本概念密碼編碼密碼體制的設計,而
    發表于 06-16 23:50 ?0次下載

    區塊的底層技術是密碼學

    密碼學區塊的底層技術,沒有密碼學就沒有區塊,沒有密碼學
    發表于 11-22 11:22 ?2087次閱讀

    密碼學區塊中有著怎樣的作用

    張驍表示,區塊之所以能夠解決人與人之間的信任問題,是因為它的不可篡改性,而這種特性本質上又是基于密碼學算法來實現的。因此密碼學區塊
    發表于 12-27 15:51 ?4695次閱讀

    區塊系統中采用密碼學技術是否存在安全威脅

    量子計算與區塊是當下兩個熱門技術,二者因為密碼學技術聯系在一起。區塊使用密碼學技術保障系統安
    發表于 01-10 14:51 ?1180次閱讀

    區塊密碼學技術將開啟下一場變革

    摩根大通從2015年就積極地探討研究區塊底層技術,我本人參與了很多內部早期的區塊技術和商業模式分享會。JPM從一開始就專注于區塊
    發表于 04-03 11:26 ?796次閱讀

    應用密碼學的資料概述

    本文檔的主要內容詳細介紹的是應用密碼學的資料概述包括了:1.密碼的由來,2.密碼技術發展簡介,3.密碼學基本概念
    發表于 04-04 08:00 ?2次下載
    應用<b class='flag-5'>密碼學</b>的資料概述

    區塊密碼學的基礎內容介紹

    密碼學是數學和計算機科學的分支,同時其原理大量涉及信息論。密碼學不只關注信息保密問題,還同時涉及信息完整性驗證(消息驗證碼)、信息發布的不可抵賴性(數字簽名)、以及在分布式計算中產生的來源于內部和外部的攻擊的所有信息安全問題。
    發表于 05-08 10:33 ?1208次閱讀

    區塊技術的基石密碼學探討

    越來越顯得重要。它已不僅僅局限于使用在軍事、政治和外交方面,而更多的是與人們的生活息息相關:如人們在進行網上購物,與商務交流,使用信用卡等等,都需要密碼學的知識來保護人們的個人信息和隱私,當然對于我們關注的區塊技術,
    發表于 07-12 10:35 ?1106次閱讀

    密碼學貨幣錢包的發展方向分析

    錢包密碼學貨幣世界里重要的基礎設施。所有跟密碼學貨幣相關的操作,包括買賣密碼學貨幣、持有密碼學貨幣、轉賬,乃至質押獲利(staking),
    發表于 02-22 18:20 ?894次閱讀

    區塊錢包是什么_區塊錢包可以做什么

     區塊錢包是一種存儲加密幣的軟件程序。區塊錢包密碼
    發表于 07-21 17:08 ?5609次閱讀

    區塊依靠密碼學和經濟激勵手段逐步發展

    2015 年,英國《經濟學人》雜志首次報道區塊,并將其喻為“制造信任的機器”(The trust machine)。如今,在經歷了市場信心的快速膨脹、冷卻再到理性的起伏之后, 區塊
    的頭像 發表于 09-30 14:37 ?3157次閱讀

    區塊密碼學中的應用及技術綜述

    區塊密碼學中的應用及技術綜述
    發表于 06-25 15:06 ?12次下載

    密碼學原理的應用

    電子發燒友網站提供《密碼學原理的應用.pdf》資料免費下載
    發表于 08-02 10:28 ?0次下載
    <b class='flag-5'>密碼學</b>原理的應用
    主站蜘蛛池模板: 在线综合 亚洲 欧美| 亚洲国产成人精品无码区99| 色柚视频网站ww色| 亚洲精品无码一区二区三区四虎| 在线播放一区二区精品产| 亚洲中文字幕永久在线| 亚洲精品123区在线观看| 亚洲午夜电影| 爱看吧孕妇网| 精品高潮呻吟99AV无码视频| 麻豆国产人妻精品无码AV| 色噜噜视频| 永久免费在线观看视频| 国产XXXXXX农村野外| 久久久免费热线精品频| 同桌上课把奶露出来给我玩| 97成人在线视频| 国产在线观看免费观看| 殴美黄色网| 2020久久精品永久免费| 国产一级特黄a大片99| 青青草原影视| 91久久精品一区二区三区| 国产精品久久久久久久久无码| 六六影院午夜伦理| 亚洲精品久久久久久偷窥| 吃胸亲吻吃奶摸下面免费视频| 美女厕所撒尿ass| 一区二区三区高清视频| 国产在线精彩视频| 香蕉鱼视频观看在线视频下载| 丰满的女朋友韩国版在线观看| 男人团apk| FREECHINESE东北群交| 麻花传媒MD0044视频| 伊人精品影院| 九九热免费在线观看| 亚洲欧美强伦一区二区另类| 国产毛片AV久久久久精品| 羲义嫁密着中出交尾gvg794| 国产精品青青青高清在线密亚|