一個簡單的指南來理解區(qū)塊鏈與現(xiàn)實世界的類比。
如今蒜魄,從你的理發(fā)師到證券市場工作的朋友扔亥,人人都在談?wù)摫忍貛拧e擔(dān)心谈为,這篇文章不是關(guān)于從比特幣中賺錢的其他幾篇文章旅挤。但是,我將盡力幫助您了解比特幣運作的基礎(chǔ)技術(shù)以及區(qū)塊鏈的概念在未來幾十年中如何發(fā)揮作用伞鲫。
歷史概述
2008年10月31日谦铃,一份名為Satoshi Nakamoto的匿名人士或組織發(fā)表了一份白皮書,解釋了一種新的方法榔昔,可以直接從寄件人向收款人匯款而不涉及任何金融中介驹闰。該論文給出了這個概念的名稱-比特幣。由于比特幣使用了密碼學(xué)的一些基本概念撒会,這種新的兌換方式被歸類為加密貨幣嘹朗。比特幣的唯一目的是用于金融交易,但研究人員意識到诵肛,可以手機其基礎(chǔ)技術(shù)屹培,以構(gòu)建其他安全可靠的應(yīng)用程序,從而徹底改變但前系統(tǒng)的工作方式怔檩⊥市悖“區(qū)塊鏈”是這個基礎(chǔ)技術(shù)的名稱。很多技術(shù)詞匯薛训?我們簡化吧媒吗!
什么是區(qū)塊鏈?——真實世界的比喻
假設(shè)你住在一個擁有大型停車位的城市乙埃,可以同時停放200輛汽車(假設(shè)停車場只有一層)闸英。這個停車場只有一個大門,它平時是上鎖的介袜,只有在汽車進出時才會打開「危現(xiàn)在讓我們從不同的角度來分析這個停車場建筑——
價格:由于一些私人公司專門為停車而建造了這個停車場,并且所有維護費用將由業(yè)主公司承擔(dān)遇伞,如果租用單個停車位將需要很高的租賃費辙喂。
安全性:如果小偷可以從大門進入,他們能夠輕而易舉的找到你的車(拿走車輪,燃料巍耗,損壞剎車秋麸,或者其他任何東西!)
限制:如果您所在城市的汽車數(shù)量從200增加到300芍锦,該怎么辦?停車場沒有足夠的空間容納所有汽車飞盆,其他一些私人機構(gòu)將不得不建造一個新的停車場娄琉。
值得信賴:你信任停車場公司,他們負(fù)責(zé)保證安全和可靠性吓歇。
集中:由于所有車輛都在一棟樓內(nèi)孽水,我們可以將其視為集中的停車場。
現(xiàn)在城看,讓我們修改當(dāng)前場景女气。想象一下,你所在城市有200座房子测柠,所有200所房子各有兩個車位炼鞠。簡而言之,我們假設(shè)每個房子只有一輛車(上面所說的停車場里所有的位置都已經(jīng)被車子占據(jù))轰胁。因此谒主,每個房子至少有一個可用的空車位。現(xiàn)在赃阀,假設(shè)這個城市的人們決定把空的車位租給任何需要停車的人霎肯。這種提供車位的模式將解決200輛以上的汽車停放問題(如果人們遷入或者遷出城市),而不需要為整個城市建造任何集中的更大的停車位榛斯。與上一個場景類似观游,讓我們分析一下這個場景—
價格:由于第二個車庫不是專為出租目的而建的,并且維護費用也很低驮俗,所以租用額外的停車位的費用相對于中央大停車位要低一些懂缕。
安全性:每輛車都被鎖在不同的車庫里,因此盜賊必須打開所有的車庫才能接近汽車王凑,從而提供更高的安全性提佣。(區(qū)塊鏈中的安全性有點不同,但為了簡單起見荤崇,現(xiàn)在讓我們這有考慮吧拌屏!
限制:隨著房屋數(shù)量的增加,假設(shè)每棟新房子也有額外的車庫空間术荤,那么容納更多汽車的空間就會不斷增加倚喂。這樣,增加了承租人和出租人的網(wǎng)絡(luò)。
無信任:由于沒有中央機構(gòu)控制這些分布的停車位端圈,我們假設(shè)所有參與的車庫業(yè)主都會制定一定的規(guī)則來出租他們的停車位焦读。
分散:如前所述,這些停車位分布在整個城市舱权,我們可以認(rèn)為它是一個分散的停車場矗晃。
上面的類比為理解區(qū)塊鏈的實際技術(shù)基礎(chǔ)結(jié)構(gòu)提供了基礎(chǔ)。
停車模型到技術(shù)模型
停車模型用真實世界的語言提供了區(qū)塊鏈的基本概述⊙绫叮現(xiàn)在张症,讓我們試著把停車場的構(gòu)成要素和實際的技術(shù)模型相匹配——
大型中央停車場是一個集中式系統(tǒng),如AWS鸵贬,Google Cloud等(這些云平臺在某種程度上也是散布的俗他,但為了簡單起見,我們假設(shè)它們是單個的實體)阔逼。?
汽車是數(shù)據(jù)和應(yīng)用兆衅。
分布式停車場是一個分散式系統(tǒng)——區(qū)塊鏈。
等等嗜浮,我們漏了點什么羡亩。
所有分散的系統(tǒng)都不是區(qū)塊鏈。沒錯危融,區(qū)塊鏈?zhǔn)且环N特殊的分散系統(tǒng)夕春,具有獨特的屬性。什么屬性呢专挪?讓我們探討一下及志。
“區(qū)塊”造就區(qū)塊鏈
回顧一下我們的分散式停車場的案例,并做一些小變化寨腔。假設(shè)有個特別的停車庫速侈,一旦車子停在里面就會上鎖(假設(shè)同一輛只會停在同一個庫里面)。同時假設(shè)我們已經(jīng)為分散式車庫按順序編號迫卢。50號車庫的配對鎖鑰依賴于49號車庫的配對鎖鑰倚搬,同時也依賴于停在50號車庫內(nèi)車輛的特性(像顏色、重量乾蛤、引擎編號等)每界,這種鏈?zhǔn)竭^程從1號開始,直到200號或更遠(yuǎn)家卖。
每個車庫的配對鎖鑰依賴于該庫內(nèi)車輛的特性和上一車庫的鎖鑰眨层。
因此,如果一個盜賊想要闖入49號車庫上荡,并且修改汽車的任何特性趴樱,比如顏色或者注冊號,那么49號車庫的車輛特性將會變化,這就意味著生成了新的49號車庫的配對鎖鑰叁征,50號配對鎖鑰也隨之改變纳账,并且未來的車庫也會發(fā)生變化。
下面讓我們做最后一個假設(shè)捺疼,計算一副配對鎖鑰需要大量的運算資源疏虫,這就是說如果我們必須重新計算這些配對,以防盜賊修改任意車庫內(nèi)的車輛特性啤呼,那么將所有配對重新計算一遍幾乎是不可能的卧秘。
如果更改了鎖定密鑰對,會發(fā)生什么媳友?
希望你還記得之前我們說過所有車庫老板都會遵守一些規(guī)則斯议,你還記得嗎产捞?這些規(guī)則之一就是:檢查是否有一個有效的車庫是很必要的醇锚。車庫是否有效取決于:如果你可以確保你能使車庫的鎖定密鑰對生效,并且你此時你也更改了鎖定密鑰對坯临,那么以下所有車庫的鎖定密鑰對就會失效焊唬,因為每一對鎖定密鑰對都取決于前一對鎖定密鑰對。(驗證特定車庫的鎖定密鑰對的過程比生成鎖定密鑰對要快得多看靠。)
這種對前一對鎖定密鑰對的依賴使得它成為一條車庫鏈赶促,在技術(shù)世界中也是如此,這些車庫可以看作是一個個“區(qū)塊”,因此它被命名為——“區(qū)塊鏈” 1(Blockchain)(一串使用密碼學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊)挟炬。
區(qū)塊鏈中的塊通過“散列” 2(Hash)綁定到下一個塊鸥滨,就像我們示例中的鎖定密鑰對一樣。與車庫的例子類似谤祖,如果修改了一個區(qū)塊中的數(shù)據(jù)婿滓,則需要重新計算以下所有區(qū)塊的散列,而且由于計算散列是一種非常資源密集的形態(tài)的操作粥喜,因此實際上不可能這樣做凸主,因此網(wǎng)絡(luò)排除了無效的區(qū)塊。散列的計算被稱為采礦额湘,我們將在本系列的下一個版本中對它進行更多的討論卿吐。
區(qū)塊如何從修改中恢復(fù)?
區(qū)塊鏈網(wǎng)絡(luò)上的所有計算機,都保留著完整的區(qū)塊鏈副本锋华,所以如果某臺計算機或多臺計算機上的一個區(qū)塊或一個完整的鏈被修改嗡官,整個網(wǎng)絡(luò)就會試圖將其與自己的完整鏈副本進行比較。
如果網(wǎng)絡(luò)上的大多數(shù)節(jié)點(或計算機)發(fā)現(xiàn)修改后的鏈無效毯焕,則用其他節(jié)點的有效鏈替換修改后的鏈谨湘。這使得區(qū)塊鏈容易受到51%攻擊。簡單地說,如果網(wǎng)絡(luò)上超過50%的節(jié)點是惡意的(或者說是有一個經(jīng)過修改的鏈)紧阔,那么整個網(wǎng)絡(luò)都可能被破壞坊罢。
總結(jié)
區(qū)塊鏈有很多需要消化的信息。這是《初學(xué)者指南》的第一部分擅耽,為區(qū)塊鏈提供了基礎(chǔ)活孩。我希望這篇文章為您準(zhǔn)備好與您的朋友就區(qū)塊鏈有一些談資。查看本系列的下一個版本乖仇,我們將討論以太坊3(Ethereum)憾儒、智能合約4(Smart Contracts)和采礦5(Mining)。
名詞解釋:
區(qū)塊鏈(Blockchain):區(qū)塊鏈?zhǔn)?a target="_blank" rel="nofollow">分布式數(shù)據(jù)存儲乃沙、點對點傳輸起趾、共識機制、加密算法等計算機技術(shù)的新型應(yīng)用模式警儒。所謂共識機制是區(qū)塊鏈系統(tǒng)中實現(xiàn)不同節(jié)點之間建立信任训裆、獲取權(quán)益的數(shù)學(xué)算法?。區(qū)塊鏈也是比特幣的一個重要概念蜀铲,它本質(zhì)上是一個去中介化的數(shù)據(jù)庫边琉,同時作為比特幣的底層技術(shù)。區(qū)塊鏈?zhǔn)且淮褂?a target="_blank" rel="nofollow">密碼學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊记劝,每一個數(shù)據(jù)塊中包含了一次比特幣網(wǎng)絡(luò)交易的信息变姨,用于驗證其信息的有效性(防偽)和生成下一個區(qū)塊。?
散列(Hash):一般翻譯做“散列”厌丑,也有直接音譯為“哈隙ㄅ罚”的,就是把任意長度的輸入(又叫做預(yù)映射pre-image)通過散列算法變換成固定長度的輸出怒竿,該輸出就是散列值砍鸠。這種轉(zhuǎn)換是一種壓縮映射,也就是愧口,散列值的空間通常遠(yuǎn)小于輸入的空間睦番,不同的輸入可能會散列成相同的輸出,所以不可能從散列值來確定唯一的輸入值耍属。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數(shù)托嚣。
以太坊(Ethereum):以太坊是一個開源的有智能合約功能的公共區(qū)塊鏈平臺,通過其專用加密貨幣以太幣(Ether)提供去中心化的虛擬機(“以太虛擬機” Ethereum Virtual Machine)來處理點對點合約厚骗。
智能合約(Smart Contracts):在區(qū)塊鏈上運行的程序示启,通常稱為智能合約。所以通常會把寫區(qū)塊鏈程序改稱寫智能合約领舰。雖然比特幣(Bitcoin)上也能寫智能合約夫嗓,但是比特幣所支持的語法僅與交易有關(guān)迟螺,能做的事情比較有限。因此目前提到寫智能合約舍咖,通常指的是支持執(zhí)行圖靈完備程序的以太坊(Ethereum)區(qū)塊鏈矩父。
挖礦(Mining):挖礦其實是一種安全機制,利用密碼學(xué)哈希函數(shù)和非對稱加密排霉,確保區(qū)塊鏈網(wǎng)絡(luò)的挖礦節(jié)點在廣播區(qū)塊前窍株,投入大量的計算,提高作假和作惡的成本攻柠,保證已有數(shù)據(jù)不可能被篡改球订,確保全網(wǎng)達(dá)成共識。
原文地址:
https://hackernoon.com/beginners-guide-to-blockchain-explaining-it-to-a-5-years-old-772caac6ae97
往期文章: