国模吧双双大尺度炮交gogo,国产午夜三级一区二区三,国产一区二区精品久久岳,国产精品熟妇一区二区三区四区,国产伦孑沙发午休精品

登錄注冊
新聞 資訊 金融 知識 財(cái)經(jīng) 理財(cái) 科技 金融 經(jīng)濟(jì) 產(chǎn)品 系統(tǒng) 連接 科技 聚焦
首頁 > 新聞 > 業(yè)界 > > 正文

分布式和區(qū)塊鏈系統(tǒng)中的雙花問題:為什么我們需要工作量證明?

2018-08-22 17:32:40來源:巴比特

雙花問題

如果Alice錢包里面有10美元,她可以去購買等值的物品。如果Alice去商店后,發(fā)現(xiàn)臺燈和桌子都是10美元,那么她只能買其中一樣?xùn)|西。

而我們所說的雙花問題,正好與之相反,同樣的10美元,你可以購買兩樣?xùn)|西。

不過,雙花問題在我們生活中其實(shí)不會發(fā)生,因?yàn)槟阍谫徺I東西的同時(shí),也同時(shí)進(jìn)行了支付(也就是說,這是個(gè)中心化系統(tǒng))。換句話說,如果Alice花費(fèi)10美元購買臺燈,那么這10美元就不屬于她了。

但是在分布式系統(tǒng)中,問題會有些不同。

對于分布式系統(tǒng)來說,交易記錄會廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn)(也就是說,Alice會在網(wǎng)絡(luò)廣播交易信息,從而網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都會知道“Alice已經(jīng)花費(fèi)10美元來購買臺燈”)。

每個(gè)節(jié)點(diǎn)都會記錄這個(gè)交易信息,然后將信息傳輸給網(wǎng)絡(luò)中的下個(gè)節(jié)點(diǎn),并且這個(gè)過程會持續(xù)直到網(wǎng)絡(luò)中的所有節(jié)點(diǎn)已經(jīng)記錄了這條信息“Alice已經(jīng)使用了10美元來購買臺燈”。

但是,在信息通過龐大網(wǎng)絡(luò)進(jìn)行傳輸?shù)臅r(shí)候,以下問題也會出現(xiàn):

• 當(dāng)信息在網(wǎng)絡(luò)中傳播的時(shí)候,路徑不同,并且在不同時(shí)間到達(dá)不同節(jié)點(diǎn)。

• 由于節(jié)點(diǎn)會失效,有些節(jié)點(diǎn)也許不能將信息傳遞給下個(gè)節(jié)點(diǎn),然后這個(gè)消息就會丟失。

因此,在某個(gè)時(shí)間會發(fā)生這種情況,某些節(jié)點(diǎn)知道Alice已經(jīng)花費(fèi)了10美元購買臺燈,但是某些節(jié)點(diǎn)卻不知道這一消息。

對于那些不知道Alice花費(fèi)10美元購買臺燈的節(jié)點(diǎn)來說,這條信息還沒有傳達(dá)給他們;他們?nèi)匀粫J(rèn)為,Alice還有閑置的10美元可以購買任何其他東西。

因此,對于Alice來說,很可能她會向網(wǎng)絡(luò)中傳播另一個(gè)消息“Alice已經(jīng)花費(fèi)了10美元來購買桌子”,并且如果這個(gè)信息在“Alice花費(fèi)了10美元來購買臺燈”這個(gè)消息之前達(dá)到節(jié)點(diǎn),那么這個(gè)節(jié)點(diǎn)就會認(rèn)為Alice已經(jīng)花了10美元來買桌子。

這就有可能造成這種情況,Alice能夠花費(fèi)10美元買桌子,并且花費(fèi)同樣的10美元來買臺燈;這是違背常理的,因?yàn)锳lice只有10美元,并不是20美元。

這就是雙花問題。

雙花問題會在分布式系統(tǒng)中出現(xiàn),是因?yàn)榻灰仔畔⒃邶嫶蟮木W(wǎng)絡(luò)中傳輸需要花費(fèi)時(shí)間。

由于網(wǎng)絡(luò)中信息傳輸?shù)臅r(shí)間差,無法保證信息達(dá)到節(jié)點(diǎn)的順序和信息創(chuàng)建的順序是相同的。

注意:有人會說,轉(zhuǎn)賬信息中會包含通用的時(shí)間戳,同時(shí)還有哈希值來保證數(shù)據(jù)的完整性,這就很容易解決轉(zhuǎn)賬信息會按照不同時(shí)間達(dá)到某個(gè)節(jié)點(diǎn)。

但是,Alice可以在簽署信息之前造假時(shí)間戳,同時(shí)把第二條信息放入更早的時(shí)間戳,給網(wǎng)絡(luò)造成疑惑。

從更深層次來看,現(xiàn)在網(wǎng)絡(luò)處于不一致的狀態(tài),其中有些節(jié)點(diǎn)已經(jīng)驗(yàn)證“Alice花了10美元買燈”,其他節(jié)點(diǎn)驗(yàn)證了“Alice花了10美元買桌子”。

為了解決網(wǎng)絡(luò)中狀態(tài)的不統(tǒng)一性(很少節(jié)點(diǎn)會驗(yàn)證某個(gè)交易,并且其他節(jié)點(diǎn)已經(jīng)驗(yàn)證一個(gè)相反的交易),我們需要某個(gè)共識機(jī)制,確保交易的順序,從而將網(wǎng)絡(luò)帶回統(tǒng)一的狀態(tài)。

分布式賬本技術(shù)和區(qū)塊鏈技術(shù)的共識機(jī)制

“真理不是事情的真相或者原因。簡單來說,就是每個(gè)人都同意這個(gè)事情。”

― Gregory Maguire, 壞女巫:新綠野仙蹤

這種共識的形成有兩種方法。

基于投票的共識(需要信任的聯(lián)盟節(jié)點(diǎn)或者私有分布式網(wǎng)絡(luò),例如,超級賬本):網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都是互相認(rèn)識的,而且每個(gè)節(jié)點(diǎn)會進(jìn)行投票,從而對交易進(jìn)行驗(yàn)證。最后,通過多數(shù)人投票選舉和擔(dān)保政策(例如,實(shí)用性拜占庭容錯(cuò)算法)來實(shí)現(xiàn)交易,而且擔(dān)保政策可以使得只要全網(wǎng)2/3節(jié)點(diǎn)通過的前提下,就可以讓交易有效。

基于抽獎或者競爭的共識(公鏈或者無需信任節(jié)點(diǎn)網(wǎng)絡(luò),比如以太坊):網(wǎng)絡(luò)中基于工作量證明或者權(quán)益證明選出的成員,可以決定交易是否有效,并且這個(gè)決定需要被全網(wǎng)都認(rèn)可。無論誰贏得了這個(gè)獎勵(lì),全網(wǎng)都會同意由獲勝節(jié)點(diǎn)驗(yàn)證的轉(zhuǎn)賬是有效的。

這種通過競爭選出的下個(gè)節(jié)點(diǎn)的方式,通常是通過解決加密數(shù)學(xué)難題來實(shí)現(xiàn),例如工作量證明,或者是根據(jù)對網(wǎng)絡(luò)投資的貢獻(xiàn),來得到更高的獲勝概率,例如權(quán)益證明。

共識機(jī)制(不論是投票還是抽獎),都是讓網(wǎng)絡(luò)決定哪個(gè)交易是有效的。網(wǎng)絡(luò)中所有的節(jié)點(diǎn)然后再去驗(yàn)證這個(gè)交易,這些只會通過有效交易的共識來進(jìn)行處理。

有意思地是,有效交易可能并不是正確的交易。在我們的例子中,如果群體共識投票“Alice花費(fèi)10美元買了桌子”作為有效交易,那么正確的交易“Alice花費(fèi)10美元買燈”就會被網(wǎng)絡(luò)所有節(jié)點(diǎn)認(rèn)為無效。

其實(shí),共識算法的目標(biāo)并不是確定兩個(gè)交易之間,哪個(gè)是正確的。共識算法是為了防止分布式網(wǎng)絡(luò)中的雙花問題(也就是說,在我們的例子中,通過共識機(jī)制,我們可以確保Alice可以消費(fèi)10美元,并且只消費(fèi)了一次);而且保證全網(wǎng)只會同意某個(gè)交易信息,并且任何不同的交易信息都會被網(wǎng)絡(luò)認(rèn)為是無效的。

在“無需信任的網(wǎng)絡(luò)”構(gòu)建“信任”

Bodhi:“你不信任我嗎?”

Johnny Utah:“你需要去獲得信任。”

— 驚爆點(diǎn)(1991)

通過工作量證明算法,獲勝者可以通過解決數(shù)學(xué)難題,從整個(gè)網(wǎng)絡(luò)脫穎而出,而且獲勝者可以去決定網(wǎng)絡(luò)中哪些交易是有效的,并成為區(qū)塊鏈中下個(gè)區(qū)塊的一部分。

但是問題來了,為什么我們需要節(jié)點(diǎn)互相競爭來解決復(fù)雜的加密數(shù)學(xué)難題,再選出獲勝者? 也就是說,為什么我們需要復(fù)雜的工作量證明?任何節(jié)點(diǎn)可以被隨機(jī)選擇并稱為下個(gè)獲勝者嗎(隨機(jī)選擇)?同時(shí),這個(gè)節(jié)點(diǎn)還要被選舉出來,并對有效的交易做出決定。

答案如下。

如果彩票獲獎?wù)卟⒉皇峭ㄟ^計(jì)算量選拔出來并且添加區(qū)塊(或者有些代幣是需要算力,例如權(quán)益證明),那么對于任何節(jié)點(diǎn)來說就會很容易將下個(gè)區(qū)塊添加到區(qū)塊鏈上。

這意味著很多人都可以添加他們認(rèn)為的區(qū)塊到區(qū)塊鏈上,并且擁有最強(qiáng)算力的人能夠擴(kuò)大區(qū)塊鏈,并且獲得最長的鏈。

中本聰對這個(gè)問題的解決方案“在無需信任的網(wǎng)絡(luò)中構(gòu)建信任”,也是為了確保對于任何人或者團(tuán)體(只要團(tuán)體算力小于50%)都無法通過算力來控制整個(gè)網(wǎng)絡(luò),也就是控制區(qū)塊鏈上區(qū)塊的創(chuàng)建,同時(shí)維持區(qū)塊鏈上最長的鏈。

因此,基本原理是,如果想在區(qū)塊鏈中添加區(qū)塊,需要通過難度很高的計(jì)算,并且引進(jìn)某種機(jī)制來完成。這些機(jī)制中,最常見的,就是工作量證明算法。

但是,其實(shí)也有消逝時(shí)間證明(PoET)機(jī)制,這種算法需要在區(qū)塊鏈上加入下個(gè)區(qū)塊之前,“等待”一段時(shí)間,從而再次人為地將添加區(qū)塊的計(jì)算難度變得很困難。

對于權(quán)益證明算法,代幣的抵押機(jī)制可以選出創(chuàng)建區(qū)塊的下個(gè)人,這也讓任何個(gè)人都很難去持有足夠的代幣,來控制整體網(wǎng)絡(luò)。

關(guān)鍵詞: 區(qū)塊 分布式 工作量

推薦內(nèi)容

熱點(diǎn)
39熱文一周熱點(diǎn)