區(qū)塊鏈?zhǔn)鞘裁矗绾魏?jiǎn)單易懂地介紹區(qū)塊鏈?
- 沒有被移花接木。步驟一和步驟二的結(jié)合就是為了生成這樣一份有且僅針對(duì)這條小紙條有效的簽名。
- 第三步:小 A 將「明文的小紙條」、剛剛加密成功的「數(shù)字簽名」,以及自己那把可以公布于眾的「公鑰」打包一起發(fā)給小 B。
- 第四步:當(dāng)小 B 收這三樣?xùn)|西,首先會(huì)將明文的小紙條進(jìn)行 Hash()處理,得到一個(gè)字符串,我們將其命名為“字符串 1”。然后,小 B 使用小 A 公布的公鑰,對(duì)發(fā)過(guò)來(lái)的數(shù)字簽名進(jìn)行解密,得到另外一個(gè)“字符串 2”。通過(guò)比對(duì)“字符串 1”和“字符串 2”的一致性,便可充分證明:小 B 接受到的小紙條就是小 A 發(fā)出來(lái)的小紙條,這張小紙條在中途沒有被其他人所篡改;且這張小紙條確實(shí)是由小 A 所編輯。
可以看得出來(lái),加解密的過(guò)程幾乎是一環(huán)套一環(huán),中途任何環(huán)節(jié)被篡改,結(jié)果都是大相徑庭。借助這一連串的機(jī)制,其實(shí)已經(jīng)能夠很好的在公開、匿名、彼此不信任的分布式網(wǎng)絡(luò)環(huán)境中解決數(shù)字交易過(guò)程中可能遇到的很多問(wèn)題。這個(gè)環(huán)節(jié)可能確實(shí)有點(diǎn)難理解,現(xiàn)在,我需要你停下來(lái),靜下心,花上幾分鐘閉目慢慢回味其中設(shè)計(jì)精湛的地方。
掌握了這部分知識(shí)以后,我們?cè)谶@里回答一下前面沒有解釋清楚的問(wèn)題,「節(jié)點(diǎn)對(duì)區(qū)塊的檢驗(yàn)」檢驗(yàn)的到底是什么?實(shí)際上就是:
- 檢驗(yàn)區(qū)塊內(nèi)的交易記錄簽名是否準(zhǔn)確(是否被篡改)
- 檢驗(yàn)區(qū)塊內(nèi)的交易記錄輸入值是否“有效”(是否使用過(guò))
- 檢驗(yàn)區(qū)塊內(nèi)的交易記錄輸入值的數(shù)字之和是否大于等于輸出值的數(shù)字
- …
# 重回“區(qū)塊”和“區(qū)塊鏈”的世界
好了,對(duì)小紙條和交易記錄的研究我們點(diǎn)到為止,其實(shí)信息量已經(jīng)是巨大的了,讓我們合上蓋子,重回較大實(shí)體、繼續(xù)聊聊“區(qū)塊”和“區(qū)塊鏈”的話題。還記得,咱們?cè)谝婚_始講到關(guān)于區(qū)塊的特征嗎?區(qū)塊創(chuàng)造后被埋在地下,需要經(jīng)過(guò)節(jié)點(diǎn)們馬不停蹄的挖采、而且是憑運(yùn)氣的挖采才有可能獲得——不僅僅如此,事實(shí)上他還有其他很多神奇的地方,比如說(shuō):
- 憑空產(chǎn)生的區(qū)塊在剛剛創(chuàng)建的時(shí)候會(huì)形成一股強(qiáng)大的黑洞效應(yīng),它會(huì)嘗試將這段時(shí)間全世界各個(gè)節(jié)點(diǎn)上產(chǎn)生的所有小紙條(交易記錄)統(tǒng)統(tǒng)吸進(jìn)來(lái);在合上區(qū)塊蓋子之前,同時(shí)會(huì)在區(qū)塊內(nèi)放上一些數(shù)字貨幣以及其他一些東西。
- 區(qū)塊擁有一個(gè)唯一的 ID,但它只會(huì)在這個(gè)區(qū)塊被節(jié)點(diǎn)成功從地下挖出來(lái)之后創(chuàng)建。這個(gè) ID 至少會(huì)跟「區(qū)塊內(nèi)所有小紙條的集合」、「即將與之相連的上一個(gè)區(qū)塊 ID」以及「挖礦節(jié)點(diǎn)的運(yùn)氣值」等因素相關(guān)。既然前面我們已經(jīng)簡(jiǎn)單了解了“Hash()函數(shù)”這個(gè)東西,這里不妨透露給大家:“區(qū)塊 ID = Hash(‘區(qū)塊內(nèi)所有小紙條的集合’+’即將與之相連的上一個(gè)區(qū)塊 ID’+‘挖礦節(jié)點(diǎn)的運(yùn)氣值’+’…’)” ;基于先前掌握的知識(shí),然后你應(yīng)該知道區(qū)塊內(nèi)任意一張小紙條的信息稍微做改動(dòng)、或者節(jié)點(diǎn)挖礦運(yùn)氣好一點(diǎn)壞一點(diǎn)等等,當(dāng)前區(qū)塊的 ID 都會(huì) “ biu~ ”的發(fā)生改變。
基于上述 1、2 點(diǎn),如果閱讀足夠仔細(xì)的同學(xué)可能會(huì)有些頭大。在文章開頭為了更好的描述,我在設(shè)計(jì)簡(jiǎn)化區(qū)塊鏈系統(tǒng)的時(shí)候故意模棱兩可了幾個(gè)概念,這也許已經(jīng)誤導(dǎo)到了部分同學(xué)。這里不得不停下來(lái)和你一起修正下之前在你大腦中已經(jīng)構(gòu)建的區(qū)塊鏈?zhǔn)澜缬^。我們前面講道,“在節(jié)點(diǎn)的視野里,大概每十分鐘會(huì)憑空產(chǎn)生一個(gè)建立在自己平行宇宙世界的神奇區(qū)塊”。如何正確去理解這句話呢?——擁有上帝之眼的你,可以這么拆解問(wèn)題、看待問(wèn)題:
- 同一個(gè)周期內(nèi),全網(wǎng)并不是產(chǎn)生唯一的一個(gè)區(qū)塊等待挖掘;每個(gè)節(jié)點(diǎn)事實(shí)上都在周期性的創(chuàng)造區(qū)塊和挖出區(qū)塊;只是在某一個(gè)節(jié)點(diǎn)的視野里,它不能感知到另外一個(gè)節(jié)點(diǎn)上區(qū)塊的產(chǎn)生。為何這里要特別強(qiáng)調(diào)“在某一個(gè)節(jié)點(diǎn)的視野里”,就是因?yàn)槲覀儎倓傊v到,從區(qū)塊的視角來(lái)說(shuō),區(qū)塊的憑空產(chǎn)生,是基于即將與之相連的上一個(gè)區(qū)塊 ID;而從節(jié)點(diǎn)的視角來(lái)看,區(qū)塊的憑空產(chǎn)生是基于當(dāng)前節(jié)點(diǎn)區(qū)塊鏈末尾的那個(gè)區(qū)塊 ID 產(chǎn)生的。
- 全網(wǎng)會(huì)盡力控制在一個(gè)周期內(nèi)只有一個(gè)節(jié)點(diǎn)能夠成功挖出區(qū)塊,但是不能夠完全避免多個(gè)節(jié)點(diǎn)同時(shí)挖出區(qū)塊的可能性;如何盡力控制?比如說(shuō),當(dāng)大伙挖礦的熱情高漲、工作效率提高,區(qū)塊會(huì)被埋在更深更廣的地方等。簡(jiǎn)而言之,通過(guò)提高工作難度,來(lái)維持這個(gè)平衡。另外,值得注意的:產(chǎn)生區(qū)塊、挖出區(qū)塊、校驗(yàn)區(qū)塊,他們的時(shí)間周期近乎相同。
挖礦,本質(zhì)是通過(guò)與或運(yùn)算,去碰撞一個(gè)出一個(gè)滿足規(guī)則的隨機(jī)數(shù)。這個(gè)部分要細(xì)講的話,估計(jì)又可以寫出兩三千字來(lái)。我覺得到目前為止,并不影響主軸知識(shí)點(diǎn)的講解,這一塊會(huì)作為后續(xù)知識(shí)結(jié)構(gòu)的完善被撰寫(計(jì)劃 1 月 24 日前完成)。感興趣的同學(xué)可以 Google 百度查閱下什么叫“挖礦”、“工作量證明 POW”等。
分叉
現(xiàn)在,我們終于對(duì)“區(qū)塊”這個(gè)概念有了更全面的認(rèn)識(shí),文章開頭講的故事就可以繼續(xù)展開來(lái)絮叨絮叨:
假如幾乎同一時(shí)間,「中國(guó)上海浦東新區(qū)張衡路」上的節(jié)點(diǎn)和「美國(guó)紐約曼哈頓第五大道」上的節(jié)點(diǎn)異口同聲喊出來(lái):“我挖到區(qū)塊了!里面的小紙條都是有效的!獎(jiǎng)勵(lì)歸我!”。其他節(jié)點(diǎn)也幾乎同時(shí)參與了對(duì)這兩個(gè)區(qū)塊的校驗(yàn),結(jié)果發(fā)現(xiàn)這倆都沒毛病,各節(jié)點(diǎn)也開始犯困,因?yàn)樵谒麄兊囊曇袄锼麄儾⒉磺宄詈竽囊粋€(gè)區(qū)塊應(yīng)該會(huì)被主鏈接納。算了!都連在自己區(qū)塊鏈尾巴上吧,這時(shí)尷尬了,區(qū)塊鏈硬生生的被分叉了!
你肯定在想,那還得了,這種情況繼續(xù)下去,每個(gè)節(jié)點(diǎn)的區(qū)塊以及他們整理維護(hù)的小紙條都將變得不一樣,這已經(jīng)嚴(yán)重違背了區(qū)塊鏈?zhǔn)澜缋锏谝淮笞罨驹瓌t——所有節(jié)點(diǎn)共同維護(hù)同一份數(shù)據(jù)。所以,為了解決這個(gè)問(wèn)題,區(qū)塊鏈?zhǔn)澜缫肓艘粭l新的規(guī)則——擁有最多區(qū)塊的支鏈將是真正被認(rèn)可有價(jià)值的,較短的支鏈將會(huì)被直接 Kill 掉。
我們大伙都知道挖礦的過(guò)程存在巨大的工作量(如果沒有任何難度,把區(qū)塊扔在人群中,必然同一時(shí)間發(fā)現(xiàn)區(qū)塊的節(jié)點(diǎn)數(shù)量將大大增加,也就會(huì)產(chǎn)生無(wú)數(shù)的支鏈,通過(guò)這個(gè)例子,你大概也就能夠明白,區(qū)塊鏈?zhǔn)澜鐬槭裁葱枰O(shè)置工作難度了吧),并且在計(jì)算機(jī)的硅基世界里,不可能出現(xiàn)所謂 “同時(shí)” 的概念,哪怕納秒的差別,那也總是會(huì)有先后順序。所以理論上,“分叉”的這種僵局很快會(huì)在下一個(gè)區(qū)塊被挖掘出來(lái)(以及校驗(yàn)區(qū)塊)的時(shí)候被打破,實(shí)在不行下下個(gè),或者下下下個(gè)……總之機(jī)制可以讓整個(gè)分叉的區(qū)塊鏈?zhǔn)澜缪杆俜€(wěn)定下來(lái)。
“分叉”這種僵局在確認(rèn)下一個(gè)區(qū)塊(以及校驗(yàn)小紙條)的時(shí)候被打破,從而整個(gè)區(qū)塊鏈?zhǔn)澜缪杆俜€(wěn)定下來(lái)
就上圖而言,所有基于張衡路節(jié)點(diǎn)挖礦獲得的區(qū)塊以及后續(xù)區(qū)塊的那條分支被視為有價(jià)值,最終會(huì)全部保留了下來(lái);其他節(jié)點(diǎn)會(huì)統(tǒng)一效仿那個(gè)擁有更長(zhǎng)分支鏈的節(jié)點(diǎn)所做的決策。另外,值得一提的是,同一時(shí)間,較短分支上的區(qū)塊會(huì)立即丟棄,而里面的小紙條也會(huì)隨之釋放出來(lái),被重新標(biāo)記上“未確認(rèn)”。
“雙花”與“51% 攻擊”
你可能已經(jīng)開始困惑或者有點(diǎn)興奮,末尾幾個(gè)區(qū)塊的排序在修復(fù)過(guò)程中,因?yàn)闀r(shí)間差肯定會(huì)產(chǎn)生一些模棱兩可的地方,這往往會(huì)給數(shù)據(jù)安全埋下一顆雷。一個(gè)最簡(jiǎn)單的假設(shè)——我記錄的一張小紙條很不巧地被歸在了一條較短的支鏈上,這條支鏈在競(jìng)爭(zhēng)過(guò)程中理所當(dāng)然輸?shù)袅吮荣悾瑓^(qū)塊被丟棄、小紙條被無(wú)情的貼上“未確認(rèn)”的標(biāo)簽。在等待下次區(qū)塊重新確認(rèn)的過(guò)程中,這個(gè)時(shí)間差內(nèi),我,好像、似乎可以做點(diǎn)什么壞事 ?(¯﹃¯?) ,就比如說(shuō)“雙花”(雙花,花兩次,雙重支付的意思)
你腦海中也許很快浮過(guò)的這樣的構(gòu)想,可不可能通過(guò)下面這種方法觸發(fā)雙花問(wèn)題的產(chǎn)生,從而讓我不勞而獲:
- 假設(shè)有一個(gè)名叫 X-Man 的壞家伙,他控制了一個(gè)計(jì)算機(jī)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)擁有比地球上任何一個(gè)節(jié)點(diǎn)算力都強(qiáng)大的計(jì)算機(jī)集群。
- 首先,X-Man 事先創(chuàng)造了一條獨(dú)立的(不去廣而告之)、含有比較多區(qū)塊的鏈條。其中一個(gè)區(qū)塊里放著“X-Man 轉(zhuǎn)賬給 X-Man 1000 元”的紙條。
- 接著,X-Man 跟張三購(gòu)買了一部手機(jī),他在小紙條上記錄下“X-Man 轉(zhuǎn)賬給張三 1000 元”;這條信息被三次確認(rèn)后(即三個(gè)區(qū)塊被真實(shí)挖出、校驗(yàn)和連接),然后,張三把手機(jī)給了 X-Man。
- X-Man 拿到手機(jī)之后,按下機(jī)房的開關(guān),試圖將先前已經(jīng)創(chuàng)造的區(qū)塊鏈條連接在自己這個(gè)節(jié)點(diǎn)區(qū)塊鏈的末尾。
- 大功告成,X-Man 擁有了一條更長(zhǎng)的區(qū)塊鏈條,那些較短、存放著“X-Man 轉(zhuǎn)賬給張三 1000 元”的區(qū)塊鏈,以及在區(qū)塊鏈?zhǔn)澜缋锬莿t真實(shí)轉(zhuǎn)賬行為被一同成功銷毀。(?)
事實(shí)真的如此嗎?在這里我可以很負(fù)責(zé)任的說(shuō),too young too simple,區(qū)塊鏈?zhǔn)?/p>
責(zé)任編輯:售電衡衡
-
權(quán)威發(fā)布 | 新能源汽車產(chǎn)業(yè)頂層設(shè)計(jì)落地:鼓勵(lì)“光儲(chǔ)充放”,有序推進(jìn)氫燃料供給體系建設(shè)
2020-11-03新能源,汽車,產(chǎn)業(yè),設(shè)計(jì) -
中國(guó)自主研制的“人造太陽(yáng)”重力支撐設(shè)備正式啟運(yùn)
2020-09-14核聚變,ITER,核電 -
探索 | 既耗能又可供能的數(shù)據(jù)中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務(wù),新能源消納,能源互聯(lián)網(wǎng)
-
新基建助推 數(shù)據(jù)中心建設(shè)將迎爆發(fā)期
2020-06-16數(shù)據(jù)中心,能源互聯(lián)網(wǎng),電力新基建 -
泛在電力物聯(lián)網(wǎng)建設(shè)下看電網(wǎng)企業(yè)數(shù)據(jù)變現(xiàn)之路
2019-11-12泛在電力物聯(lián)網(wǎng) -
泛在電力物聯(lián)網(wǎng)建設(shè)典型實(shí)踐案例
2019-10-15泛在電力物聯(lián)網(wǎng)案例
-
新基建之充電樁“火”了 想進(jìn)這個(gè)行業(yè)要“心里有底”
2020-06-16充電樁,充電基礎(chǔ)設(shè)施,電力新基建 -
燃料電池汽車駛?cè)雽こ0傩占疫€要多久?
-
備戰(zhàn)全面電動(dòng)化 多部委及央企“定調(diào)”充電樁配套節(jié)奏
-
權(quán)威發(fā)布 | 新能源汽車產(chǎn)業(yè)頂層設(shè)計(jì)落地:鼓勵(lì)“光儲(chǔ)充放”,有序推進(jìn)氫燃料供給體系建設(shè)
2020-11-03新能源,汽車,產(chǎn)業(yè),設(shè)計(jì) -
中國(guó)自主研制的“人造太陽(yáng)”重力支撐設(shè)備正式啟運(yùn)
2020-09-14核聚變,ITER,核電 -
能源革命和電改政策紅利將長(zhǎng)期助力儲(chǔ)能行業(yè)發(fā)展
-
探索 | 既耗能又可供能的數(shù)據(jù)中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務(wù),新能源消納,能源互聯(lián)網(wǎng) -
5G新基建助力智能電網(wǎng)發(fā)展
2020-06-125G,智能電網(wǎng),配電網(wǎng) -
從智能電網(wǎng)到智能城市
-
山西省首座電力與通信共享電力鐵塔試點(diǎn)成功
-
中國(guó)電建公司公共資源交易服務(wù)平臺(tái)摘得電力創(chuàng)新大獎(jiǎng)
-
電力系統(tǒng)對(duì)UPS的技術(shù)要求