其他賬號登錄: 注冊 登錄
柏慕聯(lián)創(chuàng)BIM技術(shù)服務(wù)

點(diǎn)亮建筑新夢想

LIGHT BUILDING NEW DREAM

企業(yè)BIM定制培訓(xùn)服務(wù)經(jīng)典案例
柏慕聯(lián)創(chuàng)為中國電建集團(tuán)成都勘測設(shè)計研究院有限公司提供全國BIM技能等級考試考前專場培訓(xùn)(一)
柏慕聯(lián)創(chuàng)為中國電建集團(tuán)成都勘測設(shè)計研究院有限公司提供全國BIM技能等級考試考前專場培訓(xùn)(二)
柏慕聯(lián)創(chuàng)為中國電建集團(tuán)成都勘測設(shè)計研究院有限公司提供全國BIM技能等級考試考前專場培訓(xùn)(三)
柏慕聯(lián)創(chuàng)為中國電建集團(tuán)成都勘測設(shè)計研究院有限公司提供全國BIM技能等級考試考前專場培訓(xùn)(四)
柏慕聯(lián)創(chuàng)為中國電建集團(tuán)成都勘測設(shè)計研究院有限公司提供全國BIM技能等級考試考前專場培訓(xùn)(五)
柏慕聯(lián)創(chuàng)為成都建工一建提供第四期BIM項目深入實踐應(yīng)用培訓(xùn)班(一)
柏慕聯(lián)創(chuàng)為成都建工一建提供第四期BIM項目深入實踐應(yīng)用培訓(xùn)班(二)
柏慕聯(lián)創(chuàng)為成都建工一建提供第四期BIM項目深入實踐應(yīng)用培訓(xùn)班(三)
柏慕聯(lián)創(chuàng)為中冶建工集團(tuán)提供基于Dynamo的市政路橋隧解決方案專項定制培訓(xùn)(一)
柏慕聯(lián)創(chuàng)為中冶建工集團(tuán)提供基于Dynamo的市政路橋隧解決方案專項定制培訓(xùn)(二)
柏慕聯(lián)創(chuàng)為中冶建工集團(tuán)提供基于Dynamo的市政路橋隧解決方案專項定制培訓(xùn)(三)
柏慕聯(lián)創(chuàng)為海南生態(tài)軟件園集團(tuán)有限公司提供企業(yè)BIM基礎(chǔ)定制培訓(xùn)(一)
柏慕聯(lián)創(chuàng)為海南生態(tài)軟件園集團(tuán)有限公司提供企業(yè)BIM基礎(chǔ)定制培訓(xùn)(二)
柏慕聯(lián)創(chuàng)為海南生態(tài)軟件園集團(tuán)有限公司提供企業(yè)BIM基礎(chǔ)定制培訓(xùn)(三)
柏慕聯(lián)創(chuàng)為海南生態(tài)軟件園集團(tuán)有限公司提供企業(yè)BIM基礎(chǔ)定制培訓(xùn)(四)
柏慕聯(lián)創(chuàng)為海南生態(tài)軟件園集團(tuán)有限公司提供企業(yè)BIM基礎(chǔ)定制培訓(xùn)(五)
柏慕聯(lián)創(chuàng)為中南建筑設(shè)計院股份有限公司提供2021年新員工入職BIM定制培訓(xùn)(線上/線下)(一)
柏慕聯(lián)創(chuàng)為中南建筑設(shè)計院股份有限公司提供2021年新員工入職BIM定制培訓(xùn)(線上/線下)(二)
柏慕聯(lián)創(chuàng)為中南建筑設(shè)計院股份有限公司提供2021年新員工入職BIM定制培訓(xùn)(線上/線下)(三)
柏慕聯(lián)創(chuàng)為中南建筑設(shè)計院股份有限公司提供2021年新員工入職BIM定制培訓(xùn)(線上/線下)(四)

BIMBOX | 當(dāng)我們談“X+區(qū)塊鏈”的時候,到底搞懂區(qū)塊鏈了嗎?

 二維碼
作者:BIMBOX來源:BIMBOX網(wǎng)址:https://bimbox.top/5003.html

你好,這里是BIMBOX。

今天的內(nèi)容是一期付費(fèi)內(nèi)容免費(fèi)看,內(nèi)容來自于我們知識店鋪里的專欄《精讀10本好書中的20項新科技》。

最近兩年區(qū)塊鏈的熱度越來越高,也有越來越多的宣傳,各種行業(yè)都要「+區(qū)塊鏈」,連咱們的BIM也有很高的呼聲。

很多人可能聽到區(qū)塊鏈這個名詞覺得很炫酷,又或者與騙子掛鉤,但其實并不了解它到底是個什么東西,只知道好像和比特幣有關(guān)系,大概是個去中心化的東西,但再往深處聊,比特幣和區(qū)塊鏈有啥區(qū)別?為什么能做到去中心化?就說不出所以然了。

很多文章講區(qū)塊鏈,喜歡略過技術(shù)細(xì)節(jié),用一些淺顯的例子打比方,來說明去中心化和分布式記賬是怎么回事,這么講的好處是誰都能聽懂,但也有個壞處,那就是聽了的人只能大概了解區(qū)塊鏈的優(yōu)點(diǎn),然后就「比方套著比方」,直接把區(qū)塊鏈技術(shù)給套用到其他技術(shù)上去了。這也是為什么很多場合區(qū)塊鏈被過度宣揚(yáng),似乎成了無所不能的神器。

如果連基礎(chǔ)原理都搞不清楚就去談未來,就好像在談?wù)撛趺茨苡秒姳浣鉀Q移民火星的問題一樣。

所以,我們打算跳過所有的比喻,用硬核的方法給你講清楚區(qū)塊鏈的工作原理、底層邏輯到底是什么,幫你去掉心里的區(qū)塊鏈崇拜或者抵觸,知道它能做什么、不能做什么,有哪些缺陷。同時也會思考區(qū)塊鏈的未來,它到底會對各個行業(yè)的發(fā)展產(chǎn)生什么樣的影響。

1

比特幣:從支付說起

說區(qū)塊鏈之前,咱們得先聊比特幣。

可能你覺得,我不想炒比特幣,那玩意我不感興趣,就想聽聽區(qū)塊鏈在其他行業(yè)是怎樣應(yīng)用的。但是,如果你想把區(qū)塊鏈搞清楚,那比特幣是繞不過去的,一切區(qū)塊鏈設(shè)計想法都來自比特幣。

比特幣是一種電子支付的方式,我們用的手機(jī)支付也是電子支付,但比特幣和手機(jī)支付不一樣。手機(jī)支付背后肯定有一家機(jī)構(gòu),或者是騰訊、阿里,或者是某家銀行。

而比特幣的設(shè)計初衷是希望在支付中擺脫中央銀行的管制。比如說支付和收款雙方匿名,交易不能偽造,所有這些功能都由程序自動保障。既然沒有某個機(jī)構(gòu)維護(hù),就必須通過算法的設(shè)計了。

任何一項技術(shù)都不可能脫離其他技術(shù)單獨(dú)存在,比特幣也是一樣,它就是建立在一套完整的現(xiàn)代加密算法上的。

比特幣中的密碼學(xué)理解起來并不難,可是一層層套起來解決問題的思路卻閃耀著理性的光輝,咱們一個個來說。

2

SHA256:我的信息怎樣不被篡改?

作為一種虛擬貨幣,比特幣首先要解決的就是怎樣把一條信息加密,讓別人無法修改。這里用到的就是第一個技術(shù):SHA256加密

SHA256的全稱是「安全哈希算法」,它是Hash(哈希)函數(shù)的一種。

哈希函數(shù)的特點(diǎn)是,不論原始數(shù)據(jù)有多少位,經(jīng)過運(yùn)算后,得到的結(jié)果長度都是固定的。比特幣中用到的是SHA256,就代表運(yùn)算結(jié)果是一個256位的2進(jìn)制數(shù)字。

最終這個256位的字符串能用在加密上,需要滿足兩個條件:

? 不論原始信息多長多短,都能且只能計算出唯一結(jié)果;

? 算法必須是單向的,不能通過結(jié)果,反算出原始信息來。

這兩個目標(biāo)要達(dá)成,就要用到數(shù)學(xué)里的一種特殊運(yùn)算方法,就是模運(yùn)算。

模運(yùn)算不難理解,就是先規(guī)定一個模數(shù),凡是超過這個模數(shù)的結(jié)果,就回到起點(diǎn)重新計算。

比如鐘表上面的表盤只有12個數(shù)字,它的模數(shù)就是12。假如我要把某個數(shù)字在表盤上加密,比如加密方式是「把原始數(shù)字加上5」,那假設(shè)我的原始數(shù)字是9,那么9+5等于多少呢?在這個模數(shù)為12的運(yùn)算里,結(jié)果不是14,因為已經(jīng)超過模數(shù)了,結(jié)果應(yīng)該是9+5-12=2。

如果反過來運(yùn)算,單憑結(jié)果2,你是無法反推出初始的數(shù)字9的,因為你不知道在這個模運(yùn)算里,數(shù)字繞著表盤轉(zhuǎn)了幾圈。原始的數(shù)字既可能是9,也可能是21,或者任意一個9加12整數(shù)倍的數(shù)字。

而SHA256函數(shù)的運(yùn)算結(jié)果,是一個模為2的256次方的值,所以這個值一定是可以寫成256位的。

把一個信息轉(zhuǎn)換為一個特定數(shù)字,最早是為了驗證兩個文件是否一致。比如你在一些論壇下載軟件的時候,經(jīng)常會隨著軟件附帶一個校驗碼,有時候是SHA256,有時候是MD5,它就是把整個軟件的全部數(shù)據(jù),經(jīng)過算法生成這么一串字符,你下載好軟件,在本地也可以使用校驗工具把它算出一個結(jié)果,和論壇上的字符串做對比,如果一致,就代表這個軟件沒有被篡改過。

一行文字哪怕只是標(biāo)點(diǎn)上有些微小變化,對應(yīng)的SH256值也會產(chǎn)生很大變化。

以百度搜索一下SHA256,第一個結(jié)果就是在線SHA加密,輸入一個句子,然后稍微改動一點(diǎn)點(diǎn),看結(jié)果是不是有天壤之別。

這個函數(shù)非常重要,會貫穿我們講述整個區(qū)塊鏈的過程中。

首先,它就是用來解決支付信息加密的問題。

比如我要付給開開200塊錢,就在網(wǎng)絡(luò)上寫下一條信息:「老孫需要支付200元給開開」,這就是支付信息。但這條信息是有風(fēng)險的,萬一有人把200改成800,那我可就要哭了。

而剛剛的SHA256算法,就避免了信息被篡改的問題。這條支付信息的哈希值是確定的,(哈希值就是SHA256算出來的數(shù)值)。在發(fā)出信息的同時給出計算出來的哈希值,和剛才說在論壇上下載軟件的例子一樣,之后任何的改動都會被發(fā)現(xiàn),只要被改動就視為無效。

但只保證了支付信息沒有被改動過還不夠。因為如果有人就是心理陰暗,發(fā)出很多條「老孫需要支付200元給開開」,然后錄入支付系統(tǒng),那我也要虧死了。

所以,光是加密信息還不行,還需要數(shù)字簽名。它的作用是用來保證「老孫需要支付200元給開開」是老孫本人親手發(fā)出的,而不是其他人發(fā)出的。

3

非對稱鑰匙:怎樣確保信息源?

我們現(xiàn)實生活里使用手寫簽名,是因為筆跡很難造假。但電子信息中,誰都可以敲出「老孫同意」這幾個字,怎么用電子簽名來確認(rèn)一條支付信息是我本人確認(rèn)的呢?

這就得靠「非對稱鑰匙」了。

任何信息都可以通過計算變成一段數(shù)字,比如我要給熊仔發(fā)一串?dāng)?shù)字「666」,我要加密這段數(shù)字之后發(fā)給熊仔,我倆可以事先約定一種加密方式,比如給每個數(shù)字都+3,熊仔那里收到的結(jié)果是999,按我們之前約定過的,每個數(shù)字都減去3,就得到了結(jié)果666。在這個過程中,數(shù)字「3」就叫做鑰匙,又因為加密和解密都用的是它,所以叫「對稱鑰匙」。

在開放的互聯(lián)網(wǎng)上,對稱鑰匙有著致命的缺點(diǎn),因為鑰匙至少需要單獨(dú)傳遞一次,無論是打電話、還是發(fā)郵件,我得事先和熊仔約定鑰匙是「3」。而傳遞鑰匙這條信息本身是沒有加密的。如果這個鑰匙被人知道了,那誰都可以給熊仔發(fā)任何信息,熊仔也不知道哪條是我本人發(fā)的。

這時候「非對稱鑰匙」就要登場了。你可以這樣理解它:加密和解密用的不是同一把鑰匙,我選則其中一把加密的話,另一把鑰匙就可以解密。

兩把鑰匙,我把其中的一把保留在自己手里誰也不告訴,叫做「私鑰」,另一把鑰匙則是公開給大家,誰都可以看見,叫做「公鑰」。公鑰和私鑰是通過一種不可逆的數(shù)學(xué)計算關(guān)聯(lián)成對的。是的,不可逆的運(yùn)算還是基于剛才說的模運(yùn)算。

數(shù)字簽名的問題就是這么解決的。當(dāng)我發(fā)出一條交易信息時,我先用自己的私鑰給信息加密,再把加密后的內(nèi)容連同公鑰一起發(fā)布出去。別人如果用公鑰解開了,就說明當(dāng)初這條信息是用這把公鑰對應(yīng)的私鑰加的密,那就是我本人了。

這兩個知識點(diǎn)你理解了,我們就可以還原一次比特幣交易的過程了。

比如我要給開開發(fā)200比特幣,我的比特幣客戶端軟件會做這么幾件事:

? 把「老孫給開開200比特幣」當(dāng)作原始信息,對它做一次SHA-256運(yùn)算,得到一個原始哈希值;

? 用私鑰給原始哈希值加密,得到加密的哈希值

?原始信息、公鑰、加密的哈希值,這三個內(nèi)容同時發(fā)布到全網(wǎng)去,給別人驗證。哈希值用來保證信息沒有被篡改,加密和解密保證信息出自我本人。

到此為止,我們解決了信息源可靠且不可更改的難題,其實這兩個問題現(xiàn)在任何一家銀行都能解決,并不是區(qū)塊鏈的特權(quán)。可是別忘了,區(qū)塊鏈可是要「去中心化」呢!那如果沒有了銀行這個中心機(jī)構(gòu),會面臨什么麻煩呢?

4

去中心:誰來幫我記錄余額?

沒有中心機(jī)構(gòu),首先的問題就是每個人的賬戶余額由誰來記錄。比如,老孫支付開開200元錢,可是老孫賬戶里的余額夠嗎?

這個疑問在傳統(tǒng)銀行系統(tǒng)里不是問題,因為銀行可以查看任何人的賬戶余額。在銀行的系統(tǒng)里,你是相信銀行不會篡改你的賬本的。

但在比特幣系統(tǒng)中,余額有多少,不能自己說了算,自己說了也沒人信。而且,任何一個參與者和其他參與者有同樣高的權(quán)限,當(dāng)然也沒有一個「說了算」的人來統(tǒng)一監(jiān)管每個人的余額,所以還是只能通過程序和算法的設(shè)計。

這一步的程序解決方法是——每筆交易都必須以上一次交易作為基礎(chǔ)。

比如「老孫支付200元給開開」,這筆交易可以進(jìn)行的前提是,之前有人付給老孫過錢。

假設(shè)之前熊仔已經(jīng)給過老孫200塊錢了。那么老孫給開開付錢時,發(fā)送的標(biāo)準(zhǔn)信息是這樣的:「熊仔支付200元給老孫,老孫支付200元給開開」,再加上老孫的數(shù)字簽名和公鑰,一塊發(fā)出去。

你看,到這兒是不是有點(diǎn)「鏈條」的意思了?不過,我們的旅程還沒有結(jié)束,光是把信息發(fā)出去還不夠,我們還得把它記錄下來。這就要涉及到區(qū)塊鏈的本質(zhì)了。

5

分布式記錄:區(qū)塊鏈登場

當(dāng)我把一筆交易的信息發(fā)布到全網(wǎng)之后,就會有其他比特幣參與者幫我驗證。這些人就是挖礦的「礦工」。

為啥叫挖礦?我們一會再說,先說說曠工們的驗證工作。

? 首先把我發(fā)的原始信息(老孫給開開200比特幣)做SHA256的運(yùn)算,得到一個原始信息的哈希值。

? 用我提供的公鑰,把加密的哈希值解密,得到一個新的哈希值。

? 把兩個哈希值做對比,如果一致,就代表這條信息確實來自我本人,且沒有被篡改過。

這個過程和前面講的發(fā)送這條信息過程正好是反過來的。

如果以上驗證通過,就進(jìn)行下一步的記錄操作。當(dāng)然,這些工作都是比特幣軟件自動完成的。

那么礦工是不是把這條記錄存在自己的電腦里,就萬事大吉了?還不行。

我們說比特幣的特點(diǎn)是分布式記賬,那就得保證所有交易記錄在每一臺電腦上都必須存著一模一樣的副本。但要實現(xiàn)這一點(diǎn)還真的很難。

沒有任何一個中央機(jī)構(gòu)來24小時不間斷的記賬,所有記賬的人都是分布在全球各地的,他們有的在交易發(fā)生的下一秒?yún)⑴c了驗證,有的當(dāng)時不在線,隔一天才收到需要驗證的記錄,有的可能幾個月都沒開電腦。那么交易記錄的同步就成了問題。

這時候,區(qū)塊鏈終于登場了。

咱們先說「區(qū)塊」,再說「鏈」。

在區(qū)塊鏈中,每一個區(qū)塊里都包含著上千條交易記錄。礦工收到一個區(qū)塊,檢查通過之后,他的保存方式是把新的區(qū)塊添加到自己電腦里的鏈條最末尾,同時也會把這個新區(qū)塊發(fā)給其他礦工,他們也會做同樣的工作。

前面講了,每一條交易都必須是基于以前的交易,所以礦工的保存不單單是一個儲存的動作,還有一個「加鏈」的動作,這個動作還是通過計算來解決。

通過一定的算法,新區(qū)塊的生成要得到一個字符串,它由以下三部分組成:

? 新區(qū)塊的基本信息,比如版本號、區(qū)塊產(chǎn)生的時間(也叫時間戳)

? 這個新區(qū)塊本身包含的上千條交易記錄,累積用SHA256算出一個哈希值,叫做Merkle根

? 前一個區(qū)塊用SHA256計算的哈希值

區(qū)塊鏈之所以被叫做鏈,最關(guān)鍵的就是第三部分:前一個區(qū)塊的SHA256函數(shù)值,它就是區(qū)塊與區(qū)塊間首尾銜接的「鏈」。

以上的每個部分,都使用SHA256計算得到唯一的字符串,最終合到一起,再計算出一個總的哈希值,也就是當(dāng)前區(qū)塊的哈希值,作為下一個區(qū)塊引用的字符串。

這樣,全網(wǎng)所有的電腦并不是分散著記錄一筆一筆的交易,而是把所有的歷史交易全部串成一個鏈條,所有人儲存的都是歷史上的全部交易的總和,只不過它們是用SHA256函數(shù)計算出來的。我們前面講這個函數(shù)時候說過,它不能通過結(jié)果反算出原始信息來。所以也不必?fù)?dān)心具體的交易信息被泄露。

問題結(jié)束了嗎?還沒有。別忘了,任何一個網(wǎng)絡(luò)中,都有貪婪的壞人。

6

挖礦:對付壞人的大數(shù)計算

因為沒有中央機(jī)構(gòu),就沒法保證全網(wǎng)在同一時刻只存在一條鏈,區(qū)塊鏈在記錄的過程中有可能會「分叉」,有時是因為操作失誤,但更多時候是來自惡意。

舉個例子:老孫從別人那收到了200個比特幣,把它支付給了開開,緊跟著又操作一遍,把這200個比特幣支付給了熊仔。這樣200就能當(dāng)400花了。

注意,這兩條信息都是真實的,也都按照規(guī)則,基于前邊一個交易,也就是「老孫收入了200比特幣」作為上一個區(qū)塊。

結(jié)果,全球各地安裝了比特幣軟件的人,因為網(wǎng)速的原因,有人會先收到第一筆支付信息,有人會先收到第二筆支付信息,哪個才是有效的?如果這兩條交易都被記錄下來,那可就亂套了。

你可能會想:不對吧,老孫把錢支付給了開開,那他的余額應(yīng)該是0了,不能再支付給熊仔了呀?如果你這么想,就還是沒離開傳統(tǒng)的記賬方式,別忘了,在比特幣世界里,沒有中央機(jī)構(gòu)負(fù)責(zé)記錄每個人的賬戶余額。

區(qū)塊鏈網(wǎng)絡(luò)的解決辦法是:限制單位時間里產(chǎn)生新區(qū)塊的數(shù)量,比如十幾分鐘之內(nèi)只允許產(chǎn)生一個新區(qū)塊。可是既然沒有中央機(jī)構(gòu)來監(jiān)督,這個限制動作本身又是怎樣完成呢?

答案是:讓全網(wǎng)的計算機(jī)同時算一道難題,所有計算機(jī)的算力加起來,平均十幾分鐘才能算完這道題。

這么難的題怎么出呢?

剛才我們說,生成一個區(qū)塊要算出一個字符串來,這個字符還不能作為最終結(jié)果加到整個鏈條上,而是要再加一步操作:由軟件生成一個隨機(jī)數(shù),和剛剛的字符串一起組成一個新的字符串,接下來,要把這個組合成的字符串再用SHA256算一次,會得到一個新的256位數(shù)。

運(yùn)算的結(jié)果必須是前72位全部都是0,才算正確答案,也只有前72位全都是0的結(jié)果,才能作為這個區(qū)塊的哈希值,被下一個區(qū)塊引用。

如果算一次結(jié)果不正確,那就再給個隨機(jī)數(shù),再計算,直到算出來為止。

所以,我們要在前面的圖上加點(diǎn)東西,下面這張圖才是一個區(qū)塊的完整版:

那么,既然軟件給的是一個隨機(jī)數(shù),哪能那么巧,算出來前72位全都是0呢?沒錯,這就是關(guān)鍵。

區(qū)塊鏈網(wǎng)絡(luò)設(shè)置這道題,就是要讓算出來這個結(jié)果的概率很低,低到什么程度呢?每一位結(jié)果可能是0或者1。第一位是0的概率是1/2,第二位還是0的概率是1/4,第三位還是0的概率是1/8……這樣延續(xù)下去,整個網(wǎng)絡(luò)里大概平均要進(jìn)行2的72次方次運(yùn)算,才會有一臺機(jī)器,幸運(yùn)地算出了正確答案。

按照目前全網(wǎng)的算力估算,得到一個正確答案的時間,差不多就是10分鐘。區(qū)塊鏈就是通過這種方法來控制新區(qū)塊出現(xiàn)的頻率。

如果以后的計算機(jī)算力越來越強(qiáng),算出答案的平均時間越來越小怎么辦?很簡單,只要修改一下規(guī)則,把72位全是0改成73位、74位,每增加一位,難度就翻一翻。

這個運(yùn)算量很大,而且它的目的只是為了「拖延時間」,其實是一個沒有意義的運(yùn)算。那大家憑什么愿意拿出電腦來算這個數(shù),幫別人記賬呢?

比特幣的規(guī)則規(guī)定,最先算出來的人,獎勵一定數(shù)量的比特幣,這也就是為什么參與比特幣的人叫礦工了,他們挖的礦,就是系統(tǒng)獎勵的比特幣。

當(dāng)然,這個獎勵不是一成不變的,否則錢越來越多,就會通貨膨脹。一開始是獎勵50比特幣,往后每推進(jìn)21萬個塊,獎勵就會減半,這樣一直減下去,總數(shù)加起來大概就是2100萬個比特幣封頂,這也就是為什么比特幣越來越值錢的原因。

其他礦工看到有人挖到了礦,只能干著急,因為軟件是一個個生成隨機(jī)數(shù),算出正確答案,就更新到自己鏈的末尾,同時發(fā)布給全網(wǎng)。誰先給出來符合要求的結(jié)果,誰就說了算,誰就能得到獎勵。

而剛才的問題也就有了答案:老孫在1秒鐘內(nèi)給開開和熊仔先后轉(zhuǎn)賬,最終哪一筆算數(shù),不在于老孫操作的順序,而在于這兩筆交易中哪一筆被幸運(yùn)的人先算出正確的答案來,另外一筆由于失效會被作廢。

7

長鏈優(yōu)先:拒絕造假

看完上面的講述,你會不會覺得比特幣網(wǎng)絡(luò)完全安全了?并不是。

壞人不止一種,還有人可以在不犯規(guī)的前提下,偽造比特幣,其實也就是偽造記錄。

比如熊仔比老孫還要利欲熏心,在當(dāng)前區(qū)塊鏈的基礎(chǔ)上,自己給自己付一大筆錢,然后提交到全網(wǎng),怎么辦呢?

注意,這里面他并沒有違背前面說的原則,他偽造的基礎(chǔ)是基于上一個正確的區(qū)塊,發(fā)布的信息也是經(jīng)過正確加密的,只要他的電腦算力夠好,算出了前72位都是0的正確數(shù)值,這條交易就會被記錄并且發(fā)布出去。

這樣的問題怎么解決呢?這就得說到區(qū)塊鏈的另一條規(guī)則:全網(wǎng)只認(rèn)最長的那一條鏈

熊仔可以憑運(yùn)氣做出一個區(qū)塊,相當(dāng)于做了一條分叉,但是在這條分叉上的下一個區(qū)塊還得他一個人做,下下個區(qū)塊還得他自己做。而在另一條沒有造假的鏈條上,是全網(wǎng)所有人在做區(qū)塊,一臺電腦的算力無論如何是比不上全網(wǎng)的,很快他的鏈條長度就被甩在后面,無人問津了。

實際上,因為全網(wǎng)的客戶端都是自動選擇最長的鏈條去做區(qū)塊,更大的可能是熊仔的電腦還沒來得及算出來72個0的結(jié)果,全網(wǎng)中正確的鏈條就已經(jīng)往前推進(jìn)十幾個區(qū)塊了,熊仔做出來的假區(qū)塊根本就不會被人家搭理。

看了這些你可能會想,動用了這么多的技術(shù),把計算搞這么麻煩,到底是為什么呢?其實這背后全都是為了去中心化所付出的代價。那為啥一定要去中心化?這就不是技術(shù)問題,而是理念問題了。

比特幣和區(qū)塊鏈?zhǔn)怯梢蝗簶O客發(fā)明的,他們的原始愿望,就是打造一個人人平等的、沒有任何機(jī)構(gòu)管控的互聯(lián)網(wǎng)世界。至于區(qū)塊鏈后來被其他人、甚至其他機(jī)構(gòu)用起來,那就是另外一個故事了,我們放到下一期再給你細(xì)說。

8

總結(jié)、福利和預(yù)告

今天我們從比特幣出發(fā),給你在微觀的層面上講解了區(qū)塊鏈的技術(shù)原理,其實它的本質(zhì),就是利用一系列的加密算法,代替中央機(jī)構(gòu)的作用,而這些算法本身并不是很難理解。

你可以看到它為什么能在根本上實現(xiàn)去中心化、不可篡改,同時也能看到它為了實現(xiàn)去中心化的目的,也帶來了處理效率低、浪費(fèi)算力等弊端。

但是,我們的話題還遠(yuǎn)遠(yuǎn)沒有講完,區(qū)塊鏈發(fā)展到今天已經(jīng)很多年了,它后來又經(jīng)歷了哪些變革?它可能被黑客攻擊嗎?所有區(qū)塊鏈都是一樣的嗎?什么是公鏈、私鏈和聯(lián)盟鏈?除了做電子支付,區(qū)塊鏈在其他行業(yè)里還能做什么?又有哪些宣傳言過其實了?

這些內(nèi)容,我們放在下一期宏觀內(nèi)容里給你講。

關(guān)于區(qū)塊鏈的內(nèi)容,我們也會更新到知識店鋪的付費(fèi)專欄《精讀10本好書中的20項新科技》中,里面有一集專門講量子計算,它可能是區(qū)塊鏈加密最大的威脅,購買課程的小伙伴可以放到一起聽聽。

另外,今天我們講到的哈希函數(shù)、模運(yùn)算、公鑰和私鑰加密等各種加密算法,全都來自于這本《碼書:編碼與解碼的戰(zhàn)爭》,從最簡單的字母移位加密法,一路講到量子計算的世界,讀起來燒腦又過癮,強(qiáng)烈推薦給你。

有態(tài)度,有深度,BIMBOX,咱們下次見!

會員登錄
登錄
其他賬號登錄:
我的資料
留言
回到頂部