除非你活在與世隔絕的大山里,否則我相信你一定聽說過比特幣和區(qū)塊鏈。畢竟,它們是當(dāng)今趨勢和媒體最喜歡的話題。即使是從未開采過加密貨幣或了解其工作原理的人也在談?wù)撍讉€(gè)星期以來,我那些不懂技術(shù)的朋友一直在問我,讓我向他們解釋這個(gè)詞到底是什么意思。我想有成千上萬的人有同樣的感覺。是時(shí)候?qū)懸恍〇|西,這就是這篇文章的目的——用任何普通互聯(lián)網(wǎng)用戶都能理解的簡單語言說清楚這個(gè)問題。
為什么我們需要區(qū)塊鏈這么復(fù)雜的東西?
與互聯(lián)網(wǎng)上的所有其他帖子不同,我們不會首先講定義,第一步,是要了解它到底解決了什么問題。
想象一下,喬是你最好的朋友。他正在海外旅行,在假期的第五天,他打電話給你說:“伙計(jì),我需要一些錢。我已經(jīng)用完了。”
你回答說:“馬上給你打錢”,然后掛斷了電話。
然后你致電銀行的客戶經(jīng)理,告訴他:“請把 1000 美元從我的賬戶轉(zhuǎn)到喬的賬戶。”
客戶經(jīng)理回答:“好的,先生。”
他打開程序,檢查您的賬戶余額,看看您是否有足夠的余額將 1000 美元轉(zhuǎn)給喬。因此,他在寄存器中輸入如下:
交易登記冊
注意:在這里談?wù)撚?jì)算機(jī)并不是為了讓事情變得簡單。
你打電話給喬,告訴他,“我已經(jīng)把錢轉(zhuǎn)了。你直接去銀行,把我剛轉(zhuǎn)賬的1000塊錢取出來。”
這說明什么?你和喬都信任銀行來管錢。實(shí)際的鈔票并沒有發(fā)生轉(zhuǎn)移。只有銀行的記錄里顯示了這樣一筆轉(zhuǎn)賬。更直白一點(diǎn)說,你們兩個(gè)作為客戶都不能控制或者影響銀行怎么寫這一條涉及錢的記錄。
這就是當(dāng)前系統(tǒng)的問題。
為了在我們之間建立信任,我們依賴于第三方。
多年來,我們一直依靠這些中間人相互信任。您可能會問,“依賴第三方,有什么問題?”
問題是這些第三方都是單一存在的。如果要給這個(gè)系統(tǒng)制造混亂,只需要一個(gè)人或組織有意或無意地腐敗一下就夠了。
如果記錄交易的那個(gè)服務(wù)器硬盤被火燒毀了怎么辦?
如果您的客戶經(jīng)理誤寫了 1500 美元而不是 1000 美元怎么辦?
萬一他是故意的呢?
長久以來,我們一直把所有的雞蛋放在一個(gè)籃子里,也把它放在別人的籃子里。
是否存在一個(gè)系統(tǒng),我們可以在不需要銀行的情況下轉(zhuǎn)賬?
要回答這個(gè)問題,我們需要進(jìn)一步深入,問一個(gè)深入的問題(畢竟,正確的問題才能得到正確的答案)。
想一想,轉(zhuǎn)賬是什么意思?只是登記簿中的一個(gè)條目。那么更好的問題是——
有沒有辦法,讓我們自己來維護(hù)注冊登記表,而不是由其他人為我們做呢?
這才是一個(gè)值得探討的問題。答案您可能已經(jīng)猜到的。區(qū)塊鏈就是這個(gè)深刻問題的答案。
這是一種在我們自己之間維護(hù)該注冊的方法,而不是依靠其他人為我們做這件事。
好的。因?yàn)楝F(xiàn)在,您的腦海中開始出現(xiàn)幾個(gè)問題時(shí),我們將了解這個(gè)分布式存儲器是如何工作的。
它是如何工作的?
這種方法的前提是必須有足夠多的人不想依賴第三方。只有這樣,該組人才能自行維護(hù)注冊表。
“獲得一些比特幣以防它流行起來可能是有意義的。如果有足夠多的人有同樣的想法,那將成為一個(gè)自我實(shí)現(xiàn)的預(yù)言。” ——中本聰,2009
多少才夠?至少三個(gè)。對于我們的示例,我們將假設(shè)有十個(gè)人想要放棄依賴銀行或任何第三方的服務(wù)。在雙方同意的情況下,他們一直擁有彼此賬戶的詳細(xì)信息——但不知道對方的個(gè)人身份信息。
1.一個(gè)空文件夾
每個(gè)人都包含一個(gè)與他們自己開始的空文件夾。隨著我們的進(jìn)展,這十個(gè)人將持續(xù)將內(nèi)容添加到他們的空文件夾中。這個(gè)頁面的集合將形成跟蹤交易的寄存器。
2. 交易發(fā)生時(shí)
接下來,想象一下,網(wǎng)絡(luò)中的每個(gè)人都坐在那里,手里拿著一張空白頁和一支筆。每個(gè)人都準(zhǔn)備好編寫系統(tǒng)內(nèi)發(fā)生的任何事務(wù)。
現(xiàn)在,如果 #2 想向 #9 發(fā)送 10 美元。
為了進(jìn)行交易,#2 大喊并告訴大家:“我想將 10 美元轉(zhuǎn)給#9。所以,每個(gè)人,請?jiān)谀愕捻撁嫔嫌浵逻@筆轉(zhuǎn)賬。”
每個(gè)人都檢查#2 是否有足夠的余額將 10 美元轉(zhuǎn)移到#9。如果她有足夠的余額,那么每個(gè)人都會在他們的空白頁上記下這筆交易。
頁面上的第一筆交易
然后交易被認(rèn)定為完成。
3. 交易繼續(xù)發(fā)生
隨著時(shí)間的推進(jìn),網(wǎng)絡(luò)中越來越多的人有轉(zhuǎn)賬交易的需求。每當(dāng)他們想要進(jìn)行交易時(shí),他們都會向其他人宣布。一個(gè)人一聽到公告,就會將其寫在他/她的頁面上。
這個(gè)“記錄的動作”會一直持續(xù)到每個(gè)人都用完當(dāng)前頁面上的空間。假設(shè)一個(gè)頁面有空間記錄十筆交易,一旦第十筆交易完成,每個(gè)人都會用完空間。
當(dāng)頁面被填滿時(shí)
是時(shí)候?qū)㈨撁娣旁谖募A中并取出一個(gè)新頁面并從上面的步驟 2 開始重復(fù)該過程。
4. 收起頁面
在我們將頁面放入文件夾之前,我們需要使用網(wǎng)絡(luò)中每個(gè)人都同意的唯一密鑰對其進(jìn)行密封。通過密封,我們將確保一旦它的副本被存放在每個(gè)人的文件夾中后,任何人都無法對其進(jìn)行任何更改——今天不行,明天不行,甚至一年后也不行。一旦進(jìn)入文件夾,它將始終留在文件夾中 - 密封。而且,如果每個(gè)人都信任印章,那么每個(gè)人都會信任頁面的內(nèi)容。而這種封頁就是這種方法的關(guān)鍵所在。
在頁面上稱為“mining”,但為了簡單起見,我們將繼續(xù)稱其為“sealing密封”。
之前的情況是,第三方或者中間人,讓我們相信他們在登記簿上寫的任何內(nèi)容都不會被更改。現(xiàn)在的情況是,在像我們這樣的分布式和去中心化系統(tǒng)中,這個(gè)印章將提供大家相互的信任。
有點(diǎn)意思!那我們怎么sealing密封呢?
在我們學(xué)習(xí)如何密封頁面之前,我們將了解密封的一般工作原理。作為它的先決條件是學(xué)習(xí)一些我喜歡稱之為的東西——
魔法機(jī)器
想象一臺被厚墻包圍的機(jī)器。如果你從左邊發(fā)送一個(gè)里面有東西的盒子,它會吐出一個(gè)包含其他東西的盒子。
這臺機(jī)器叫做“哈希函數(shù)”,我不想講的太技術(shù)化。所以,就今天而言,我們就簡單的稱之為“魔法機(jī)器”。
魔法機(jī)器(又名哈希函數(shù))
假設(shè)你從左邊發(fā)送數(shù)字 4,我們會發(fā)現(xiàn)它在右邊吐出以下單詞:'dcbea'。
它是如何將數(shù)字 4 轉(zhuǎn)換為這個(gè)詞的?這個(gè)不重要。重要的是,這是一個(gè)不可逆的過程。給定“dcbea”這個(gè)詞,就不可能分辨出左邊的機(jī)器是什么。但每次你將數(shù)字 4 輸入機(jī)器時(shí),它總是會吐出同一個(gè)詞“dcbea”,這個(gè)是確定的。
哈希(4)== dcbea
給定“dcbea”這個(gè)詞,就不可能分辨出左邊的機(jī)器是什么。但每次你將數(shù)字 4 輸入機(jī)器時(shí),它總是會吐出同一個(gè)詞“dcbea”。
讓我們試試發(fā)送一個(gè)不同的數(shù)字。26怎么樣?
哈希(26)== 94c8e
這次我們得到了'94c8e'。有點(diǎn)意思!因此,單詞也可以包含數(shù)字。
如果我現(xiàn)在問你以下問題怎么辦:
“你能告訴我,如果我想要得到一個(gè)以右側(cè)三個(gè)零開頭的單詞,我應(yīng)該從機(jī)器的左側(cè)發(fā)送什么?例如,000ab 或 00098 或 000fa 或其他任何東西。”
預(yù)測輸入
給自己幾分鐘時(shí)間想一想這個(gè)問題。
我告訴過你,機(jī)器有一個(gè)屬性,當(dāng)我們在右邊給出預(yù)期的輸出后,我們無法計(jì)算我們必須從左邊發(fā)送什么。有了這樣一臺機(jī)器,現(xiàn)在來回答我剛才提出的問題?
我想到一種方法。為什么不逐個(gè)嘗試宇宙中的每個(gè)數(shù)字,直到我們得到一個(gè)以三個(gè)零開頭的單詞?
嘗試一切來計(jì)算輸入
經(jīng)過數(shù)千次嘗試,我們最終一定會得到一個(gè)符合條件的數(shù)字。
在給定輸出的情況下計(jì)算輸入是非常困難的。但與此同時(shí),驗(yàn)證預(yù)測的輸入是否產(chǎn)生所需的輸出總是非常容易。一定記住,機(jī)器每次都會為一個(gè)數(shù)字吐出相同的單詞。
如果我給你一個(gè)數(shù)字,比如 72533,然后問你一個(gè)問題:“這個(gè)數(shù)字在輸入機(jī)器時(shí)會產(chǎn)生一個(gè)以三個(gè)零開頭的單詞,你認(rèn)為答案有多難?”
簡單爆了對吧,只需要把數(shù)字扔進(jìn)機(jī)器里,看看你在右邊得到了什么而已。
這種機(jī)器最重要的特性是——“給定一個(gè)輸出,計(jì)算輸入是極其困難的,但是給定輸入和輸出,很容易驗(yàn)證輸入是否導(dǎo)致輸出。”
在本文的其余部分中,請牢牢記住魔法機(jī)器(或哈希函數(shù))的這一屬性:
給定一個(gè)輸出,計(jì)算輸入是非常困難的,但是給定一個(gè)輸入和輸出,很容易驗(yàn)證輸入是否導(dǎo)致輸出。
如何使用這些機(jī)器來封存?
我們將使用這臺神奇的機(jī)器為我們的頁面生成一個(gè)印章。
想象一下,我給你兩個(gè)盒子。第一個(gè)盒子包含數(shù)字 20893。然后,我問你,“你能找出一個(gè)數(shù)字,當(dāng)它把添加到第一個(gè)盒子中的數(shù)字輸入機(jī)器時(shí),我們會得到一個(gè)以三個(gè)零開頭的單詞嗎?”
我們已經(jīng)了解到,計(jì)算這樣一個(gè)數(shù)字的唯一方法是嘗試整個(gè)宇宙中可用的每個(gè)數(shù)字。
經(jīng)過數(shù)千次嘗試,我們最終會發(fā)現(xiàn)一個(gè)數(shù)字,比如 21191,當(dāng)它與 20893 相加(即 21191 + 20893 = 42084)并輸入機(jī)器時(shí),將產(chǎn)生一個(gè)滿足我們要求的單詞。
在這種情況下,這個(gè)數(shù)字 21191 成為數(shù)字 20893 的印章。假設(shè)有一頁上寫著數(shù)字 20893。為了密封該頁面(即沒有人可以更改其內(nèi)容),我們將在其頂部放置一個(gè)標(biāo)有“21191”的徽章。一旦封頁號(即21191)貼在頁面上,頁面就被封了。
封號
封號被稱為“工作證明”,意思是這個(gè)數(shù)字是努力計(jì)算它的證明。出于我們的目的,我們很樂意將其稱為“密封號”。
如果有人想驗(yàn)證頁面是否被篡改,他只需要——將頁面內(nèi)容加上密封號,然后喂給魔法機(jī)器。如果機(jī)器發(fā)出三個(gè)零開頭的單詞,則內(nèi)容不變。如果出來的詞不符合我們的要求,我們可以把頁面扔掉,因?yàn)樗膬?nèi)容被泄露了,沒有用了。
我們將使用類似的密封機(jī)制來密封我們所有的頁面,并最終將它們安排在我們各自的文件夾中。
最后,密封我們的頁面……
為了密封包含網(wǎng)絡(luò)交易的頁面,我們需要找出一個(gè)數(shù)字,當(dāng)附加到交易列表并輸入機(jī)器時(shí),我們會得到一個(gè)以右側(cè)三個(gè)零開頭的單詞。
注意:我一直使用短語“以三個(gè)零開頭的單詞”作為示例。它說明了散列函數(shù)是如何工作的。
機(jī)器花費(fèi)時(shí)間和電力后計(jì)算出該數(shù)字后,頁面將用該數(shù)字密封。如果有人試圖更改頁面的內(nèi)容,密封號將允許任何人驗(yàn)證頁面的完整性。
既然我們搞懂了封頁的概念,現(xiàn)在回到我們在頁面上寫完第十筆交易的情況。
每個(gè)人一但用完該頁,為了將它隱藏在文件夾中,他們就立刻沉迷于計(jì)算該頁的封號。網(wǎng)絡(luò)中的每個(gè)人都在進(jìn)行計(jì)算。網(wǎng)絡(luò)中第一個(gè)弄清楚封號的人會向其他人宣布。
聽到封號后,每個(gè)人都會立即驗(yàn)證它是否產(chǎn)生了所需的輸出。如果是這樣,每個(gè)人都會用這個(gè)數(shù)字標(biāo)記他們的頁面并將其放在他們的文件夾中。
但是,如果對于某人來說,比如 #7,宣布的密封編號不符合條件,沒有產(chǎn)生所需的輸出怎么辦?這種情況并不少見。造成這種情況的可能原因可能是:
他可能聽錯(cuò)了網(wǎng)絡(luò)中宣布的交易
他可能寫錯(cuò)了在網(wǎng)絡(luò)中宣布的交易
他可能在編寫交易時(shí)試圖作弊或不誠實(shí),以有利于自己或網(wǎng)絡(luò)中的其他人
不管是什么原因,#7 只有一個(gè)選擇——丟棄他的頁面并從其他人那里復(fù)制它,以便他也可以將它放入文件夾中。缺少一頁,他將不能繼續(xù)編寫進(jìn)一步的交易,因此,互相的信任將不復(fù)存在,他會被排擠出這個(gè)網(wǎng)絡(luò)。
多數(shù)人同意的任何封號,都會成為誠實(shí)的封號。
那為什么每個(gè)人都知道別人會計(jì)算并公布給他們,卻還要花費(fèi)資源來計(jì)算呢?為什么不坐等通知呢?
好問題。這就是激勵措施出現(xiàn)的地方。作為區(qū)塊鏈一部分,每個(gè)人都有資格獲得獎勵。第一個(gè)計(jì)算出封號的人會因?yàn)樗呐Γ聪牡?CPU 功率和電力)獲得免費(fèi)的獎勵。
簡單想象一下,如果#5 計(jì)算一頁的封號,他會得到一些免費(fèi)的錢,比如 1 美元,這些錢是憑空鑄造的。換句話說,#5 的賬戶余額會增加 1 美元,而不會減少其他任何人的賬戶余額。
比特幣就是這樣誕生的。它是第一個(gè)在區(qū)塊鏈(即分布式寄存器)上交易的貨幣。作為回報(bào),為了讓網(wǎng)絡(luò)繼續(xù)努力,人們獲得了比特幣。
當(dāng)足夠多的人擁有比特幣時(shí),它們的價(jià)值就會增長,從而使其他人想要比特幣;使比特幣的價(jià)值進(jìn)一步增長;更多人想要比特幣;價(jià)值會進(jìn)一步增長;等等。
獎勵使每個(gè)人都繼續(xù)在網(wǎng)絡(luò)中工作。
一旦每個(gè)人都在他們的文件夾中收起頁面,他們就會拿出一個(gè)新的空白頁面并重新重復(fù)整個(gè)過程——永不停止。
將單個(gè)頁面視為交易塊,將文件夾視為頁面鏈(塊),因此,將其變成區(qū)塊鏈。
我的朋友們,這就是區(qū)塊鏈的運(yùn)作方式。
除了有一件小事我沒有告訴你。
想象一下,文件夾里已經(jīng)有五頁了——全都用密封號密封了。如果我出于利益誘惑回到第二頁并修改交易內(nèi)容怎么辦?沒錯(cuò),封號是可以讓任何人發(fā)現(xiàn)交易中的不一致,如果我繼續(xù)為修改后的交易計(jì)算一個(gè)新的密封號碼并用它標(biāo)記頁面怎么辦?
為了防止有人返回并修改頁面(塊)以及封號的問題,封號的計(jì)算方式有一點(diǎn)扭曲。
保護(hù)對密封號碼的修改
還記得我告訴過你我給了你兩個(gè)盒子——一個(gè)是數(shù)字 20893,另一個(gè)是空的讓你計(jì)算嗎?實(shí)際上,要計(jì)算區(qū)塊鏈中的密封數(shù)量,不是兩個(gè)盒子,而是三個(gè)——兩個(gè)預(yù)先填充,一個(gè)需要計(jì)算。
而當(dāng)這三個(gè)盒子的內(nèi)容全部添加并送入機(jī)器時(shí),從右側(cè)出來的答案必須滿足要求的條件。
我們已經(jīng)知道一箱包含交易清單,一箱將包含封號。第三個(gè)框包含上一頁魔法機(jī)器的輸出。
通過這個(gè)巧妙的小技巧,我們確保每一頁都依賴于它的前一頁。因此,如果有人要修改一個(gè)歷史頁面,他也必須更改之后所有頁面的內(nèi)容和封號,以保持鏈條一致。
如果我們一開始想象的十個(gè)人中的一個(gè)人試圖欺騙和修改區(qū)塊鏈的內(nèi)容(包含交易列表頁面的文件夾),他將不得不調(diào)整幾個(gè)頁面并計(jì)算新的密封所有這些頁面的編號。我們知道計(jì)算密封數(shù)字是多困難。因此,網(wǎng)絡(luò)中一個(gè)不誠實(shí)的家伙無法擊敗九個(gè)誠實(shí)的家伙。
將會發(fā)生的事情是,從不誠實(shí)的人試圖作弊的頁面開始,他將在網(wǎng)絡(luò)中創(chuàng)建另一個(gè)鏈,但該鏈永遠(yuǎn)無法趕上誠實(shí)的鏈——僅僅是因?yàn)橐粋€(gè)人的努力和速度無法超越累積的努力和速度。因此,保證網(wǎng)絡(luò)中最長的鏈?zhǔn)钦\實(shí)鏈。
最長的鏈?zhǔn)钦\實(shí)鏈。
最長的鏈?zhǔn)钦\實(shí)鏈。
當(dāng)我告訴你一個(gè)不誠實(shí)的人無法擊敗九個(gè)誠實(shí)的人時(shí),你有沒有敲響警鐘?
如果不是一個(gè),而是六個(gè)人變得不誠實(shí)怎么辦?
在這種情況下,協(xié)議將一蹶不振。它被稱為“51%攻擊”。如果網(wǎng)絡(luò)中的大多數(shù)人決定不誠實(shí)并欺騙網(wǎng)絡(luò)的其余部分,那么協(xié)議將無法實(shí)現(xiàn)其目的。
這是區(qū)塊鏈可能崩潰的唯一脆弱原因。這不太可能真的發(fā)生,但我們都必須知道系統(tǒng)的脆弱點(diǎn)。它建立在大多數(shù)人總是誠實(shí)的假設(shè)之上。
本文鏈接:http://www.www897cc.com/showinfo-40-317-0.html區(qū)塊鏈到底是個(gè)啥?
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com