區塊鏈·01概念

.數據區塊算法

#區塊頭:版本號、前一區塊地址、時間戳、隨機數、當前區塊的目標hash值、merkle樹根數據庫

        另外一說法:上一區塊的hash值、時間戳、挖礦難度值、工做量證實隨機數、merkle樹根hash值安全

        大小爲80字節,可用於spv(簡化支付驗證)網絡

#區塊體:交易計數、交易詳情分佈式

       (merkle樹會對每筆交易進行數字簽名,保證真實和不重複)函數

#以太坊區塊頭:不一樣於比特幣只包含一棵merkle,以太坊包含了三棵merkle(交易/收據(交易影響的數據條)/狀態)加密

        交易樹:這筆交易被包含在區塊中了嗎spa

        收據樹:XX地址在過去XX時間中,發生了XX事件的數據操作系統

        狀態樹:帳戶是否存在/當前餘額多少/僞裝在這個合約中運行這筆數據,他的輸出是什麼遞歸

.挖礦與分叉

#工做量證實機制挖礦

#最長鏈解決分叉問題

.時間戳和不可篡改性

#時間維度使得數據易追溯

#數據在特定時間的存在,保證了不可篡改性

.分佈式數據庫

#單一節點數據被破壞不影響總體

.utxo交易模式

#未花費的交易輸出,每筆交易都有若干輸入(資金來源)+ 若干輸出(資金去向)

#知足來源於utxo+數字簽名的交易纔是合法交易

#因此:判斷交易的合法性不須要追溯整個交易歷史

.哈希函數

#經過兩次sha256哈希函數,生成長度爲256的二進制數字進行識別和存儲

#哈希的優勢:

        單向性:基本不會被發現原始值

        耗費:處理數據耗費時間一致,且輸出值定長

.merkle樹

#能夠是二叉樹也能夠是多叉樹,比特幣採用的是二叉樹:

#實現:經過向上遞歸運算最終只剩樹根存於區塊頭中

#優勢:

        運行效率:消息頭只包含根的hash值,沒必要封裝底層數據,將會高效運行在智能/物聯網設備上

        簡化驗證:不運行完整區塊節點,也能對交易數據進行校驗

.雙重支付/雙花支付

#時間戳+utxo(未花費的交易)+數字簽名   保證不雙重支付

.p2p網絡

#對等網絡

#每一個節點都會承擔網絡路由、驗證數據區塊等功能

.加密算法

#一、sha256:上面介紹過的哈希,用於保證交易不可篡改

#二、非對稱加密:用於交易不可僞造,使用的是橢圓曲線加密算法(ECC)

        私鑰加密(交易方用私鑰簽名),公鑰解密(可經過交易方公鑰進行驗證)

        公鑰能夠從私鑰提取,反之不達

##私鑰產生:

        操做系統底層密碼學安全的256隨機數爲私鑰(總數爲2256,難以破解)

        經過sha256和base58轉換爲易書寫和識別的50位長度私鑰

##公鑰產生:

        私鑰+secp256k1橢圓曲線算法生成65字節長度的隨機數

##比特幣錢包地址產生:

        前綴+body+後綴,經過base58轉換爲易識別的地址

        前綴:0x00(版本前綴)

        body:公鑰經過sha256+ripemd160雙哈希,hash160生成20字節長度的摘要

        後綴:對body進行兩次sha256運算,取前四位

.數字簽名

#簽名:用hash算法處理信息得出hash值+私鑰加密

#解密:用公鑰對簽名解密得出hash值,比對此hash值和本身另外經過hash算法得出的hash值

.比特幣隱私模型

#傳統隱私模型:

        身份信息----交易----可信任的第三方----交易對手  |  公衆

        依靠第三方不暴露交易雙方信息,使公衆無從知曉

#比特幣隱私模型:

        身份信息  |  交易----公衆

        經過比特幣地址和交易對手完成準匿名交易

        準匿名:經過對交易地址和交易額等信息進行分析,可發現交易者的蛛絲馬跡

 

【完】

相關文章
相關標籤/搜索