2018-03-07 14:30:04
特別提醒:比特幣采用區(qū)塊鏈的技術(shù),但是區(qū)塊鏈并不等于是比特幣,本文基于比特幣底層區(qū)塊鏈的技術(shù)來(lái)講述,所以部分模型可能不太適用于以太坊。另外,本文采取了相對(duì)抽象、類舉的表達(dá)方式,多少會(huì)跟區(qū)塊鏈底層嚴(yán)謹(jǐn)技術(shù)現(xiàn)實(shí)有出入,希望大家多多討論一起學(xué)習(xí)!
首先不要把區(qū)塊鏈想的過(guò)于高深,他是一個(gè)分布在全球各地、能夠協(xié)同運(yùn)轉(zhuǎn)的數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng),區(qū)別于傳統(tǒng)數(shù)據(jù)庫(kù)運(yùn)作——讀寫(xiě)權(quán)限掌握在一個(gè)公司或者一個(gè)集權(quán)手上(中心化的特征),區(qū)塊鏈認(rèn)為,任何有能力架設(shè)服務(wù)器的人都可以參與其中。來(lái)自全球各地的掘金者在當(dāng)?shù)夭渴鹆俗约旱姆?wù)器,并連接到區(qū)塊鏈網(wǎng)絡(luò)中,成為這個(gè)分布式數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)中的一個(gè)節(jié)點(diǎn);一旦加入,該節(jié)點(diǎn)享有同其他所有節(jié)點(diǎn)完全一樣的權(quán)利與義務(wù)(去中心化、分布式的特征)。與此同時(shí),對(duì)于在區(qū)塊鏈上開(kāi)展服務(wù)的人,可以往這個(gè)系統(tǒng)中的任意的節(jié)點(diǎn)進(jìn)行讀寫(xiě)操作,最后全世界所有節(jié)點(diǎn)會(huì)根據(jù)某種機(jī)制的完成一次又依次的同步,從而實(shí)現(xiàn)在區(qū)塊鏈網(wǎng)絡(luò)中所有節(jié)點(diǎn)的數(shù)據(jù)完全一致。
# 問(wèn)題的由來(lái)
我們反復(fù)提到區(qū)塊鏈?zhǔn)且粋€(gè)去中心化的系統(tǒng),確實(shí),「去中心化」在區(qū)塊鏈?zhǔn)澜缋锩媸且粋€(gè)很重要的概念,很多模型(比如賬本的維護(hù)、貨幣的發(fā)行、時(shí)間戳的設(shè)計(jì)、網(wǎng)絡(luò)的維護(hù)、節(jié)點(diǎn)間的競(jìng)爭(zhēng)等等等等)的設(shè)計(jì)都依賴于這個(gè)中心思想,那到底什么是去中心化呢?在解釋真正去中心化之前,我們還是先簡(jiǎn)單了解下什么是中心化吧。
中心化?
回憶一下你在網(wǎng)上購(gòu)買一本書(shū)的流程:
第一步,你下單并把錢(qián)打給支付寶;
第二步,支付寶收款后通知賣家可以發(fā)貨了;
第三步,賣家收到支付寶通知之后給你發(fā)貨;
第四步,你收到書(shū)之后,覺(jué)得滿意,在支付寶上選擇確認(rèn)收貨;
第五步,支付寶收到通知,把款項(xiàng)打給賣家。流程結(jié)束。
你會(huì)發(fā)現(xiàn),雖然你是在跟賣家做交易,但是,所有的關(guān)鍵流程都是在跟支付寶打交道。這樣的好處在于:萬(wàn)一哪個(gè)環(huán)節(jié)出問(wèn)題,賣家和買家都可以通過(guò)支付寶尋求幫助,讓支付寶做出仲裁。這就是一個(gè)最簡(jiǎn)單的基于中心化思維構(gòu)建的交易模型,它的價(jià)值顯著,就是建立權(quán)威,通過(guò)權(quán)威背書(shū)來(lái)獲得多方的信任,同時(shí)依賴權(quán)威方背后的資本和技術(shù)實(shí)力確保數(shù)據(jù)的可靠安全。
你一定會(huì)擺出一個(gè)巨大的問(wèn)號(hào)臉 ⊙.⊙?——“通過(guò)權(quán)威背書(shū)來(lái)獲得多方的信任,同時(shí)依賴權(quán)威方背后的資本和技術(shù)實(shí)力確保數(shù)據(jù)的可靠安全”,真的可以嘛?!
假如說(shuō),支付寶程序發(fā)生重大 BUG,導(dǎo)致一段時(shí)間內(nèi)的轉(zhuǎn)賬記錄全部丟失,或者更徹底一點(diǎn),支付寶的服務(wù)器被金三胖的一個(gè)導(dǎo)彈全部炸毀了。而我剛剛轉(zhuǎn)出去的 100 元找誰(shuí)說(shuō)理去,這個(gè)時(shí)候,你就成了刀殂上的魚(yú)肉;支付寶有良心,會(huì)勉為其難承認(rèn)你剛剛轉(zhuǎn)賬的事實(shí),但他不承認(rèn)你也沒(méi)轍,因?yàn)榇_實(shí)連他自己也不知道這筆轉(zhuǎn)賬是否真實(shí)存在。
上述就是中心化最大的弊端——過(guò)分依賴中心和權(quán)威,也就意味著逐漸喪失自己的話語(yǔ)權(quán)。
去中心化?
那么去中心化的形態(tài)是什么樣子呢?還是拿剛才那個(gè)例子繼續(xù),我們構(gòu)建一個(gè)極簡(jiǎn)的去中心化的交易系統(tǒng),看看我們是如何在網(wǎng)絡(luò)上從不認(rèn)識(shí)的賣家手里買到一本書(shū)的。
第一步,你下單并把錢(qián)打給賣家;
第二步,你將這條轉(zhuǎn)賬信息記錄在自己賬本上;
第三步,你將這條轉(zhuǎn)賬信息廣播出去;
第四步,賣家和支付寶在收到你的轉(zhuǎn)賬信息之后,在他們自己的賬本上分別記錄;
第五步,賣家發(fā)貨,同時(shí)將發(fā)貨的事實(shí)記錄在自己的賬本上;
第六步,賣家把這條事實(shí)記錄廣播出去;
第七步,你和支付寶收到這條事實(shí)記錄,在自己的賬本上分別記錄;
第八步,你收到書(shū)籍。至此,交易流程走完。
剛才“人為刀俎我為魚(yú)肉”的情況在這個(gè)體系下就比較難發(fā)生,因?yàn)樗腥说馁~本上都有著完全一樣的交易記錄,支付寶的賬本服務(wù)器壞了,對(duì)不起賣家的賬本還存在,我的賬本還存在;這些都是這筆交易真實(shí)發(fā)生的鐵證。
當(dāng)然,在這套極簡(jiǎn)的交易系統(tǒng)中,你已經(jīng)發(fā)現(xiàn)了諸多漏洞和不理解,比如說(shuō)三方當(dāng)中有一個(gè)是壞人,他故意記錄了對(duì)他更有利的轉(zhuǎn)賬信息怎么辦;又比如說(shuō)消息在傳遞過(guò)程中被黑客篡改了怎么辦等等等等。這在以往的計(jì)算機(jī)概論或者計(jì)算機(jī)網(wǎng)絡(luò)書(shū)本上中可能都有提及到——“類兩軍”和“拜占庭將軍”問(wèn)題。這里就不打算贅述,因?yàn)闀簳r(shí)跟主線不相關(guān),感興趣的同學(xué)可以去 Google 或者百度一下,你只需要知道,在我們下面即將展開(kāi)講到的區(qū)塊鏈系統(tǒng)中,通過(guò)巧妙的設(shè)計(jì),足以解決上述存在的 BUG。
既然話已說(shuō)到這份上,相信了解一點(diǎn)技術(shù)、特別是有運(yùn)維背景的同學(xué)大概能夠從極簡(jiǎn)交易系統(tǒng)中窺視到了更多區(qū)塊鏈的一些影子——
分布式存儲(chǔ),通過(guò)多地備份,制造數(shù)據(jù)冗余
讓所有人都有能力都去維護(hù)共同一份數(shù)據(jù)庫(kù)
讓所有人都有能力彼此監(jiān)督維護(hù)數(shù)據(jù)庫(kù)的行為
在我看來(lái),你猜測(cè)的基本上沒(méi)錯(cuò)。其實(shí)這些就是區(qū)塊鏈技術(shù)最核心的東西,外人看起來(lái)高大上、深不可測(cè),但探究其根本發(fā)現(xiàn)就是這么簡(jiǎn)單和淳樸。當(dāng)然,這里面肯定會(huì)有很多很多很多細(xì)枝末節(jié)的技術(shù)需要重構(gòu)。
如果你差不多認(rèn)同上面的觀點(diǎn),那我們應(yīng)該基本上可以達(dá)成共識(shí),分布式部署肯定是構(gòu)建去中心化網(wǎng)絡(luò)理所當(dāng)然的解決方向——通過(guò) P2P 協(xié)議將全世界所有節(jié)點(diǎn)計(jì)算機(jī)彼此相互連接,形成一張密密麻麻的網(wǎng)絡(luò);以巧妙的機(jī)制,通過(guò)節(jié)點(diǎn)之間的交易數(shù)據(jù)同步來(lái)保證全球計(jì)算機(jī)節(jié)點(diǎn)的數(shù)據(jù)共享和一致。
哈哈,說(shuō)的輕巧,“交易數(shù)據(jù)這么重要的東西,在一個(gè)完全不信任的 P2P 網(wǎng)絡(luò)節(jié)點(diǎn)中以一種錯(cuò)綜復(fù)雜的方式傳遞,數(shù)據(jù)的一致性和安全性誰(shuí)來(lái)保證,如果說(shuō)互相監(jiān)督,他們到底怎么做到?”
好了,不賣關(guān)子了,下面讓我們圍繞這個(gè)最最最最直接的問(wèn)題開(kāi)始進(jìn)入到真正區(qū)塊鏈的世界,抽絲剝繭看看它到底是如何一步一步形成的,又是如何一步一步穩(wěn)定運(yùn)轉(zhuǎn)。
# 從全球節(jié)點(diǎn)到交易數(shù)據(jù)
這張圖的制作的意義為的是幫助你在宏觀上先快速理解區(qū)塊鏈中所涉及到的相關(guān)名詞以及他們的層級(jí)關(guān)系。同時(shí),文章的知識(shí)結(jié)構(gòu)和設(shè)計(jì)思路也大抵上也會(huì)按照:
首先,將區(qū)塊作為最小單位體,講述極簡(jiǎn)區(qū)塊鏈系統(tǒng)是如何運(yùn)轉(zhuǎn)的;
接著,進(jìn)入到比區(qū)塊更小單位體——交易記錄,理解區(qū)塊鏈?zhǔn)侨绾翁幚頂?shù)據(jù)的;
最后,將所有知識(shí)點(diǎn)柔和在一起,重回到區(qū)塊和區(qū)塊鏈,完整講述整個(gè)工作流程。
希望你在這個(gè)引導(dǎo)和結(jié)構(gòu)下有一個(gè)比較好的閱讀體驗(yàn)。Let's go~
# 區(qū)塊,混沌世界的起源
既然已經(jīng)達(dá)成共識(shí),所以,我們事先構(gòu)建好了一個(gè)去中心化的 P2P 網(wǎng)絡(luò);同時(shí),為了讓讀者朋友們聽(tīng)起來(lái)更輕松,我先粗暴的規(guī)定在這個(gè)極簡(jiǎn)的區(qū)塊鏈系統(tǒng)里,每十分鐘有且僅產(chǎn)生一筆交易。
故事繼續(xù),在節(jié)點(diǎn)的視野里,大概每十分鐘會(huì)憑空產(chǎn)生一個(gè)建立在自己平行宇宙世界的神奇區(qū)塊(你可以將區(qū)塊想象為一個(gè)盒子),這個(gè)區(qū)塊里放著一些數(shù)字貨幣以及一張小紙條,小紙條上記錄了這十分鐘內(nèi)產(chǎn)生的那唯一一筆交易信息,比如說(shuō)——“小 A 轉(zhuǎn)賬給了小 B100 元”;當(dāng)然,這段信息肯定是被加密處理過(guò)的,為的就是保證只有小 A 和小 B(通過(guò)他們手上的鑰匙)才有能力解讀里面真正的內(nèi)容。
這個(gè)神奇的區(qū)塊被創(chuàng)造出來(lái)之后,很快被埋在了地底下,至于埋在哪里?沒(méi)有一個(gè)人不知道,需要所有計(jì)算機(jī)節(jié)點(diǎn)一起參與進(jìn)來(lái)掘地三尺后才有可能找到(找到一個(gè)有效的工作量證明)。顯然,這是一件工作量巨大、成果隨機(jī)的事件。但是呢,對(duì)于計(jì)算機(jī)節(jié)點(diǎn)來(lái)說(shuō),一旦從地底下挖出這個(gè)區(qū)塊,他將獲得區(qū)塊內(nèi)價(jià)值不菲的數(shù)字貨幣,以及“小 A 轉(zhuǎn)賬給了小 B100 元”過(guò)程中小 A 所支付的小費(fèi)。同時(shí),對(duì)于這個(gè)節(jié)點(diǎn)來(lái)說(shuō),也只有他才有權(quán)利真正記錄小紙條里的內(nèi)容,這是一份榮耀,而其他節(jié)點(diǎn)相當(dāng)于只能使用它的復(fù)制品,一個(gè)已經(jīng)沒(méi)有數(shù)字貨幣加持的副本。當(dāng)然這個(gè)神奇的區(qū)塊還有一些其他很特別的地方,后面我們會(huì)再細(xì)細(xì)聊。
為了更好的描述,我們將計(jì)算機(jī)節(jié)點(diǎn)從地底下挖出區(qū)塊的過(guò)程叫做「挖礦」,剛才說(shuō)了,這是一件工作量巨大、運(yùn)氣成分較多、但收益豐厚的事兒。
過(guò)了一會(huì)兒,來(lái)自中國(guó)上海浦東新區(qū)張衡路上的一個(gè)節(jié)點(diǎn)突然跳出來(lái)很興奮的說(shuō):“ 我挖到區(qū)塊了!里面的小紙條都是有效的!獎(jiǎng)勵(lì)歸我!” 。雖然此刻張衡路節(jié)點(diǎn)已經(jīng)拿到了數(shù)字貨幣,但對(duì)于其他計(jì)算機(jī)節(jié)點(diǎn)來(lái)說(shuō),因?yàn)檫@里面還涉及到其他一些利益瓜葛,他們不會(huì)選擇默認(rèn)相信張衡路節(jié)點(diǎn)所說(shuō)的話;基于陌生節(jié)點(diǎn)彼此不信任的原則,他們拿過(guò)張衡路節(jié)點(diǎn)所謂挖到的區(qū)塊(副本),開(kāi)始校驗(yàn)區(qū)塊內(nèi)的小紙條信息是否真實(shí)有效等等。在區(qū)塊鏈?zhǔn)澜缋铮?jié)點(diǎn)們正是通過(guò)校驗(yàn)小紙條信息的準(zhǔn)確性,或間接或直接判斷成功挖出區(qū)塊的節(jié)點(diǎn)是否撒謊。(如何定義小紙條信息真實(shí)有效,后面會(huì)講解,這里暫不做贅述)。
在校驗(yàn)過(guò)程中,各個(gè)節(jié)點(diǎn)們會(huì)直接通過(guò)下面兩個(gè)行為表達(dá)自己對(duì)張衡路節(jié)點(diǎn)的認(rèn)同(準(zhǔn)確無(wú)誤)和態(tài)度:
停止已經(jīng)進(jìn)行了一半甚至 80%的挖礦進(jìn)程;
將張衡路節(jié)點(diǎn)成功挖出的區(qū)塊(副本)追加到自己區(qū)塊鏈的末尾。
你可以稍微有點(diǎn)困惑:停止可能已經(jīng)執(zhí)行了 80%的挖礦行為,那之前 80%的工作不是就白做了嘛?!然后,區(qū)塊鏈的末尾又是個(gè)什么鬼東西?
對(duì)于第一個(gè)困惑。我想說(shuō),你說(shuō)的一點(diǎn)沒(méi)錯(cuò),但是沒(méi)辦法,現(xiàn)實(shí)就是這么殘酷,即便工作做了 80%,那也得放棄,這 80%的工作勞苦幾乎可以視為無(wú)用功,絕對(duì)的傷財(cái)勞眾。第二個(gè)困惑,區(qū)塊鏈和區(qū)塊鏈的末尾是什么鬼?這里因?yàn)槭孪炔](méi)有講清楚,但是你可以簡(jiǎn)單想象一下:區(qū)塊是周期性不斷的產(chǎn)生和不斷的被挖出來(lái),一個(gè)計(jì)算機(jī)節(jié)點(diǎn)可能事先已經(jīng)執(zhí)行了 N 次“從別人手上拿過(guò)區(qū)塊 -> 校驗(yàn)小紙條有效性”的流程,肯定在自己的節(jié)點(diǎn)上早已經(jīng)存放了 N 個(gè)區(qū)塊,這些區(qū)塊會(huì)按照時(shí)間順序整齊的一字排列成為一個(gè)鏈狀。沒(méi)錯(cuò),這個(gè)鏈條,就是你一直以來(lái)認(rèn)為的那個(gè)區(qū)塊鏈。如果你還是不能夠理解,沒(méi)關(guān)系,文章后面還會(huì)有很多次機(jī)會(huì)深入研究。
# 走進(jìn)區(qū)塊內(nèi),探索消息的本質(zhì)
上面我們構(gòu)建了一個(gè)最簡(jiǎn)單的區(qū)塊鏈?zhǔn)澜绲哪P?,相信大多?shù)同學(xué)都已經(jīng)輕松掌握了。但是別驕傲也別著急,這還只是一些皮毛中的皮毛,坐好,下面我們準(zhǔn)備開(kāi)車了。
前面我們說(shuō)到“大概每十分鐘會(huì)憑空產(chǎn)生一個(gè)神奇的區(qū)塊,這個(gè)區(qū)塊里放了一張小紙條,上面記錄了這十分鐘內(nèi)產(chǎn)生的這唯一一筆交易信息”。顯然,十分鐘內(nèi)產(chǎn)生的交易肯定遠(yuǎn)不止一條,可能是上萬(wàn)條,這上萬(wàn)條數(shù)據(jù)在區(qū)塊鏈?zhǔn)澜缡侨绾谓M織和處理的呢?另外,為什么在紙條上記錄的只是某一次的交易信息,而不是某一個(gè)人的余額?余額好像更符合我們現(xiàn)實(shí)世界的理解才對(duì)。
既然存在這樣那樣的疑問(wèn)?,F(xiàn)在我們就把視線暫時(shí)從“區(qū)塊”、“區(qū)塊鏈”這些看起來(lái)似乎較大實(shí)體的物質(zhì)中移開(kāi),進(jìn)入到區(qū)塊內(nèi)更微觀的世界里一探究竟,看看小紙條到底是怎么一回事,它的產(chǎn)生以及它終其一生的使命:
發(fā)起交易的時(shí)候,發(fā)起人會(huì)收到一張小紙條,他需要將交易記錄比如說(shuō)“盜盜轉(zhuǎn)賬給張三 40 元”寫(xiě)在紙上。說(shuō)來(lái)也神奇,當(dāng)寫(xiě)完的那一剎那,在小紙條的背面會(huì)自動(dòng)將這段交易記錄格式化成至少包含了“輸入值”和“輸出值”這兩個(gè)重要字段;“輸入值”用于記錄數(shù)字貨幣的有效來(lái)源,“輸出值”記錄著數(shù)字貨幣發(fā)往的對(duì)象。
剛剛創(chuàng)建的小紙條立馬被標(biāo)記成為“未確認(rèn)”的小紙條。從地下成功挖出區(qū)塊并最終連接到區(qū)塊鏈里的小紙條一開(kāi)始會(huì)被標(biāo)記為“有效”。若這條有效的小紙條作為其他交易的輸入值被使用,那么,這個(gè)有效的小紙條很快會(huì)被標(biāo)記為“無(wú)效”。因?yàn)楦鞣N原因,區(qū)塊從鏈上斷開(kāi)、丟棄,曾經(jīng)這個(gè)區(qū)塊內(nèi)被標(biāo)記為“有效”的小紙條會(huì)被重新標(biāo)記為“未確認(rèn)”。
區(qū)塊鏈里面沒(méi)有賬戶余額的概念,你真正擁有的數(shù)字資產(chǎn)實(shí)際上是一段交易信息;通過(guò)簡(jiǎn)單的加減法運(yùn)算獲知你數(shù)字錢(qián)包里的余額。
上面的 1、2、3 僅僅作為結(jié)論一開(kāi)始強(qiáng)行灌輸給你的知識(shí)點(diǎn),其中有幾個(gè)描述可能會(huì)有點(diǎn)繞,讓你覺(jué)得云里霧里,沒(méi)有關(guān)系,因?yàn)槲覀兞⒖?、馬上就開(kāi)始會(huì)細(xì)說(shuō)里面的細(xì)枝末節(jié)。
上圖就是從無(wú)數(shù)打包進(jìn)區(qū)塊內(nèi)的小紙條中,抽取出來(lái)的一張,以及它最終被格式化后的縮影。單看右側(cè)的圖可能很容易產(chǎn)生誤會(huì),雖然看起來(lái)有多行,但實(shí)際上就是“盜盜轉(zhuǎn)賬給張三 40 個(gè)比特幣”這一條交易數(shù)據(jù)另外的一種呈現(xiàn)形態(tài)。因?yàn)閰^(qū)塊鏈?zhǔn)澜缋锩孢@么規(guī)定,每一條交易記錄,必須有能力追溯到交易發(fā)起者 發(fā)起這筆交易、其中所涉及金額的上一筆全部交易信息;即這筆錢(qián)從何而來(lái)的問(wèn)題。這其實(shí)很容易理解,在去中心化的網(wǎng)絡(luò)中,通過(guò)建立交易鏈、和通過(guò)交易鏈上的可溯源性間接保證數(shù)據(jù)安全和有效。
我們繼續(xù)看,在區(qū)塊鏈?zhǔn)澜缋铮覀兪侨绾蝺H通過(guò)“盜盜轉(zhuǎn)賬給張三 40 個(gè)比特幣” 這條交易信息完成轉(zhuǎn)賬流程的。其實(shí)跟現(xiàn)實(shí)中你在路邊買一個(gè)包子的流程大抵上相同。
第一步:判斷是否有足夠的余額完成交易
這里我們?cè)僖淮沃厣辏瑓^(qū)塊鏈?zhǔn)澜缡菦](méi)有余額的概念,余額是通過(guò)簡(jiǎn)單數(shù)字的加減最終獲得,你擁有所謂的數(shù)字貨幣實(shí)際上是因?yàn)槟銚硪粭l交易記錄,即 “盜盜轉(zhuǎn)賬給張三 40 個(gè)比特幣”!這里,我們還是拿這條記錄說(shuō)事:
追溯“輸出值”是“盜盜”相關(guān)的全部有效交易記錄作為,對(duì)有效交易中的數(shù)字進(jìn)行簡(jiǎn)單求和,判斷是否大于等于 40,如果確實(shí)大于等于,則將這些有效的交易記錄合并形成一條新的交易記錄(如下圖)。如果小于 40,其實(shí)可以不需要再繼續(xù)往下探討。
就上圖的例子,我們追溯到曾經(jīng)轉(zhuǎn)賬給盜盜的有效交易記錄有“小 A 轉(zhuǎn)賬給盜盜 10 btc”、“小 B 轉(zhuǎn)賬給盜盜 20 btc”、“小 C 轉(zhuǎn)賬給盜盜 25 btc”,我們需要將這三條交易記錄合并成一條更復(fù)雜描述的交易記錄,即 “( 小 A 轉(zhuǎn)賬給盜盜 10 btc + 小 B 轉(zhuǎn)賬給盜盜 20 btc + 小 C 轉(zhuǎn)賬給盜盜 25 btc ) 轉(zhuǎn)賬給張三 40 btc ”
第二步:判斷是否需要找零
對(duì)追溯到的有效交易數(shù)字求和,如果發(fā)現(xiàn)大于需要支付的金額,需要將多出的數(shù)字重新支付給自己,相當(dāng)于找零。對(duì)應(yīng)生成了一條全新的交易記錄(如下圖)。
就上圖例子來(lái)說(shuō),我們最后合并成的交易記錄 “( 小 A 轉(zhuǎn)賬給盜盜 10 btc + 小 B 轉(zhuǎn)賬給盜盜 20 btc + 小 C 轉(zhuǎn)賬給盜盜 25 btc + 盜盜轉(zhuǎn)賬給盜盜 15 btc ) 轉(zhuǎn)賬給張三 40 btc ” 事實(shí)上等同于“盜盜轉(zhuǎn)賬給張三 40 btc”。其中“盜盜轉(zhuǎn)賬給盜盜 15 btc”就可以理解找零。
第三步:發(fā)出去,讓全球節(jié)點(diǎn)認(rèn)同和備份小紙條
這條內(nèi)部重新處理過(guò)的復(fù)雜交易記錄被塞進(jìn)區(qū)塊,埋到地下,等待節(jié)點(diǎn)挖出來(lái),一旦區(qū)塊被挖礦成功,并且該區(qū)塊最終被連在了區(qū)塊鏈的主鏈上。張三將最終擁有了這條交易記錄,而先前的“小 A 轉(zhuǎn)賬給盜盜 10 btc” 、“小 B 轉(zhuǎn)賬給盜盜 20 btc” 、“小 C 轉(zhuǎn)賬給盜盜 25 btc”都將被視為已經(jīng)使用過(guò)的交易記錄——從此被貼上“無(wú)效”的標(biāo)簽,意味著這些交易記錄將永遠(yuǎn)不會(huì)再被追溯到。
我們最后一次重申,只是希望讓你加深印象:擁有數(shù)字貨幣=擁有交易記錄!
通過(guò)設(shè)計(jì)巧妙的精巧密碼學(xué)保證數(shù)據(jù)安全
記錄著交易信息的小紙條借助區(qū)塊這個(gè)載體,在分布式的網(wǎng)絡(luò)中以不同的軌跡錯(cuò)綜復(fù)雜的傳遞,我們前面說(shuō)了,你真正擁有的數(shù)字資產(chǎn)實(shí)際上是一段交易信息,而不是你常規(guī)意義上理解的貨幣。所以這個(gè)過(guò)程就需要重點(diǎn)解決兩個(gè)問(wèn)題:
接受到的這條交易記錄在傳輸過(guò)程沒(méi)有被其他人所篡改
接受到的這條交易記錄確實(shí)是由發(fā)起交易的人所創(chuàng)造
在這里,我們需要事先引入兩個(gè)知識(shí)點(diǎn),可能稍微有點(diǎn)難消化,但都是計(jì)算機(jī)領(lǐng)域較為成熟的和基礎(chǔ)的概念。
第一個(gè)知識(shí)點(diǎn):Hash()函數(shù)。你只需要知道,任意長(zhǎng)度的字符串、甚至文件體本身經(jīng)過(guò) Hash 函數(shù)工廠的加工,都會(huì)輸出一個(gè)固定長(zhǎng)度的字符串;同時(shí),輸入的字符串或者文件稍微做一丟丟的改動(dòng),Hash() 函數(shù)給出的輸出結(jié)果都將發(fā)生翻天覆地的改變。注意,Hash()函數(shù)是公開(kāi)的,任何人都能使用。
第二個(gè)知識(shí)點(diǎn):非對(duì)稱加密。你也只需要了解,任何人手里都有兩把鑰匙,其中一把只有自己知道,叫做“私鑰”,以及一把可以公布于眾,叫做“公鑰”;通過(guò)私鑰加密的信息,必須通過(guò)公鑰才能解密,連自己的私鑰也無(wú)解。公鑰可以通過(guò)私鑰生成多把。
有了這些知識(shí)點(diǎn)的加持,上面兩個(gè)問(wèn)題開(kāi)始變得有解。下面我們來(lái)看下內(nèi)部是如何扭轉(zhuǎn)和工作的吧,這里拿“小 A 轉(zhuǎn)賬給了小 B 100 元錢(qián)” 舉例:
第一步:小 A 會(huì)先用 Hash 函數(shù)對(duì)自己的小紙條進(jìn)行處理,得到一個(gè)固定長(zhǎng)度的字符串,這個(gè)字符串就等價(jià)于這張小紙條。
第二步:小 A 使用只有自己知道的那一把私鑰,對(duì)上面固定長(zhǎng)度的字符串進(jìn)行再加密,生成一份名叫數(shù)字簽名的字符串,這份數(shù)字簽名能夠充分證明是基于這張小紙條的。你可以這么理解,在現(xiàn)實(shí)中,你需要對(duì)某一份合同的簽署,萬(wàn)一有人拿你曾經(jīng)在其他地方留下的簽名復(fù)制粘貼過(guò)來(lái)怎么辦?!最好的辦法,就是在你每一次簽名的時(shí)候,故意在字跡當(dāng)中留下一些同這份合同存在某種信息關(guān)聯(lián)的小細(xì)節(jié),通過(guò)對(duì)小細(xì)節(jié)的觀察可以知道這個(gè)簽名有沒(méi)有被移花接木。步驟一和步驟二的結(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)的小紙條,這張小紙條在中途沒(méi)有被其他人所篡改;且這張小紙條確實(shí)是由小 A 所編輯。
可以看得出來(lái),加解密的過(guò)程幾乎是一環(huán)套一環(huán),中途任何環(huán)節(jié)被篡改,結(jié)果都是大相徑庭。借助這一連串的機(jī)制,其實(shí)已經(jīng)能夠很好的在公開(kāi)、匿名、彼此不信任的分布式網(wǎng)絡(luò)環(huán)境中解決數(shù)字交易過(guò)程中可能遇到的很多問(wèn)題。這個(gè)環(huán)節(jié)可能確實(shí)有點(diǎn)難理解,現(xiàn)在,我需要你停下來(lái),靜下心,花上幾分鐘閉目慢慢回味其中設(shè)計(jì)精湛的地方。
掌握了這部分知識(shí)以后,我們?cè)谶@里回答一下前面沒(méi)有解釋清楚的問(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è)谝婚_(kāi)始講到關(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ì)有些頭大。在文章開(kāi)頭為了更好的描述,我在設(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ì)又可以寫(xiě)出兩三千字來(lái)。我覺(jué)得到目前為止,并不影響主軸知識(shí)點(diǎn)的講解,這一塊會(huì)作為后續(xù)知識(shí)結(jié)構(gòu)的完善被撰寫(xiě)(計(jì)劃 1 月 24 日前完成)。感興趣的同學(xué)可以 Google 百度查閱下什么叫“挖礦”、“工作量證明 POW”等。
分叉
現(xiàn)在,我們終于對(duì)“區(qū)塊”這個(gè)概念有了更全面的認(rèn)識(shí),文章開(kāi)頭講的故事就可以繼續(xù)展開(kāi)來(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)這倆都沒(méi)毛病,各節(jié)點(diǎn)也開(kāi)始犯困,因?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ò)程存在巨大的工作量(如果沒(méi)有任何難度,把區(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)開(kāi)始困惑或者有點(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ī)房的開(kāi)關(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)澜缫?guī)則的制定遠(yuǎn)比我們想象的要健全很多,還記得我們之前講的“區(qū)塊的 ID 至少會(huì)跟區(qū)塊內(nèi)所有小紙條的集合、即將與之相連的上一個(gè)區(qū)塊 ID 以及挖礦節(jié)點(diǎn)的運(yùn)氣值等因素相關(guān)”。 在這里,正是因?yàn)榇蛩氵B接到主鏈的時(shí)候,事先準(zhǔn)備的鏈子會(huì)意識(shí)到馬上要連接上的那個(gè)區(qū)塊 ID 發(fā)生了改變,隨之而來(lái)的是后面所有區(qū)塊 ID 都瞬間。節(jié)點(diǎn)不得不重新對(duì)后續(xù)區(qū)塊的解鎖以及對(duì)區(qū)塊內(nèi)小紙條的校驗(yàn)。
在區(qū)塊鏈的世界,重新計(jì)算的行為等同于把自己(節(jié)點(diǎn))置身于同一個(gè)起跑線,跟世界上其他所有的節(jié)點(diǎn)一同競(jìng)爭(zhēng)挖礦。你會(huì)說(shuō),我擁有更強(qiáng)大的計(jì)算能力,但是對(duì)不起,跟你競(jìng)爭(zhēng)的對(duì)象并不是第五大道、南京西路、香榭麗舍大道上的某一個(gè)節(jié)點(diǎn),而是全球所有算力的集合,在這個(gè)集合中,你擁有的算力永遠(yuǎn)都只是一個(gè)很小的子集。所以,根據(jù)區(qū)塊鏈算力民主、少數(shù)服從多數(shù)的基本原則,這個(gè)構(gòu)想將永遠(yuǎn)不會(huì)成立。
除非....
你控制著全球 51%的算力,這也就是區(qū)塊鏈?zhǔn)澜缋锪硗庖粋€(gè)著名的概念,叫做“51% 攻擊”,但這也僅僅是一個(gè)理論值,在真實(shí)世界里這樣的攻擊我個(gè)人覺(jué)得是很難發(fā)動(dòng)起來(lái)的,這里面就牽涉到很多經(jīng)濟(jì)、哲學(xué)甚至政治的因素。舉個(gè)最簡(jiǎn)單的例子:X-Man 為了回滾剛剛發(fā)生的一筆交易記錄,成功發(fā)起了 51% 攻擊,這意味著很快整個(gè)區(qū)塊鏈系統(tǒng)將會(huì)崩盤(pán),因?yàn)檫@次攻擊已經(jīng)嚴(yán)重傷害到人們對(duì)這套系統(tǒng)的信任,接著比特幣開(kāi)始暴跌至幾乎一文不值;但是這個(gè)擁有 51% 算力的 X-Man 原本完完全全可以通過(guò)挖礦的方式獲取更多收益,購(gòu)買無(wú)數(shù)的 iPhone 手機(jī)。那他不是腦袋不是壞了還能是啥?對(duì) 51% 攻擊話題感興趣的同學(xué)可以閱讀這篇文章《什么是比特幣 51% 攻擊?》。
至此,我覺(jué)得區(qū)塊鏈最基礎(chǔ)、最核心的知識(shí)已經(jīng)全部講完了(除了挖礦內(nèi)部實(shí)現(xiàn)原理,作為一個(gè)遺憾留在這里,有時(shí)間會(huì)完善掉),相信你已經(jīng)對(duì)它有了一個(gè)宏觀的認(rèn)識(shí)。另外,由于這篇文章采用了適當(dāng)抽象、類舉的敘事方式,中間或多或少有些地方會(huì)跟區(qū)塊鏈底層嚴(yán)謹(jǐn)?shù)募夹g(shù)實(shí)現(xiàn)有出入,歡迎大家來(lái)糾錯(cuò)。另外,也是受限于自己知識(shí)結(jié)構(gòu)的缺失,這篇文章會(huì)隨著我對(duì)區(qū)塊鏈更深入認(rèn)識(shí)后,隨時(shí)進(jìn)行修訂,最后更新時(shí)間可參考該回答下方的時(shí)間戳。
問(wèn)答部分
去中心化的系統(tǒng)中,到底是誰(shuí)在發(fā)行貨幣?是無(wú)限量發(fā)行嗎?
比特幣的貨幣是通過(guò)挖礦(工作量證明)來(lái)發(fā)行的,總數(shù)量是通過(guò)程序?qū)懰懒?2100 萬(wàn)個(gè),而第一筆區(qū)塊獎(jiǎng)勵(lì)也是硬編碼寫(xiě)死的。礦工挖出一個(gè)區(qū)塊所獲得的獎(jiǎng)勵(lì),每隔 21 萬(wàn)個(gè)區(qū)塊將減少一半,按照平均 10 分鐘挖出一個(gè)區(qū)塊的執(zhí)行效率,也就就說(shuō)差不多每四年會(huì)銳減一次。2009 年 1 月起每個(gè)區(qū)塊獎(jiǎng)勵(lì) 50 個(gè)比特幣,2012 年 11 月減半為每個(gè)區(qū)塊 25 個(gè)比特幣,2016 年 7 月減半為 12.5 個(gè)比特幣。基于這個(gè)規(guī)則,到 2140 年,所有比特幣(20,999,999,980)將全部發(fā)行完畢,之后不會(huì)再有新的比特幣產(chǎn)生。
礦工節(jié)點(diǎn)的收益除了挖出區(qū)塊以外還有哪些?
礦工節(jié)點(diǎn)的收益主要由兩部分組成:1)挖出新區(qū)塊的獎(jiǎng)勵(lì);2)挖出新區(qū)塊內(nèi)所含交易的交易費(fèi)。但就目前來(lái)說(shuō),一個(gè)區(qū)塊內(nèi)的交易費(fèi)大概只占到礦工總收入的 0.5%甚至更少,大部分收益主要還是來(lái)自于挖礦所得的比特幣獎(jiǎng)勵(lì)。然而,隨著挖礦獎(jiǎng)勵(lì)的遞減,以及每個(gè)區(qū)塊中包含的交易數(shù)量增加,交易費(fèi)在礦工收益中所占的比重將會(huì)逐漸增加。在 2140 年之后,所有的礦工收益將完全由交易費(fèi)構(gòu)成。
參考
中心化與去中心化 https://www.douban.com/note/624421270/
圖說(shuō)區(qū)塊鏈 https://book.douban.com/subject/27084306/
區(qū)塊鏈?zhǔn)鞘裁矗绾魏?jiǎn)單易懂地介紹區(qū)塊鏈? https://www.zhihu.com/question/37290469
什么是比特幣 51%攻擊? http://8btc.com/article-1949-1.html
區(qū)塊鏈與新經(jīng)濟(jì):數(shù)字貨幣 2.0 時(shí)代 https://book.douban.com/subject/26804497/
詳解比特幣原理和運(yùn)行機(jī)制 https://www.youtube.com/watch?v=P4seQcP77H4
區(qū)塊鏈?zhǔn)鞘裁矗簭募夹g(shù)架構(gòu)到哲學(xué)核心 https://v.qq.com/x/page/x0518nuh2z7_0.html
區(qū)塊鏈核心算法解析 https://book.douban.com/subject/27081206/
深入理解比特幣的安全性及程式交易安全性與相關(guān)的密碼學(xué)原理 https://www.youtube.com/watch?v=3w1Tg3B_oKQ
深度了解區(qū)塊鏈——拜占庭將軍問(wèn)題深入探討 https://wallstreetcn.com/articles/338061
精通比特幣 - 挖礦與共識(shí) http://zhibimo.com/read/wang-miao/mastering-bitcoin/Chapter08.html