当前位置:萬花小說>书库>都市青春>這個吞金獸不好養> 第221章 區塊鏈

第221章 區塊鏈

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


  那可不快樂嗎?


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


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

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

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


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


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


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


  葉新晨:怎麽了?

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


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

  怕不是在想屁吃哦。


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


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


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


  這個概念最早在比特幣之父中本聰在2008年發表的論文Bitcoin: A Peer-to-Peer Electronic 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;然後每二十一萬個區塊後,獎勵額度縮水一半;這也就解釋了,為什麽比特幣上限不算多了。


  因為這個機製牢牢限製死了比特幣的總量,使得比特幣不可能超發,濫發。

上一章目录+书签下一章