?究竟什么是中心化?什么又是去中心化?相信大家在剛剛接觸到這個詞匯的時候都不會太熟悉,而去中心化又是區塊鏈技術及其相關應用(例如比特幣)中一個非常重要的特性,如果想了解區塊鏈技術,就一定要弄明白什么是去中心化。
為了讓讀者們能夠以最直觀的方式了解區塊鏈技術,本文在向大家解釋區塊鏈概念的同時,通過豐富的插圖以及生動的舉例,力求深入淺出的讓所有人都能明白區塊鏈技術,由于比特幣是區塊鏈技術的第一個應用,所以本文會著重講解比特幣的構成,通過比特幣這一區塊鏈技術在現實當中的映射,來幫助大家了解。
首先我們來講中心化,我們用一個班級來舉例,在整個系列文章中,我們將多次運用這一實例,將例子中的多個事件都一一對應到區塊鏈的某些技術上,讀者們只需要熟記這個實例,就可以勾勒出整個區塊鏈的框架。
有這么一個班級,班級里工有100位品學兼優的學生,除了同學們以外,還有一位班主任老師,每天學生們的任務就是寫作業,完成作業以后,學生們要上交自己的作業給班主任老師,班主任老師拿到學生們的作業之后,會根據學生們完成作業的程度打分,并且給作業完成的好的同學以獎勵,也許是一朵小紅花,也許是一個小獎章。總之老師會把給學生們的獎勵一一記在一個小本上,可能記錄了這樣的信息:“1月1日,小明獲得小紅花一朵。”在之后的日子里,同學們可以用自己獲得的獎勵換取一些自己想要的東西,也許是一個布娃娃,也許是一個玩具,也許是一瓶飲料。當小明想要用自己獲得的小紅花兌換其他東西的時候,他會把自己的小紅花交給老師,老師就會在自己的小本上將小明獲得的獎勵清除掉,并記下“1月3日,小明用一朵小紅花換取了一瓶飲料”
在這個系統中,學生寫作業,交給老師,換取小紅花。也可以把小紅花交給老師,換取其他自己需要的物品。而老師,負責批改學生們的作業,發放和收回小紅花,并且記錄學生們獲得小紅花的情況明細。在這種情形下,這個系統就是中心化的,而整個系統的中心節點就是班主任老師,她擁有評判同學們作業完成度的權利,發放獎勵的權利,兌換其他物品的權利。在老師和同學都是絕對公正、無私的情況下,這個系統是可以完美運行的,然而在現實生活中,這個系統會遇到許多信任問題。
首先,全體同學默認都是信任班級的中心--班主任老師的,事實上所有同學不得不信任老師,因為只有老師有記賬權,同學們的勞動成果全部由老師記錄,并且老師的賬本也不對外公開。這時候老師就有了作弊的空間,在收到所有同學的作業后,她可以任意決定同學們獲得的獎勵,因為同學之間是無法互相知道大家作業完成的情況的,那么老師可以給和自己關系好的同學更多的獎勵,給和自己關系不好的同學更少的獎勵,或者一部分同學會選擇賄賂老師(我們無法保證任何人都是公正無私的,包括同學們),這樣即使他每次上交的作業都是空白的,他也會獲得小紅花,而努力學習完成作業最勤勞的同學,可能一朵小紅花都得不到。等到學生想用小紅花兌換其他物品的時候也會出現問題,老師可以記花賬,有的同學用一朵小紅花可以換到三朵小紅花才能換到的物品,有的同學花費三朵小紅花卻只能換到價值一朵小紅花的物品。這一切都是因為老師在這個系統中的絕對掌控,她擁有記賬權,并且賬本不對外公開。當有的同學意識到自己受到不公平待遇后,會對班主任老師失去信任,或者也加入到賄賂老師的隊列中去。
那么如何解決這一難題呢,顯然把班主任剔除然后從學生中選舉一個來記賬是不可行的,這只不過是換了一位班主任而已。而區塊鏈技術就為我們提供了一種思路,在這種技術的幫助下,我們可以將系統中的中心化節點剔除,只剩下若干的一般節點,這些節點沒有任何的區別,他們所負責的工作也完全一致,具體到這個例子中,就是在班級里只保留學生而沒有班主任,學生們依然要寫作業,但是完成作業以后獲得的獎勵由所有人一起決定,并且可以杜絕任何的欺詐行為。
接下來我們用這個例子演示一下比特幣是如何在實際生活當中運行的,在例子中,每一個動作和行為都對應著區塊鏈技術的知識點,在大家了解整個系統如何運行之后,我們再將每一步進行分解剖析
首先,我們假設班級里有100位同學,并且我們給每一位同學手里都發一個賬本,他們勤勤懇懇的每天寫作業,以換取自己的獎勵。同學們的作業有以下特點:第一,每位同學的作業題解題方式都是一樣的(哈希計算),題目也一樣,但是答案不唯一。第二,這些作業題計算起來很難,但是驗證答案是否正確很簡單。第三,這些作業題的解題難度根據同學們的解題能力而不斷變化。最終的結果就是平均每10分鐘會有一位同學解題成功。
然后有一位同學小明解出了題目,他馬上用大喇叭在班里宣布,我算出來這一題的(其中一個)答案了!結果是XXXXXXX,然后其他的同學馬上用小明的答案進行驗算,發現的確是正確答案,那么所有人都在自己的賬本上寫下“某年某月某日某時,小明作對了一道題目,小明獲得了一朵小紅花”。小明自己也在他自己的賬本上做好記錄。這個過程就是一個挖礦的過程,小明最終獲得的小紅花就是比特幣,而如果小明想要交易,比如他想將自己的小紅花送給小紅,那么他還是要在班級里用大喇叭宣布,我要將自己的一朵小紅花送給小紅,大家首先在自己的賬本里查看,小明是否擁有一朵小紅花,之后大家都在賬本上寫下,“某年某月某日某時,小明將一朵小紅花送給小紅”。看起來雖然很簡單,但是實際上這些過程中充滿了問題和信任危機,如果這100位同學有作弊的怎么辦,如果有同學記花賬怎么辦,如果有同學沒有聽到小明的大喇叭宣告怎么辦,別著急,在接下來的文章中,我們將一步步,一點點,把區塊鏈技術和比特幣掰開揉碎放到大家眼前,用最直白的語言,讓大家了解區塊鏈技術。