5分鐘,快速認識「區塊鏈」這個鬼!

也許你不怎麼了解比特幣、區塊鏈之類的黑科技,但也會經常在科技媒體的頭條看見這樣的字眼吧。同VR/AR,人工智慧一樣,它也是2017最熱門的辭彙之一。之前在美國的一個舍友,19歲時創業項目是基於區塊鏈的。但一起生活了半年,我也沒徹底搞懂區塊鏈到底是怎樣運轉的。

前兩天,他facebook上推給我了一篇文章,終於讓我下定決心學習區塊鏈。下面是我,一個技術基礎薄弱的產品經理所理解的區塊鏈。看到的文字都太過於技術,很難讀懂,而我想用最平易近人的語言講出來,也加深自己的理解。如果你不想落伍,就認真閱讀下面的文字吧。

區塊鏈:又難又簡單

「For every complex problem there is an answer that is clear, simple, and wrong.」?—?H. L. Mencken

與大部分你之前的讀到的文章不同,上來就先給區塊鏈下一個定義。這次,我想先來說明白它可以幫我們解決的問題。

假設你是一位在校大學生,暑假出國旅行卻不幸丟了身上的現金,這是你發信息給爸爸:

「爸,我錢丟了,可以轉我1萬塊應急嗎?」「別擔心,正在轉賬,在外照顧好自己…」

然後爸爸打電話給自己的秘書,託付她;

「請轉1萬元現金給我的兒子。」「好的,老闆。」

秘書打開了爸爸的賬戶,從他的存款中轉出了1萬元給兒子。銀行中就多了這樣的一筆交易:

故事暫停一下,我們來看看剛才發生了什麼。爸爸和兒子都將自己的金錢和信任給了第三方——銀行。這裡並沒有涉及任何的實際的金錢交換,有的只是線上信息的記錄。而當他們提交了這個記錄後,爸爸、秘書和兒子都失去了對這個信息的控制。

這就是目前銀行系統中最大的問題。為了建立人與人之間的信任,我們依靠第三方為我們做記錄,主持公道。你可能現在會問:

依靠一個值得信賴的第三方,例如銀行,有什麼問題呢?

問題就是,銀行的數量有限,事實上,是太少了。如果真的黑客想對銀行發起攻擊,引起社會的混亂,他們只需要讓一個人,或者一個組織腐敗就好了。

如果有人想搞腐敗,刪掉了某月公司特定的幾筆交易信息該怎麼辦?如果你的秘書也想在轉賬的時候撈一筆,私自多提了1萬怎麼辦?如果銀行某位職員看到你的賬戶流水很大,私自塗改怎麼辦?

總而言之,多年來,我們都將自己的雞蛋放在一個籃子里。所以,有人就在想:

我們可以設計一個消除中間人(銀行)的新型交易系統嗎?

為了回答這麼問題,我們應該學會問自己更加深入的問題:

通過銀行轉賬的意義到底是什麼呢?我們是否可以自己保留交易的記錄並自我保護起來?

如果你認真讀到了這裡,應該就已經理解區塊鏈的用途了。它就是為了幫助我們自己更好的保護並保管交易信息的,排除了第三者的干擾和不確定性。

下面,我們就來看看區塊鏈到底是怎樣運轉的。

首先,區塊鏈的應用也是有前提的,它需要社會中有足夠多的人相信這項科技,並且不想在交易中引入第三方。只有這樣一群人,才可以維護各自的賬戶信息和安全。

「It might make sense just to get some Bitcoin in case it catches on. If enough people think the same way, that becomes a self-fulfilling prophecy.」?—?Satoshi Nakamoto in 2009

那麼問題來了,多少才算足夠多呢?

不多,最少3個人就夠了。我們舉個例子吧,有10個人都不再相信銀行或其他第三方機構,於是互相達成協議,他們24小時互相擁有其他9個人的賬戶的進出信息(以數字密鑰的形式),但並不包含賬戶主體的隱私細節,例如流水金額,姓名或者密碼等。

1. 始於一個空白筆記本

假設這10個人每人都擁有?一個空白筆記本,隨著時間的推進,在每個人的筆記本上,都會開始寫入交易的信息,從而完成讓每個人都參與資料庫的記錄的目的。

2. 交易進行時

當交易發生的時候,事先達成一致的10個人,都會在自己筆記本上進行記錄。例如,A想轉帳100元給B,那麼A也需要告訴其餘8個人,「我準備向B轉賬100元,請大家在自己的筆記本上記錄一下,多謝了!」

於是,其餘8個人回去檢查A的賬戶餘額里是否有足夠的錢可以轉給B,如果有,交易會被執行,所有人也會在自己的筆記本上記錄著交易的信息。

慢慢的,這10個人中有更多人需要進行交易。而當他們每個人進行交易時,都會告訴其餘的9個人,而這些交易信息都會記錄在每個人的筆記本上。這時會出現筆記本當前頁寫滿的情況,這是我們需要重新翻一頁,繼續記錄新的交易信息。

3. 交易信息,翻倍增長

但是每當我們再翻到新的一頁時,要使用之前大家達成一致的密鑰,對寫滿的這一頁信息進行封裝保護(專業叫法是mining)。封裝之後,也就再也沒有人可以對之前的信息進行修改了。過去是銀行、支付寶等第三方對交易信息進行保護和記錄,而現在我們自己保護著自己的交易記錄和安全。

那麼問題來了,我們是如何封裝每一頁的記錄呢?

首先,你得有一個像電影《風語者》里一樣的機密編譯機。二戰時,美國是用極少人懂的土著語言去翻譯傳遞英語的戰爭信息,避免被日本人破譯。這個也一樣。

我們把之前記錄好的交易信息傳遞到這個神奇的機器(專業叫法是Hash Function)里,那邊它馬上就會編譯出來一串沒有人能看懂的字元。

例如,你原本的信息發送了一個「6」,經過編譯機保護後的信息記錄就變成「uo5i9」,而你永遠無法知道「6」為什麼會轉譯為「uo5i9」。

?那如果知道右邊編譯好的字元,是否可以推出輸入的數字信息呢?

理論上,是可以的。例如,我們在右邊得到編譯好為「888c4i」的字元,我們可以嘗試用數字挨個試一遍,運氣好的話,你可能在幾萬次嘗試後就找到編碼為「888c4i」的數字。所以我們得出一個結論:

?如果我們知道兩邊的字元,我們可以很快的驗證它的編譯是否正確。但是只知道編譯後的字元,你幾乎無法得出之前輸入的信息數字是什麼。

那這些編譯機是如何封裝一頁的記錄呢?

像之前描述的那樣,我們還會有一個原數字信息,例如「25637」,你可以把它放在一個盒子里。假設,我們在右邊得到編譯為「888c4i」的字元。與此同時,左側多了一個封裝盒,現在你可以說出,怎樣的封裝字元,才可以得到「888c4i」嗎?

你只能通過嘗試所有的字元組合,運氣好的話,幾萬次後,你終於得到了正確的字元,假設它是「562981」,那麼我們有了結論:

原信息「25637」 + 封裝「562981」 = 「888c4i」

那麼「562981」,也就成了「25637」的封裝碼(Proof of work),記錄在這一頁信息上。只要封裝碼還在,你就不能進入去修改原信息。因為就算當「25637」的源信息中的一項發生改變,你也無法得出最終的「888c4i」的編解碼了。

循環上述的封裝流程,我們就得到了一本封裝保護完成的筆記本,記錄著每個人的交易信息。

回到最初我們網路中的10個達成一致的用戶,因為每個人都記錄了所有人的交易信息,所以他們應該是同時用完了一頁記事本的。與此同時,所有人會同時開始計算封裝碼,因為所記錄的信息是一致的,所得到的封裝碼也應該是一樣,當有人率先計算出了封裝碼,他就會分享給網路中的其他人。

如果這個封裝碼不適用於某個人的記錄的信息,那網路中這個人可能是記錄了錯的信息,或是,他對源數據做了手腳。

這時,出錯的這個人,如果現繼續與這個世界做交易,只能用大家都一致適用認可的那個封裝碼,把自己記錄錯誤或作弊的信息修改成正確的。否則,他將被系統剔除。試想當全世界都使用這種交易方式的時候,系統的剔除等於剝奪了一個人使用金錢的能力。

你可能會問:如果計算出的封裝碼會分享給網路中的所有人(10個),那麼為什麼每個人要浪費時間精力去算呢?

人類太聰明了,於是在這裡就引入了一個新的刺激點——比特幣。在區塊鏈的應用中,每當用戶做出貢獻,完成計算封裝碼等任務,就會獲得一些獎勵。假設,C用戶第一個計算出了正確的封裝碼並分享給了大家,他就獲得1個比特幣的獎賞,而這個貨幣,也不會減少網路中其他人的存款。

當足夠多的人都擁有了比特幣,它的價值也就慢慢凸顯出來,讓更多人也想要比特幣來直接進行交易。適當的獎勵機制,讓每一個人的管理系統都跑了起來,還會吸引更多人進入這個新系統、新機制,而當越來越多的人開始使用區塊鏈時,整個系統會龐大到無法想像。

所以,回到最初的例子,你筆記本上的每一頁就是一個「區」(Block),而你由多個「區」組成的筆記本,就是一個「鏈條」(Chain),與網路中所有人相互連接、保護著。一起,他就叫做區塊鏈 Blockchain。

但在結束這篇文章之前,你還需要了解到2個區塊鏈的特性。

1. 更加緊密的連接和保護

我們之前說過,一個編解碼需要「源信息」+「封裝碼」,而每頁記錄完成後,只會核對當前頁面的封裝碼,看大家的是否一致。那麼,如果我們記錄到了第10頁,我回去修改了第二頁的封裝碼,並給他計算一個假的編解碼,那我不就可以作弊了?

並不能。事實上,區塊鏈需要三個條件,才可以計算出編解碼:

「源信息」+「當前頁封裝碼」+「上一頁的封裝碼」

所以每一頁新的封裝碼,事實上會受到上一頁封裝碼的控制,這樣就將筆記本內所有頁面的信息連接保護起來了。如果你想作弊,你就需要修改過去所有記錄的封裝碼和編解碼,在區塊鏈中會顯示你獨自計算了一個奇怪的分支。而一個人計算的速度,永遠也趕不上網路中其餘9個人一起努力的速度。所以那些非常短的分支,一定是一個作弊的鏈條。

區塊鏈中,鏈條越長越可靠。

2. 多人開始作弊作假怎麼辦?

一個人的計算速度是沒有辦法趕上9個人的計算速度,那麼問題來了,如果網路中6個人商量好一起作弊怎麼辦?它被稱為「51% Attack」。

如果這樣的事情真的發生,那麼區塊鏈就無法正常運轉了。這時區塊鏈唯一的弱點,它是建立在:假設社會上的絕大部分人是誠實可信的。我們在了解某個科技的優勢後,也應該搞清楚它的條件和弱點。

這就是目前我知道的所有有關區塊鏈Blockchain的東西了。如果你身邊有人不知道區塊鏈是什麼,你就有乾貨可以分享給他了。以上提到的數字字元,都是我在極端簡化下舉例的,事實上區塊鏈比這個要複雜太多。

如果你想在每周末收到更多有價值的原創文章和有趣的想法,請訂閱我的Newsletter:eepurl.com/bLsj7z

推薦閱讀:

互金平台「搶」上市,是為了規避監管嗎?
經濟L型走勢,P2P平台加速風險暴露與分化
大數據「討債」,到底是門什麼生意?
他們正在扒掉P2P平台底褲,再補上一刀?
餘額寶規模破萬億,對銀行意味著什麼?

TAG:区块链Blockchain | 比特币Bitcoin | 互联网金融 |