區塊鏈到底干我何事(一)
最近很多人都在問我,到底什麼才是區塊鏈,區塊指的是啥(居民區?行政區?@_@ ),怎麼就把區塊給鏈上了,鏈上又能做什麼,一個鏈子怎麼又搞出一堆聽不懂的幣出來了,這個幣我怎麼沒見過...... 區塊鏈都快變成問題鏈了。其實我很能理解大家的這種焦慮,在這麼一個萬眾創新的時代,每天都有很多新名詞產生,每段時間都會有個所謂的風口。從早期的團購,到後來的花式共享經濟,再到AI,大數據,不管是創業的不創業都能對其評頭論足幾句,因為它們大部分是看得見摸得著的。當你坐在滴滴專車裡面,聽著網易雲音樂智能推送給你的音樂,在美團上按兩三個按鈕就訂好了一會兒去看的電影票時,你會覺得,恩,我活在這個時代裡面,我還算是in的。可當區塊鏈這個詞已經爛大街的時候,你卻驚覺身邊沒有一樣能跟區塊鏈扯上關係的東西,嚇的趕緊去找度娘,跟度娘纏綿了很久以後發現不僅依然沒懂 ,還搜出來一堆好像很多人靠這個一夜暴富的消息,不少還ICO了呢(wait,什麼是ICO,不懂,但是覺得好厲害就是了),這還了得,分分鐘錯過了幾個億啊。於是,大家就掉到了各種不明覺厲的名詞漩渦裡面,無法自拔。這篇文章的目的呢,就是幫助更多的朋友去認識這個其實本沒有那麼神秘的東西,如果你覺得對你有幫助,也可以轉給其它還在漩渦裡面迷失的朋友們,不管區塊鏈怎麼鏈,咱先把同道中人鏈在一起,抱團取暖??
我想把這篇文章分成四個部分:
- 什麼是區塊鏈
- 為什麼我感受不到我的生活被區塊鏈所改變
- 淺談區塊鏈的技術原理
- 一個小程序來實現一個簡單的區塊鏈
對於大部分吃瓜群眾來說,其實看完前兩個部分就可以散了,茶餘飯後去忽悠忽悠隔壁老王是綽綽有餘了,?(? ? ??)。如果你跟我一樣,可能也是技術出身的,想更深入的探討探討,切磋切磋,歡迎您讀完剩餘的部分,然後通過評論或者私信和我一同去探尋區塊鏈未來的無限種可能。
那麼,現在就讓我們從第一個部分開始吧,演員就位,表演開始:
什麼是區塊鏈
首先,區塊鏈(blockchain)並不是什麼很新的概念,其實這個技術已經被提出十年了,猶記得那一年螞蟻還沒有開始競走。那這個東西提出來是為了解決什麼問題呢?如果你百度一下,很快映入眼帘的一定是幾個醒目的大字「去中心化」。Ok,那麼何謂中心化,中心化又有什麼問題呢?不放讓我先插入電影《虎膽龍威4》(該系列本人最喜歡的一部)裡面的一個片段:
這個電影講的是一個黑客黑入了美國的金融系統,試圖抹去美國所有的金融記錄,一首」回到過去「獻給所有American,但是我們的男神布魯斯威利同學怎麼會讓這件事發生呢,分分鐘教geek們做人,拯救了整個國家,again!
電影雖然是假的,可是電影反應的問題也確實是現在這樣的中心化的大環境所面臨的問題。我們從出生開始似乎就習慣把一切交給第三方的權威機構來管理。最典型的例子就是銀行,我們發工資,就是由銀行在你的賬號上做一個加法;我們去購物,就是銀行在你的賬戶上做一個減法。我轉賬給你,就是銀行先在我這做個減法,再在你那做個加法。一切看似井然有序,可是萬一有一天我們的銀行遭受到了攻擊,損失了所有的資料;又或是銀行內部某個許可權很大的人,突然變成了大魔王,篡改了一些數據。我們又能怎麼辦呢,難道真的跟電影裡面說的那樣,一夜回到解放前了么??
於是,這個時候,噹噹噹噹,我們肩負著去中心化使命的區塊鏈技術就閃亮登場了。還是拿銀行來說,除開後期賦予它的各種角色,其實它的本質就是一個賬房師傅,管理著所有人的帳。既然現在不想讓一個人有這麼大的權利,我們應該怎麼做?不是有那麼一句話么,不要把雞蛋放在同一個籃子里,解決方式就是大家一起來記賬。那麼具體怎麼操作呢?
假設現在有一幫區塊鏈技術愛好者作為我們新的記賬機制的實踐人。在開始記賬之前,每個人要做的準備工作就是備好紙和筆,就可以坐等交易的產生了。現在其中的小A想和小B做交易,小A會告訴所有的人,「我要轉十塊錢給小B」,其它的人收到了小A的請求以後,都會去看看小A的錢包裡面是否有超過十塊錢,如果確認無誤,那麼這筆交易就可以進行,於是每個人都會在自己的紙上記錄下這一條:小A給小B轉賬了十元錢。這樣就完成了一次交易,看,是不是很簡單。隨著交易的不斷進行,所有人都會在自己的紙上同步記錄下每一次的交易。這就是區塊鏈最為本質上的原理。
當交易記錄的越來越多,一頁紙很快就不夠記了,所以大家都要拿出新的紙來記錄後續的交易信息。這每一頁用來記錄交易的紙就是一個區塊,是不是沒有一點點防備,區塊這個詞就這樣出現了。那麼區塊鏈就是把這些記錄交易的區塊按照記錄的順序鏈在一起。怎麼樣,區塊鏈是不是和你想像中的那塊鏈完全不一樣,最後知道真相,你的眼淚沒有掉下來吧??
但在掏出新的紙(現在大家請叫它區塊)繼續記錄之前,我們要把前一頁蓋個章子然後歸檔。那麼需要蓋一個什麼樣的章子呢?既然是大家一起來記賬,所有參與記賬的人蓋的章子都是一樣的。這個章子有個很重要的作用就是蓋章的內容可以驗證你所記錄的這一頁內容的正確性和合法性。如果你記的帳和別家記的不一樣,那你的這頁肯定就是無效的,是要作廢的。那麼問題又來了,那如何可以驗證內容的正確性呢?首先,我們通過這一頁的內容生成一個數字,例如,我們規定取這一頁每條交易的第一個數字連成一個新的數字,假設是"1343512342",然後我們現在再規定,刻在章子上面的內容,是另一串數字,這個數字和"1343512342"的乘積的結果中需要有兩個連續的2,這個數字才有效。很顯然這個數字不能夠一眼就看出來,於是現在所有記賬的人,都開始計算這個數字,第一個算出來的人就立馬告訴其它的人這個數字是什麼(比方說88),其他的人獲得了這個數字以後,經過驗證,發現確實沒問題,就把它刻在章子上,蓋在需要封存的紙上,這一頁記錄就可以歸檔了,以後還可以隨時用88這個數來驗證這頁數字的合法性。
看到這,我想大家的表情應該是這樣的,這都是在弄啥咧??說好的說人話的呢??
我想疑問主要有兩個,第一:為什麼要搞這麼複雜的一個方法來驗證內容的正確性,為什麼不直接把"1343512342"蓋在上面呢,這多直觀方便啊?第二:既然算出來的人會把這個數字告訴其它的人,那我為啥要去算呢,等著別人給答案不就好了么?(誒,這怎麼有點像我原來考試的時候乾的事,手動捂臉)
如果你也有相同的顧慮,那麼恭喜你,你離區塊鏈的核心越來越近了。先來回答第一個問題。在區塊鏈中,第一頁算出來的數字基本只和我們記錄的第一頁的交易內容相關,即在上個例子中只和"1343512342"相關。而從第二頁以後,我們要算出這個數字,不僅和當頁的內容相關,而且還和上一頁的內容相關。比方說第二頁根據交易得出數字"9234244112",我們現在這道題就是找出一個和"1343512342"還有"9234244112"一起三個數的乘積中包含兩個連續的2的數字。每次這麼大費周章的算出這樣的一個數字,就是為了得到一份工作量證明,在這裡得敲一下黑板了,這是區塊鏈保障其公信力最為核心的概念之一。如果現在有人變成了大魔王,想改掉某條交易記錄,就得修改這條交易記錄所在區塊的蓋章,這個並不難,重新做一下數學題,算出這個數字就好,但是,以為這樣就完事了么,too simple,too naive了。我之前說過了,下一頁算出的數字也和這一頁有關呢,不僅要改掉這一頁,還得改掉下一頁的蓋章,還得改掉後面所有頁的蓋章。如果你說,那就一頁一頁算嘛,重新生成一條新鏈。但是,區塊鏈在設計的時候始終默認最長的那塊鏈為最有公信力的一條鏈。
這也就是為什麼我們需要這道很複雜的數學題了,因為當在偽造新鏈的時候,新的交易區塊還在源源不斷地疊加到最長的那條鏈上,而且其他的人都還在一起競賽解數學題呢,人多力量大,一個人想要趕上這麼多人一起解數學題的速度,也是有心無力啊。所以你偽造的這條鏈始終沒法成為裡面最有公信力的一條鏈。那麼如果,這個魔王真的很厲害,引誘了裡面大部分的人和他執行他的邪惡計劃呢??那麼,恭喜,大魔王就贏了,因為區塊鏈建立的哲理就是:
以大部分人的利益為根本利益!
這又可以稱為是51%理論,基本上,參與這個區塊鏈大部分記賬的人齊心想干成一件事情,就可以干成這件事情,因為他們足夠生成一條新的最長的最具有公信力的鏈了!這個時候,我知道你開始恐慌咯,天啦嚕,好怕怕哦,大家合力對付我怎麼辦哦!但是你別忘了,在我們現在處的這種中心化的環境下, 基本上你託管的第三方想對付你,你就沒有還手之力了。而且,港真,大家合起來對付你的時候,你是不是才真的是那個大魔王呢??
好了,我知道上面兩段話有點燒腦,大家可以反覆琢磨。接下來,我保證本文中再沒有燒腦時刻了(也許害有一丟丟..)。前文中我們解數學題,也就是得到工作量證明的過程,在現實生活中統稱為挖礦,哈哈 ,是不是到了第二個沒有一絲絲防備的時刻。現在,來解決第二個問題,既然答案會被共享,為嘛大家還挖的這麼帶勁?我們看到這裡,有一個讓你一度覺得錯過了幾十億的響亮名詞是不是還沒出現啊,來,讓我們大聲說出它的名字,比特幣!!沒錯,無利不起早,沒錢就讓我們幹活,是不是當我們傻。這就是為什麼挖礦有的時候也叫挖幣,因為你每解出這樣的一道數學題,你就會被獎勵一些比特幣。至此,埋在你心裡的疑惑是不是都豁然開朗了呢,是不是區塊鏈並沒有你想的那麼複雜呢,是不是已經摩拳擦掌要做一名礦工,去實現自己的小目標了呢????
以上就是我對區塊鏈一些基本概念的介紹了,為了解釋的方便,很多概念我都做了簡化和抽象,還望各位區塊鏈大神們手下留情,把你們的磚留到更偏技術向第三、四章的時候????。對於看熱鬧的吃瓜群眾,如果我有哪裡沒解釋清楚,或者還有什麼疑慮的,歡迎給我私信或者到評論區給我留言O(∩_∩)O
下一章,我會講為什麼螞蟻競走十年了,哦不,區塊鏈出來十年了,我還是感受不到我的生活被區塊鏈所改變了。歡迎大家繼續圍觀!!
PS: 雖然本人能力有限,但碼出這麼多字也是非常辛苦的啊,各位看官若要轉載,要標明出處或者經過我同意哦,不然我一比特幣砸洗你!
最後祝大家挖幣順利!!!!!!!
推薦閱讀:
※如何看待ico被判為非法?
※比特幣挖礦有可能存在無法滿足難度條件的情況嗎?
※區塊鏈的物理存儲形式?
※2017年下半年比特幣價格與山寨幣價格走勢會如何?
※如何投資區塊鏈項目?
TAG:区块链Blockchain | 比特币Bitcoin | 科普 |