當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 一、區(qū)塊鏈技術(shù) 1.什么是區(qū)塊鏈? 去中心化的、分布式的、區(qū)塊化存儲(chǔ)的數(shù)據(jù)庫 存儲(chǔ)全部賬戶余額及交易流水的總賬本 每個(gè)節(jié)點(diǎn)有完整的賬本數(shù)據(jù) 賬本數(shù)據(jù)記錄了

一、區(qū)塊鏈技術(shù)

1.什么是區(qū)塊鏈?

去中心化的、分布式的、區(qū)塊化存儲(chǔ)數(shù)據(jù)庫

存儲(chǔ)全部賬戶余額及交易流水的總賬本

每個(gè)節(jié)點(diǎn)有完整的賬本數(shù)據(jù)

賬本數(shù)據(jù)記錄了全部的歷史交易數(shù)據(jù)

交易數(shù)據(jù)存儲(chǔ)在區(qū)塊上

每個(gè)區(qū)塊包含前一區(qū)塊ID及HASH,形成鏈

2.區(qū)塊鏈基本原理

如果把區(qū)塊鏈作為一個(gè)狀態(tài)機(jī),則每次交易就是試圖改變一次狀態(tài),而每次共識(shí)生成的區(qū)塊,就是參與者對(duì)于區(qū)塊中所有交易內(nèi)容導(dǎo)致狀態(tài)改變的結(jié)果進(jìn)行確認(rèn)。

交易(Transaction):一次操作,導(dǎo)致賬本狀態(tài)的一次改變,如添加一條記錄

區(qū)塊(Block):記錄一段時(shí)間內(nèi)發(fā)生的交易和狀態(tài)結(jié)果,是對(duì)當(dāng)前賬本狀態(tài)的一次共識(shí)

鏈(Chain):由一個(gè)個(gè)區(qū)塊按照發(fā)生順序串聯(lián)而成,是整個(gè)狀態(tài)變化的日志記錄。

3.區(qū)塊鏈要解決的問題

如何去中心化地共享數(shù)據(jù)?

如何確保賬戶不被冒用?

如何確保賬戶余額足夠?

如何確保交易記錄不被篡改?

誰負(fù)責(zé)記賬?

怎么保障記賬者的可信?

怎么保障記賬者的積極性?

4.區(qū)塊鏈特性

去中心化

開放性(沒有限制,開源,數(shù)據(jù)公開)

去信任(僅信任機(jī)器)

自治性,集體維護(hù)

可靠的數(shù)據(jù)庫(不可更改,永遠(yuǎn)可訪問)

匿名性,隱私保護(hù)

5.核心技術(shù)

P2P網(wǎng)絡(luò)、數(shù)字簽名、區(qū)塊化數(shù)據(jù)庫,競爭記賬權(quán)、共識(shí)算法、交易回溯。

二、P2P網(wǎng)絡(luò)及通信技術(shù)(分布式計(jì)算網(wǎng)絡(luò))

1.自動(dòng)發(fā)現(xiàn)

通過種子文件,獲取初始節(jié)點(diǎn)(地址及端口)

連接初始節(jié)點(diǎn),獲取初始節(jié)點(diǎn)知道的Peer

把自己的地址及端口廣播給各個(gè)Peer

接收各個(gè)Peer廣播的地址信息,構(gòu)建出網(wǎng)絡(luò)的全貌或片段

2. 技術(shù)領(lǐng)域

分布式存儲(chǔ)、分布式計(jì)算、分布式協(xié)同

組播

流媒體

搜索引擎

3.通信協(xié)議

napster 、Gnutella、eDonkey、 Bittorrent(文件分發(fā)協(xié)議)

XMPP、Jabber(即時(shí)通信協(xié)議)

Paxos 、Gossip(分布式系統(tǒng)狀態(tài)同步協(xié)議)

JXTA

4.使用HASH算法及非對(duì)稱加密及簽名技術(shù)

每個(gè)節(jié)點(diǎn)、每個(gè)人有唯一的一對(duì)公鑰及私鑰

公鑰同時(shí)也是每個(gè)節(jié)點(diǎn)、個(gè)人的地址和賬號(hào)

私鑰是證明”我就是我“的唯一手段

HASH算法對(duì)數(shù)據(jù)進(jìn)行規(guī)整

5.算法

RSA、Elgamal、D-H、ECC

SHA256、 RIMPED160

6.通常使用橢圓曲線算法生成密鑰對(duì)

比特幣密鑰長度:256位

公鑰哈希值=RIMPED160(SHA256(公鑰))

比特幣地址=1+Base58(0+公鑰哈希值+校驗(yàn)碼)

校驗(yàn)碼=前四字節(jié)(SHA256(SHA256(0+公鑰哈希值)))

7. 加密

發(fā)送方使用接收方的公鑰加密數(shù)據(jù)

接收方使用本方的私鑰解密數(shù)據(jù)

通常使用本方面交換對(duì)稱加密的Key

8.簽名

發(fā)送方使用HASH算法計(jì)算數(shù)據(jù)的HASH值

發(fā)送方使用本方的私鑰加密HASH值,得到簽名

接收方使用HASH算法計(jì)算數(shù)據(jù)的HASH值

接收方使用發(fā)送方的公鑰解密簽名得到發(fā)送的HASH值

比較兩個(gè)HASH值的一致性

9.參考

ElGamal算法,是一種較為常見的加密算法,它是基于1984年提出的公鑰密碼體制和橢圓曲線加密體系。既能用于數(shù)據(jù)加密也能用于數(shù)字簽名,其安全性依賴于計(jì)算有限域上離散對(duì)數(shù)這一難題。在加密過程中,生成的密文長度是明文的兩倍,且每次加密后都會(huì)在密文中生成一個(gè)隨機(jī)數(shù)K,在密碼中主要應(yīng)用離散對(duì)數(shù)問題的幾個(gè)性質(zhì):求解離散對(duì)數(shù)(可能)是困難的,而其逆運(yùn)算指數(shù)運(yùn)算可以應(yīng)用平方-乘的方法有效地計(jì)算。也就是說,在適當(dāng)?shù)娜篏中,指數(shù)函數(shù)是單向函數(shù)。

橢圓曲線密碼體制是目前已知的公鑰體制中,對(duì)每比特所提供加密強(qiáng)度最高的一種體制。解橢圓曲線上的離散對(duì)數(shù)問題的最好算法是Pollard rho方法,其時(shí)間復(fù)雜度為,是完全指數(shù)階的。其中n為等式(2)中m的二進(jìn)制表示的位數(shù)。當(dāng)n=234, 約為2117,需要1.6×1023 MIPS 年的時(shí)間。而我們熟知的RSA所利用的是大整數(shù)分解的困難問題,目前對(duì)于一般情況下的因數(shù)分解的最好算法的時(shí)間復(fù)雜度是子指數(shù)階的,當(dāng)n=2048時(shí),需要2x1020MIPS年的時(shí)間。也就是說當(dāng)RSA的密鑰使用2048位時(shí),ECC的密鑰使用234位所獲得的安全強(qiáng)度還高出許多。它們之間的密鑰長度卻相差達(dá)9倍,當(dāng)ECC的密鑰更大時(shí)它們之間差距將更大。更ECC密鑰短的優(yōu)點(diǎn)是非常明顯的,隨加密強(qiáng)度的提高,密鑰長度變化不大。

DH Diffie-Hellman算法(D-H算法),密鑰一致協(xié)議,是由公開密鑰密碼體制的奠基人Diffie和Hellman所提出的一種思想。簡單的說就是允許兩名用戶在公開媒體上交換信息以生成”一致”的、可以共享的密鑰。換句話說,就是由甲方產(chǎn)出一對(duì)密鑰(公鑰、私鑰),乙方依照甲方公鑰產(chǎn)生乙方密鑰對(duì)(公鑰、私鑰)。以此為基線,作為數(shù)據(jù)傳輸保密基礎(chǔ),同時(shí)雙方使用同一種對(duì)稱加密算法構(gòu)建本地密鑰(SecretKey)對(duì)數(shù)據(jù)加密。這樣,在互通了本地密鑰(SecretKey)算法后,甲乙雙方公開自己的公鑰,使用對(duì)方的公鑰和剛才產(chǎn)生的私鑰加密數(shù)據(jù),同時(shí)可以使用對(duì)方的公鑰和自己的私鑰對(duì)數(shù)據(jù)解密。不單單是甲乙雙方兩方,可以擴(kuò)展為多方共享數(shù)據(jù)通訊,這樣就完成了網(wǎng)絡(luò)交互數(shù)據(jù)的安全通訊!該算法源于中國的同余定理——中國馀數(shù)定理。

三、區(qū)塊鏈化數(shù)據(jù)庫

1.典型特征

去中心化的、分布式的、區(qū)塊化存儲(chǔ)的數(shù)據(jù)庫

區(qū)塊(Header + Body)

隨機(jī)數(shù)

時(shí)間戳

包含父區(qū)塊創(chuàng)建之后、本區(qū)塊創(chuàng)建之前的全部交易;

滿足某個(gè)條件的區(qū)塊HASH;

a) SHA256(SHA256(version + prev_hash + merkle_root + nTIme + nbits + x )) 《 TARGET

b) Target值由動(dòng)態(tài)的難度系數(shù)確定,Target越小,難度越高;

2. 參考

默克爾樹是一種二叉樹,由一組葉節(jié)點(diǎn)、一組中間節(jié)點(diǎn)和一個(gè)根節(jié)點(diǎn)構(gòu)成。最下面的大量的葉節(jié)點(diǎn)包含基礎(chǔ)數(shù)據(jù),每個(gè)中間節(jié)點(diǎn)是它的兩個(gè)子節(jié)點(diǎn)的哈希,根節(jié)點(diǎn)也是由它的兩個(gè)子節(jié)點(diǎn)的哈希,代表了默克爾樹的頂部。默克爾樹的目的是允許區(qū)塊的數(shù)據(jù)可以零散地傳送:節(jié)點(diǎn)可以從一個(gè)源下載區(qū)塊頭,從另外的源下載與其有關(guān)的樹的其它部分,而依然能夠確認(rèn)所有的數(shù)據(jù)都是正確的。

默克爾樹協(xié)議對(duì)比特幣的長期持續(xù)性可以說是至關(guān)重要的。在2014年4月,比特幣網(wǎng)絡(luò)中的一個(gè)全節(jié)點(diǎn)-存儲(chǔ)和處理所有區(qū)塊的全部數(shù)據(jù)的節(jié)點(diǎn)-需要占用15GB的內(nèi)存空間,而且還以每個(gè)月超過1GB的速度增長。簡化支付確認(rèn)(SPV)協(xié)議允許另一種節(jié)點(diǎn)存在,這樣的節(jié)點(diǎn)被成為“輕節(jié)點(diǎn)”,它下載區(qū)塊頭,使用區(qū)塊頭確認(rèn)工作量證明,然后只下載與其交易相關(guān)的默克爾樹“分支”。這使得輕節(jié)點(diǎn)只要下載整個(gè)區(qū)塊鏈的一小部分,就可以安全地確定任何一筆比特幣交易的狀態(tài)和賬戶的當(dāng)前余額。

四、記賬權(quán)競爭及獎(jiǎng)勵(lì)制度(挖礦)

1.概述

為防止可預(yù)期的記賬節(jié)點(diǎn)被控制或攻擊,導(dǎo)致錯(cuò)誤記賬行為,區(qū)塊鏈技術(shù)采用競爭記賬權(quán)的做法:

任何一個(gè)節(jié)點(diǎn)均可以參與記賬,因而記賬節(jié)點(diǎn)無法預(yù)期,也就不容易被控

競爭的過程就是看誰最先計(jì)算出滿足條件的HASH值

每次計(jì)算必須以最后1個(gè)有效的區(qū)塊為起點(diǎn),必須消耗大量的計(jì)算機(jī)CPU,增加偽造記賬數(shù)據(jù)的成本

計(jì)算的結(jié)果必須得到大部分節(jié)點(diǎn)的認(rèn)可(共識(shí)算法),才會(huì)成為新的區(qū)塊。實(shí)際算法中,如果該區(qū)塊位于最長的區(qū)塊鏈上,則為正式被認(rèn)可的區(qū)塊,也即大部分節(jié)點(diǎn)認(rèn)可計(jì)算結(jié)果,并愿意在該結(jié)果下繼續(xù)計(jì)算

這個(gè)過程被稱為挖礦,或工作量證明(POW)。參與挖礦的節(jié)點(diǎn)稱為礦工,協(xié)同挖礦的礦工聯(lián)合體稱為礦池

a ) 以前1區(qū)塊為起點(diǎn),計(jì)算滿足條件的HASH值;

b ) 將計(jì)算的結(jié)果廣播給其他節(jié)點(diǎn);

c ) 其他節(jié)點(diǎn)驗(yàn)證計(jì)算結(jié)果無誤時(shí),認(rèn)可該結(jié)果,并以該結(jié)果為起點(diǎn)重新進(jìn)行計(jì)算;

d ) 單位時(shí)間內(nèi)達(dá)到共識(shí)認(rèn)可要求時(shí),該區(qū)塊成為正式認(rèn)可的區(qū)塊。

這個(gè)過程被稱系統(tǒng)為鼓勵(lì)挖礦的積極性,給予競爭成功的記賬節(jié)點(diǎn)獎(jiǎng)勵(lì)

a ) 給予每個(gè)區(qū)塊挖礦者直接的“現(xiàn)金”獎(jiǎng)勵(lì)。例如,比特幣網(wǎng)絡(luò)給予25個(gè)比特幣,以太坊給予5個(gè)以太幣;

b ) 以太坊:納入該區(qū)塊的交易的手續(xù)費(fèi),由發(fā)起節(jié)點(diǎn)和記賬節(jié)點(diǎn)分成(發(fā)起75%,記賬25%)。

2. 參考

比特幣使用的SHA256算法,會(huì)有2^256種輸出,如果我們進(jìn)行2^256+1次輸入,那么必然會(huì)產(chǎn)生一次碰撞;甚至從概率的角度看,進(jìn)行2^130次輸入就會(huì)有99%的可能發(fā)生一次碰撞。不過我們可以計(jì)算一下,假設(shè)一臺(tái)計(jì)算機(jī)以每秒10000次的速度進(jìn)行哈希運(yùn)算,要經(jīng)過10^27年才能完成2^128次哈希!這時(shí)要考慮一種情況:如果同時(shí)有兩個(gè)礦工各自得到一個(gè)正確答案,并各自生成了一個(gè)區(qū)塊廣播出去會(huì)發(fā)生什么呢?這時(shí)候在區(qū)塊鏈上同一個(gè)位置就有了兩個(gè)區(qū)塊,所謂的“分叉”就出現(xiàn)了。分叉是絕對(duì)不允許的,所以當(dāng)?shù)V工發(fā)現(xiàn)區(qū)塊鏈分叉之后,會(huì)選擇最長的一條繼續(xù)計(jì)算,短的那條區(qū)塊鏈會(huì)被丟棄。這里的長短,不是簡單意義上的長短,而是工作量證明合計(jì)值最大的那個(gè)鏈。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

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

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

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

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

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

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

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

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

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

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

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

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(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)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

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