燃文小說 > 都市小說 > 這個吞金獸不好養 > 第兩百二十一章 區塊鏈全文閱讀

第兩百二十一章 區塊鏈

葉新晨現在可不知道雷布斯在頭疼什麼,他只知道現在自己的寶貝女兒歡歡和寶貝兒子關關玩的就很快樂。

那可不快樂嗎?

因為葉歡歡和葉關關此刻在遊樂園裡面玩耍著呢。

曹慶陽:晨兒,問你個事情哈,現在區域鏈創業靠不靠譜啊?

葉新晨:你問這個做啥啊?你好好的當你的部長不好嗎?問這些幹什麼?

葉新晨坐在凳子上,就收到了來自曹慶陽給他發的訊息。

看著這個訊息,葉新晨也是笑了笑,沒有想到曹慶陽也會問這個問題,因為區域鏈對於葉新晨來說現在並不陌生。

他身邊也有一些朋友在玩區塊鏈,所以區塊鏈在他看來全是殺豬盤。

不過一般情況下,曹慶陽也不會問的,所以葉新晨也是繼續的發了一句。

葉新晨:怎麼了?

曹慶陽:是我一個發小問我的,金融圈的,他今天我也不知道為什麼會來找上我,就是說想問問的,畢竟我現在混這麼厲害了,問我他放心,所以他才過來問我區域鏈能不能創業,不過……他自己說區塊鏈應該可以賺大錢。

葉新晨也是笑了笑,這是什麼鬼哦,區塊鏈能夠賺大錢?

怕不是在想屁吃哦。

葉新晨真的覺得這些人啊,想錢是想瘋了嗎?

不過,畢竟是曹慶陽的發小,那葉新晨還是回覆:區塊鏈靠不靠譜我不知道,但我知道他們肯定對區塊鏈有著嚴重的誤解。

因為區塊鏈是對以往中心式記賬體系的顛覆,也就是實現了去中心化。

這個概念最早在位元幣之父中本聰在2008年發表的論文Bit: A Peer-to-Peer Eleic Cash System(位元幣:一種對等網路電子現金系統)裡提出的。

所以想瞭解區塊鏈,還得必須瞭解位元幣。

而什麼是區塊鏈呢,這個的確是挺不好說的,但是可以簡單的說,就是比如大家有一個公共賬本。

假如你現在在上大學,你們寢室是標準的四人寢,除了你之外還有小王,小黃和小白三個室友。

平時你們內部的活動很多,於是經常會有人墊付飯錢,車費,還有水電費。

但是你們大家發現,如果每次消費後,都要一一計算交結非常麻煩,於是你們決定採用記賬的方案。

於是乎,你們買了一個公共的賬本,本次產生消費後,就由付錢的人在賬本上記清楚,誰應付給自己相應的金額。

如此一來,只要每月月末統一結算即可,大大節省了時間精力。

但是時間一長,你們發現在紙上記賬還是麻煩。於是你們決定升級這個賬本,改成在電腦種建立一個excel表格,但問題是,如果你們寢室裡有個人不厚道,偷偷修改賬本怎麼辦呢?

例如小王把自己要付錢記在了小白頭上。如果這個問題不能得以解決,那這個賬本的信用就將會大大折扣。

所以,這個區塊鏈採用的解決方案就是,給四個人每人都配備一個賬本。需要記錄時,就由對應的操作人高喊交易內容,廣播給寢室裡的所有人。

例如,小王高喊,“小王需要支付給小白三十元。”

然後寢室裡其他人聽到了,就在各自的小本本上記下——小王需要支付給小白三十元。

如此一來,就算小王故意使壞,把自己要付的錢記在別人身上,那也只能是篡改自己的賬本。

這樣到月底時,小王的賬本和其餘三個人對應不上,便能知道小王的賬本有問題。

但這個系統仍然存在一個問題,那就是如果小王惡作劇,不負責任的亂喊“小白需要支付給小王一百元”。如此一來,很可能會有不明真相的舍友記錄下來。

因此,分散式的賬本還由一個急需解決的問題,如何確認收到的一筆交易記錄是否有效?

所以這個問題在紙質帳本裡很好解決,那就是在每一條記錄後,由需付款的一方加上自己的手寫簽名,以示自己認可這筆記錄。

這個思路換到計算機中就是數字籤名,所以我們要求每一筆記錄後面,都要由需付款的一方加上自己的數字籤名。

數字籤名在這裡就不具體解釋了,大家只需要知道,帳本系統裡的任何人都可以驗證數字籤名是否正確可信。

但是上面這個賬本還存在一些問題,使得只適合小範圍使用,如果擴大到更大的範圍,比如整個學校使用,這個時候交易量和用戶數劇增,記錄就會變得非常麻煩。

所以這個時候就有了位元幣,啥意思呢,就是位元幣正式為了解決這個問題而對前面介紹的賬本系統的改進。

一個改進就是我們之前用的賬本裡面的交易單位是人民幣,但在位元幣系統中,我們的交易單位變為位元幣。

另一個改進就是之前的賬本我們約好是月底結賬,而現在我們把交易單位改成了虛擬的位元幣,交易也由月底統一交割改為事實交割。

而位元幣就像是賬本上的數字,隨時都可以視大家的意見進行套現,即在現實中交割。

如此一來,我們就需要確保每個人的賬戶裡有足夠的位元幣進行交易。也就是確定任何一筆交易的前提就是付款方的位元幣賬戶中有足夠的位元幣用於支付。

傳統銀行系統中,銀行會記錄儲戶的賬餘額,判斷儲戶是否能夠進行轉載。

這個很好理解,我在網銀裡操錯向某賬戶轉賬一個億,但我賬戶裡顯然沒有這麼多錢,因此銀行系統會認定交易失敗。

但位元幣系統並沒有一個“銀行式”的權威中心,所以不能像銀行這種操作方式。

位元幣的解決方案是,每筆交易不以餘額為基礎,而是以以前的交易為基礎。

比如,“小王支付給小黃50BTC”的前提是自己曾經收到過多餘50BTC。因此小王的交易記錄需要包含自己之前的交易資訊,舉個例子:

小白支付給小王40BTC

你支付給小王20BTC

小王支付給小黃50BTC

我們忽略位元幣的源頭,及它是如何產生的事,先繼續往下看。

這個時候小王需要廣播的交易資訊就是:

之前交易小白支付給小王60BTC,你支付給小王60BTC。

當前交易小白支付給小黃20BTC,你支付給小黃10BTC,你支付給小黃10BTC。

這裡說一句,“你支付給小王20BTC”中的20BTC是一個整體,無法分割,因此無法只從中拿出10BTC交易。

還有最後一個改進就是不留證明,改留位元幣賬號。就是使用者A並不用留下自己的名字,而是用一個字串來代表自己進行交易,同理,使用者B和C也是如此,只留下了一個字串。

所以你們室友在帳本里都不寫名字,而是寫下跟各自對應的字串,即位元幣賬戶。

雖然對於你們四個人的寢室這純屬脫褲子放屁,但如果對於規模更大的系統,比如前文提到的整個學校而言,這種操作可以極大提升隱私性。

我們只能知道每個賬戶,而無法知道誰擁有這個賬戶,這就保證了隱私性。

而區塊鏈呢,就是從這一節開始進入正題。

前面我們提到了這個賬本是分散式儲存的,每個人都有一個自己獨立管理的賬本。

當這個賬本系統變得很大時,一致性問題就必須要考慮。

比如,如果你有室友在交易記錄釋出時不在寢室,那麼他就錯了這次訊息,使得這次訊息不會出現在他的帳本里。

換回位元幣系統,也就是部分電腦可能處於關機或者未聯網狀態,會錯過部分交易。

此外,還可能會有駭客入侵部分電腦,篡改交易記錄。

此外,還有一個更嚴重的問題就是,實際網絡拓撲非常復雜,鏈路質量的隨機性很大。

因此,如果使用者A(假設賬戶裡有10BTC)連續廣播兩條相互矛盾的訊息,比如:

交易資訊1:使用者A支付10BTC給B。

交易資訊2:使用者A支付10BTC給C。

有的讀者應該會覺得,那我們就採信先收到的交易資訊1,忽略與之矛盾的腳印資訊2不就行了。

但問題是,因為網路鏈路的複雜性,所以很可能存在部分使用者先收到交易資訊1,又有部分使用者先收到交易資訊2。如果依靠先後順序辨別有效性,那麼就會存在不同使用者記錄的交易資訊不一致。

所以為了解決這個問題,中本聰才提出了區塊鏈的概念。

每個使用者如果願意,都可以整理自己從網路中接收到的交易資訊,然後檢查其是否合理,也就是每筆交易是否由足夠餘,然後數字籤名是否正確後,再將交易記錄打包成一個區塊。

因此每個交易記錄都是以區塊的形式儲存,然後再廣播到系統中的其他使用者中。

而區塊之間相互連接,形成一條由系統內全體使用者共同維護的區塊鏈。

因此其他使用者收到廣播的區塊時,就會把這個區塊加到自己維護的賬本,也就是區塊鏈的尾部。

但如果只是這樣,並沒有解決任何問題。網際網路節點遍佈全球,廣播過程也需要時間,因此肯定會存在不同節點收到不同區塊儲存的問題。

所以如此一來這個網路就亂套了。

而為了降低傳播時間的影響,一個簡單粗暴的方式就是從系統設計中就限制區塊生成的速度。

所以位元幣系統的核心思想採就是用算力限制區塊的生成速度。

位元幣系統要求,每個使用者在釋出新區塊前,必須先完成一個任務。

這個任務就是根據前一區塊的一些資訊加上新區快的一些資訊,生成一個字串S,選擇一個字串B,與S合併成“BC”,且要求“BC”的雜湊對映滿足某個條件,比如對映結果的前72位為0。

所以上面的第二步,除了一個個試以外是沒有捷徑的,而且結果是否滿足要求可以快速試出。

舉個例子就相當於給你一個銀行卡,讓你挨個試密碼。

那你沒有任何辦法,只能000000到999999挨個試驗,最後雖然能試出來,但也會花費大量時間。

而且你把試出來的結果告訴別人後,別人可以很快驗證你的結果是否正確。

但是時間恰好是我們宇宙中最稀缺的資源。

因此可以調節這個難度,比如使得系統中所有平均每二十分鍾才會有一臺裝置完成要求的任務,猜出符合要求的字串B。

如此一來,撞車的機率就會大大降低。補充一句,這個難度是不斷調節的,以適應硬體算力的提升。

雖然機率大大降低,但仍然無法排除存在撞車的機率。因此,區塊鏈驗證中最核心的思想就是——相信最長的區塊鏈。

也就是在原有的到區塊鏈N的情況後,短時間內出現了兩個不同的區塊,這個時候,我們需要做的只有一件事情,那就是等待。

因為同時產生區塊的小機率事件,總不可能連續發生。

所以如果有人想對區塊鏈造假,那麼他就需要一直搶先生成假的新區塊,並廣播出去。

這就要求造假者生產新區塊的速度,要快於系統中的其他所有使用者的生成能力之和。

換句話說,造假者需要使用者有和其他使用者算力之和匹敵的算力。

假設這個造假者擁有系統總算力的百分之八十,而剩下使用者擁有百分之二十……

所以……這個假設顯然不可能。如此一來,在造假者廣播了一個假的區塊後,就有百分之八十的機率先於其他使用者生成新區塊,然後連在自己之前生成的假區塊後,此時造假才有可能成功。

但實際是,每個使用者用的算力相比系統總算力都是微不足道的。

這就使得造假變得不可能,也使得造假的成本變得無法接受。

系統為了鼓勵大家生成新的區塊,於是在開始時就定下規則:每當一個新區塊加入主鏈,這個區塊的發行者就會被贈與50個BTC;然後每二十一萬個區塊後,獎勵額度縮水一半;這也就解釋了,為什麼位元幣上限不算多了。

因為這個機制牢牢限制死了位元幣的總量,使得位元幣不可能超發,濫發。