版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1
區(qū)塊鏈(BlockChain)-安全解決方案集大成者教學(xué)視頻、國家級一流在線課程鏈接:/course/FUDAN-12063578112BlockChain區(qū)塊鏈簡史兩個方面的完整性工作量證明(Proof-of-work)共識機(jī)制公鑰密碼實(shí)現(xiàn)身份標(biāo)識、交易的簽名31、區(qū)塊鏈簡史Definitions什么是區(qū)塊鏈?面向數(shù)字貨幣記賬系統(tǒng)(Bitcoins)設(shè)計的密碼解決方案無比特幣不談區(qū)塊鏈所以,首先要搞清楚什么是Bitcoins人類貨幣極簡史貨幣=一般等價物無交易則無貨幣,貨幣是為交易而生的紙幣,本質(zhì)上是“白條”,是中央銀行背書的白條,一般是由政府信用擔(dān)保的當(dāng)今的貨幣系統(tǒng):是以紙幣為基礎(chǔ)的一個復(fù)雜的記賬系統(tǒng)大額交易普遍是記賬交易,銀行實(shí)際上是記賬人角色小額交易也有記賬化的趨勢例如,支付寶,微信支付…人類貨幣極簡史當(dāng)今的貨幣系統(tǒng):注意貨幣本身是虛擬的,本身無任何價值中央系統(tǒng)虛擬貨幣時代,每個參與者都不需要用實(shí)物支付,支付過程變成了銀行那邊維護(hù)的賬本上數(shù)字的變更。如果有參與者想要知道自己還剩多少余額,那么只需要去銀行處統(tǒng)計一下賬本上的記錄即可存在問題?解決方案人類貨幣極簡史當(dāng)今的貨幣系統(tǒng),存在問題?解決方案這個體系完全依賴于賬本持有人信用,如果這個人不守規(guī)矩,隨意篡改賬本,那么整個貨幣系統(tǒng)就會崩潰濫發(fā)貨幣,通貨膨脹惡意記賬如果這個持有人家里失火或者賬本失竊,同樣也會為整個體系帶來毀滅性的打擊中本聰認(rèn)為:去中心化是必然的!要改造當(dāng)前的貨幣系統(tǒng)比特幣是精心打造的P2P數(shù)字貨幣記賬系統(tǒng)比特幣始于何時“SatoshiNakamoto”(中本聰)createdthereferenceimplementationthatbeganwithaGenesisBlock(創(chuàng)世區(qū)塊)of50coins2008August18 Domainname""registered. October31 BitcoindesignpaperpublishedNovember09 BitcoinprojectregisteredatSourceF 2009January3 Genesisblockestablishedat18:15:05GMTJanuary9 Bitcoinv0.1releasedandannouncedonthe cryptographymailinglistJanuary12 FirstBitcointransaction,inblock170fromSatoshi toHalFinney
8(Adeveloperfor
PGPCorporation,anoted
cryptographic
activist)BitcoinWhitepaper–2008.10.31**Halloween9比特幣的兩個主要支撐技術(shù)區(qū)塊鏈密碼技術(shù)解決方案P2P網(wǎng)絡(luò)去中心化記賬的網(wǎng)絡(luò)基礎(chǔ)設(shè)施10賬本公開機(jī)制—每人手里都可有一份賬本,都是真的賬本上不再記載每戶參與者的余額,而只記載每一筆交易。即記載每一筆交易的付款人、收款人和付款金額。只要賬本的初始狀態(tài)確定,每一筆交易記錄可靠并有時序,當(dāng)前每個人持有多少錢是可以推算出來的。(每個人自己也可以為自己的錢包記賬,方便快速查詢余額)賬本由私有改為公開,只要任何參與者需要,都可以獲得當(dāng)前完整的賬本,賬本上記錄了從賬本創(chuàng)建開始到當(dāng)前所有的交易記錄?;炯僭O(shè):大家必須誠實(shí)守信,或者說一半以上的人需要誠實(shí)守信,即承認(rèn)真的賬本確實(shí)是真的,即使有少部分人(一半以下)集體偽造賬本,本著少數(shù)服從多數(shù)的原則,真的賬本仍然不會被替代11去中心化的記賬區(qū)塊=賬本區(qū)塊鏈的實(shí)質(zhì):賬本就是比特幣系統(tǒng)中的區(qū)塊,多個區(qū)塊連接在一起就是區(qū)塊鏈一個區(qū)塊記錄著多筆交易區(qū)塊是有順序的,一個區(qū)塊會有唯一的父區(qū)塊區(qū)塊和區(qū)塊鏈最重要的安全需求是什么?1213BlockChain比特幣簡史兩個方面的完整性Proof-of-work(工作量證明)身份標(biāo)識、驗(yàn)證身份、抗抵賴—公鑰密碼2、兩個方面的完整性14區(qū)塊=賬本區(qū)塊鏈的實(shí)質(zhì):賬本就是比特幣系統(tǒng)中的區(qū)塊,多個區(qū)塊連接在一起就是區(qū)塊鏈一個區(qū)塊記錄著多筆交易區(qū)塊是有順序的,一個區(qū)塊會有唯一的父區(qū)塊區(qū)塊和區(qū)塊鏈最重要的安全需求是什么?15完整性兩個方面的完整性交易歷史的完整性整個賬本鏈條(區(qū)塊鏈)的完整性交易發(fā)生后不可逆,交易歷史記錄完整,可追溯交易本身的完整性賬本(區(qū)塊)上的所有交易記錄完整不可篡改解決:DigitalSignaturesandCryptographicHash16兩個方面的完整性區(qū)塊包含兩個部分:區(qū)塊頭(Head):記錄當(dāng)前區(qū)塊的元信息前一區(qū)塊頭Hash
->交易歷史的完整性Merkle樹根Hash
->交易本身的完整性區(qū)塊體(Body):記錄實(shí)際交易數(shù)據(jù)等兩個方面的完整性前一區(qū)塊頭Hash
->交易歷史的完整性Merkle樹根Hash
->交易本身的完整性鏈條上任何一個中間區(qū)塊不可刪除/替換19交易歷史的完整性Block#0Prev_hash0Nonce0Block#1Prev_hash000D45698Nonce3459SHA-256Block#2Prev_hash000F67839Nonce974329SHA-256交易記錄的完整性Merkle樹是一種HASH二叉樹,它是一種用作快速歸納和校驗(yàn)大規(guī)模數(shù)據(jù)完整性的數(shù)據(jù)結(jié)構(gòu)生成整個交易集合的數(shù)字指紋,提供了一種校驗(yàn)區(qū)塊是否存在某交易的高效途徑至多計算2*log2(N)次就能檢查出任意某數(shù)據(jù)元素是否在該樹中,該數(shù)據(jù)結(jié)構(gòu)非常高效在比特幣的Merkle樹中,交易被兩次使用SHA256算法,因此其HASH算法也被稱為double-SHA25620Merkle根實(shí)質(zhì)上是整個交易集合的HashHA=SHA256(SHA256(交易A))HAB=SHA256(SHA256(HA+HB))Merkle樹…..Merkle樹HKHKLHIJHIJKLHMNOPHIJKLMNOPHABCDEFGHIJKLMNOPHABCDEFGHHL…..驗(yàn)證交易K是否存在于區(qū)塊中?先算出HK,…...,藍(lán)色hash是查詢出來的,綠色hash是計算出來的;計算出來最后的根,同區(qū)塊頭中Merkle樹根進(jìn)行比較,如果相同,那么說明交易存在于該區(qū)塊中FullPeer存儲完整的Block,包括:BlockSize+BlockHeader+TransactionCounter+TransactionsSPV(SimplifiedPaymentVerification)Client只存儲精簡的Block:BlockSize+BlockHeader23FullPeerSPVClient24BlockChain比特幣簡史兩個方面的完整性Proof-of-work(工作量證明)身份標(biāo)識、驗(yàn)證身份、抗抵賴—公鑰密碼25BlockChain3、工作量證明(Proof-of-work)誰來生成區(qū)塊(記賬)-礦工比特幣參與者有兩個身份:交易者,礦工參與者可以同時兼有這兩個身份礦工從事比特幣“挖礦”活動:即將最近發(fā)生的交易記錄在賬本上(生成區(qū)塊,并加入到鏈條中)礦工有一定可能性獲得報酬礦工可以隨時退出,也可以隨時有新的礦工加進(jìn)來(P2P系統(tǒng)的特性)挖礦是有一定難度的(有一定計算量),礦工之間存在著競爭關(guān)系26礦工的工作1.收集交易單每筆交易的付款人,不但要將交易單給到收款人,還要同時把交易單投遞到每個礦工小組的收件箱里礦工定期到自己收件箱里把收集到的交易單一并取出2.填寫賬本按筆填寫交易記錄填寫區(qū)塊頭,前一區(qū)塊頭Hash值,Nonce值等,Nonce值可任意填一個數(shù)字(見下頁)27Prev_hashMerklerootTimestampNonce…Transaction1Transaction2…TransactionN區(qū)塊體區(qū)塊頭工作量證明(Proof-of-work)如果礦工的工作就這么簡單,那就大錯特錯了,新區(qū)塊必須滿足兩個條件:新區(qū)塊記錄的交易還有待系統(tǒng)(其它礦工)的確認(rèn)新區(qū)塊頭的HASH必須滿足計算量要求即即,礦工需要選擇合適的隨機(jī)數(shù)Nonce,使得:H(prev_hash,Nounce,Merkle_root,其他頭部字段)<E.E是系統(tǒng)規(guī)定的難度值,如:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFVerificationiseasy.Butproof-of-workishard.28Howhardisthegame?考慮長度256的bit序列ForNzeros,becausetheSHA-256outputiseffectivelyrandom,gettingzerobits=sameasflippingacoinandgettingNheadsinarowForNzeros,havetotry2N/2Nonces…N
=
1….Try1nonceN
=16…Try32768noncesN
=32…Try2billionnoncesWinningablockprovestheminer
didwork30in3e-05seconds,nonce=0yielded0zeros.value=4c8f1205f49e70248939df9c7b704ace62c2245aba9e81641edf…in0.000138seconds,nonce=12yielded1zeros.value=05017256be77ad2985b36e75e486af325a620a9f29c54…in0.000482seconds,nonce=112yielded2zeros.value=00ae7e0956382f55567d0ed9311cfd41dd2cf5f0a7137…in0.014505seconds,nonce=3728yielded3zeros.value=000b5a6cfc0f076cd81ed3a60682063887cf055e47b…in0.595024seconds,nonce=181747yielded4zeros.value=0000af058b74703b55e27437b89b1ebcc46f45ce55d6….in3.491151seconds,nonce=1037701yielded5zeros.value=00000e55bd0d2027f3024c378e0cc511548c94fbeed0e….in32.006105seconds,nonce=9913520yielded6zeros.value=00000077a77854ee39dc0dc996dea72dad8852afbde6….in590.89462seconds,nonce=186867248yielded7zeros.value=0000000225060b16117b23dbea9ce6be86ac439d….in4686.171007seconds,nonce=1424462909yielded8zeros.value=000000002dd743724609a9f57260e2492908d….For
example,wehashanincrementing“Nonce”asthehashinput,wecangolookingforzeros:難度值設(shè)置原則:區(qū)塊鏈被設(shè)計為平均每10分鐘生成一個新區(qū)塊需要定期更新難度值E(每隔2016個區(qū)塊):全網(wǎng)均會自動統(tǒng)計過去2016個區(qū)塊生成耗時,重新計算出下一個2016個區(qū)塊難度值的目標(biāo)值按10分鐘一個區(qū)塊生成速度,2016個區(qū)塊生成時間為2016*10分鐘=14天新目標(biāo)值=當(dāng)前目標(biāo)值*實(shí)際2016個區(qū)塊出塊時間/理論2016個區(qū)塊出塊時間(14天)。如何維持區(qū)塊生成速度?3233BlockChain4、共識機(jī)制完整性:不可篡改!—基于假設(shè):51%以上的參與者是誠實(shí)的中本聰?shù)V工為什么要拼命干這看似無意義的事情呢?因?yàn)閳蟪辏篵itcoins/比特幣每一個區(qū)塊的交易清單第一條交易為“系統(tǒng)給這個礦工支付50個比特幣”如果某礦工生成了一張合法的區(qū)塊,并且被所有挖礦小組接受確認(rèn)了,那么就意味著這條交易也被接受了,該礦工獲得了50個比特幣這就是礦工被叫做礦工的原因,也就是說隨著交易和礦工的活動,比特幣的數(shù)量會不斷增多礦工的激勵機(jī)制中本聰3.確認(rèn)新區(qū)塊/賬本當(dāng)某礦工生成了一個區(qū)塊,為了得到獎勵,必須立刻請其它礦工確認(rèn)自己的工作,所以這個礦工必須將有效區(qū)塊,快馬加鞭送到其他礦工手里請求確認(rèn)系統(tǒng)規(guī)定當(dāng)某個礦工接到其他礦工送來的新區(qū)塊時,必須立即停下手里的挖礦工作進(jìn)行確認(rèn)需要確認(rèn)的信息有三個:區(qū)塊HASH滿足難度值要求區(qū)塊的前一個區(qū)塊有效——前一區(qū)塊確實(shí)是自己的最后一個區(qū)塊,且HASH正確交易清單有效——如付款人有余額礦工的工作(續(xù))中本聰4.公布新區(qū)塊當(dāng)某個礦工新生成的區(qū)塊送出去后,如果后面有收到其他礦工送來的新區(qū)塊,其“前一個區(qū)塊”為自己之前送出去的區(qū)塊,那么就表示他的工作成功被其他人認(rèn)可了,因?yàn)橐呀?jīng)有人基于他們的賬本紙繼續(xù)工作了。此時,可以粗略地認(rèn)為他已經(jīng)得到了50個比特幣另外,任何一個礦工當(dāng)新生成有效區(qū)塊或確認(rèn)了別的礦工的區(qū)塊時,就將最新被這個礦工承認(rèn)的交易寫到公告牌上,那么收款人只要發(fā)現(xiàn)相關(guān)交易被各個礦工認(rèn)可了,基本就可以認(rèn)為這筆錢已經(jīng)到了自己的賬上,后面他就可以在付款時將錢的來源指向這筆交易礦工的工作(續(xù))中本聰同時收到兩個合法的區(qū)塊通貨膨脹防篡改——依靠51%以上誠實(shí)的人問題討論注意在上面的運(yùn)行機(jī)制中,各個礦工是并行工作的,因此完全可能出現(xiàn)這樣的情況:某礦工收到兩份不一樣的新區(qū)塊中本聰問題:注意到各個礦工是并行工作的,因此完全可能出現(xiàn)這樣的情況,某礦工收到兩份不一樣的新區(qū)塊:它們都基于當(dāng)前這個礦工的區(qū)塊鏈的的最后一個區(qū)塊并且區(qū)塊內(nèi)容都完全合法(即所記錄的交易有效)區(qū)塊頭HASH滿足難度值要求答:不應(yīng)該以線性方式組織賬本,而應(yīng)該以樹狀組織賬本,任何時刻,都以當(dāng)前最長分支作為主賬本,但是保留其它分支同時收到兩個合法的區(qū)塊?某一時刻:收到兩個合法區(qū)塊A、B以B為主鏈的挖礦活動:以A為主鏈的挖礦活動:至此,攻擊者將10個比特幣花了兩次,從兩名受害者那里各購得等值黃金。攻擊者還可以如法炮制,取消與受害者B的轉(zhuǎn)賬,將同一筆錢再支付給其他人……解決:收款人在公告掛出時不能立即確認(rèn)交易完成,而是應(yīng)該再看一段時間,等待各個挖礦小組再掛出6張確認(rèn)區(qū)塊,并且之前的區(qū)塊沒有被取消,才能確認(rèn)錢已到賬之前設(shè)定Proof
of
work規(guī)則,正是為了防御這一點(diǎn)。根據(jù)前面所述,生成有效區(qū)塊不是那么簡單的,要花費(fèi)大量計算量。如果某區(qū)塊包含你收到錢的確認(rèn),并且在后面又延續(xù)了6個區(qū)塊,那么攻擊者想要在落后6個的情況下從另一個分支趕超當(dāng)前主分支是非常困難的,除非攻擊者擁有非常多的算力,超過其他所有誠實(shí)礦工的算力之和剛開始協(xié)議每生成一頁賬本(一個區(qū)塊),獎勵礦工50個比特幣后面,每當(dāng)賬本增加21,000頁,獎勵就減半,例如當(dāng)達(dá)到210,000頁后,每生成一頁賬本獎勵25個比特幣,420,000頁后,每生成一頁獎勵12.5個,依次類推等賬本達(dá)到6,930,000頁后,新生成賬本頁就沒有獎勵了。此時比特幣全量約為21,000,000個,這就是比特幣的總量,所以不會無限增加下去問題:挖礦活動導(dǎo)致比特幣數(shù)量一直增加下去,豈不是會嚴(yán)重通貨膨脹?通貨膨脹到時,礦工的收益會由生成區(qū)塊所得變?yōu)槭杖∈掷m(xù)費(fèi)。例如,你在轉(zhuǎn)賬時可以指定其中1%作為手續(xù)費(fèi)支付給生成賬本頁的礦工,各個礦工會挑選手續(xù)費(fèi)高的交易單優(yōu)先確認(rèn)沒有獎勵后,就沒人做礦工了,豈不是沒人幫忙確認(rèn)交易了怎樣防止篡改?因:區(qū)塊HASH
=
SHA256(SHA256(version+prev_hash+Merkle_root+時間戳+當(dāng)前難度+Nonce
)),
攻擊1:改變區(qū)塊內(nèi)交易記錄,那么Merkle根對應(yīng)不上攻擊2:攻擊者改變交易記錄和Merkle根,那么區(qū)塊HASH對應(yīng)不上攻擊3:某壞礦工沒有到達(dá)難度要求就提交了區(qū)塊,那么任何人根據(jù)難度要求的計算公式進(jìn)行驗(yàn)證都會發(fā)現(xiàn)錯誤,或者說只要51%的人都承認(rèn)錯誤即攻擊失敗攻擊4:攻擊者改變了區(qū)塊內(nèi)容和區(qū)塊HASH,那么會導(dǎo)致本區(qū)塊的下一個區(qū)塊頭內(nèi)保存的prev_hash對應(yīng)不上,51%的人都承認(rèn)錯誤那么攻擊失敗攻擊5:假設(shè)攻擊者掌握了51%甚至更高的算力,那么成為一個合法的良民收益會更大更安全不可篡改!—依靠51%的誠實(shí)的人44BlockChain比特幣簡史兩個方面的完整性Proof-of-work(工作量證明)公鑰密碼實(shí)現(xiàn)身份標(biāo)識、交易的簽名45BlockChain5、公鑰密碼實(shí)現(xiàn)身份標(biāo)識、交易的簽名區(qū)塊數(shù)據(jù)結(jié)構(gòu)46Prev_hash(前一區(qū)塊頭Hash)Merkle樹根Hash當(dāng)前區(qū)塊頭Hash交易記錄及其過程對于每筆交易(有唯一編號),付款人簽名,簽名塊放在交易記錄中
SignPR付款人(當(dāng)前交易+收款人的Publickey)任何人可以驗(yàn)證
任何人都可以追蹤交易歷史圖.類似的交易賬本公鑰密碼:交易完整/可認(rèn)證/抗抵賴?yán)鐚灰?的有效性驗(yàn)證:交易3包含:1.輸入和輸出,2.Bob對交易的簽名,3.Bob公鑰交易3的輸入來自交易2的輸出0然后驗(yàn)證者把Bob的公鑰轉(zhuǎn)換為錢包地址(見下頁),和交易2的輸出0的錢包地址(被交易2的付款人簽過名的)做對比,若是不相等,則為無效交易圖.類似的交易賬本若相等,則用Bob的公鑰驗(yàn)證簽名,驗(yàn)證通過,則:1)證實(shí)Bob的確擁有交易2的輸出0的錢,2)本次交易是由Bob發(fā)起的,3)保證了本次交易
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年餐飲酒店人力資源服務(wù)合同
- 2024年重型鏟車租賃協(xié)議樣本版B版
- 寫作文的書知乎
- 2025年度環(huán)境保護(hù)補(bǔ)償貿(mào)易融資協(xié)議3篇
- 2025年度醫(yī)療設(shè)備采購合同范本及售后服務(wù)條款3篇
- 濮陽石油化工職業(yè)技術(shù)學(xué)院《診斷治療學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 云南體育運(yùn)動職業(yè)技術(shù)學(xué)院《兒科學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢光谷職業(yè)學(xué)院《飼料學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 揚(yáng)州環(huán)境資源職業(yè)技術(shù)學(xué)院《病原微生物免疫與健康》2023-2024學(xué)年第一學(xué)期期末試卷
- 基坑土方回填監(jiān)理旁站記錄表
- 跨部門溝通與協(xié)調(diào)課件
- 醫(yī)生進(jìn)修報告ppt通用模板
- 2022年版《義務(wù)教育信息科技技術(shù)新課程標(biāo)準(zhǔn)》試題與答案
- 汽車OTS工程樣件認(rèn)可流程課件
- 明細(xì)賬(三欄式)模板
- 三年級數(shù)學(xué)思維訓(xùn)練【奧數(shù)舉一反三】附部分答案解析
- 2023年數(shù)學(xué)競賽AMC8真題A卷(含答案)
- 審計控制活動方案
- 單位洗車房管理制度
- 2023年醫(yī)療軟件實(shí)施工程師年度總結(jié)及下年規(guī)劃
- 廣西壯族自治區(qū)欽州市浦北縣2022-2023學(xué)年七年級上學(xué)期期末英語試題
評論
0/150
提交評論