區塊鏈,是 " 比特幣 " 的核心技術之一。
比特幣的發明初衷,是為打破以銀行為中心的傳統貨幣體系,開創一種 " 去中心化的 " 新型貨幣體系 。
那銀行是怎麼運作的呢?
比如 A 付 100 人民幣給 B,銀行就在 A 的賬戶上,標一個:" 付瞭 100 人民幣給 B,餘額還剩 1900 人民幣 ",在 B 的賬戶上,標一個:" 收到 A 的 100 人民幣,餘額增至 600 人民幣 ",就可以瞭。
簡單講,貨幣交易的過程,就是一個記賬的過程。
之所以通過銀行,是因為他權威、可信,不會透過作弊,擅自給誰標個:" 收到馬雲 1 個億,餘額增至 1 個億零 3 毛。"
但是,銀行的記賬之所以能不出錯,也是借助瞭一些外力的。比如,你透過網銀付款,銀行怎麼確信就是你付的呢?還是借助瞭密碼、驗證碼等計算機、互聯網方面的技術。
既然如此,為什麼不一步到位,幹脆用更厲害的計算機、互聯網方面的技術,一舉取銀行而代之呢?
沒錯,中本聰就是這麼想的!
中本聰來瞭個 " 群狼戰術 ",試圖集全球互聯網上成千上萬臺計算機的力量,與擁有專門人力、物力配置的銀行,拼上一拼。
群狼合力,如何統一協調,成瞭最大問題。成立一個專門的機構,統一管理?那就違反瞭 " 去中心化 " 的初衷,等於又走瞭銀行的老路。
於是,★ " 區塊鏈 " ★技術,便應運而生瞭:
計算機 " 群狼 " 中的某一臺,收到 A 發來 " 付 100 塊錢給 B" 的請求後,他需要先確認兩個問題,然後才能決定是否執行請求,幫 A 記這個賬。
①這個請求,是否真是由 A 發出來的。這個簡單,計算機領域已經有一種叫做 " 數字簽名 " 的技術,隻要 A 能提供某個隻有他自己才知道的 " 私鑰 ",計算機就能夠確定——這個請求確實是 A 發出來的。
② A 的請求,跟目前整個記賬系統上的所有既存信息,是否矛盾。比如,系統上顯示 A 的餘額隻有 99 塊,A 卻請求支付 100 塊,這肯定不行。
問題②怎麼解決,相對麻煩一點。因為每臺計算機,都屬於整個系統的一部分,一旦出現矛盾,誰都認為自己是 " 目前整個記賬系統上的所有既存信息 " 之一,要求別人 " 不許和我矛盾!" 那究竟以誰為準?
比如,A 在餘額還有 100 塊錢時,請求支付 100 塊錢,去買什麼什麼。緊接著,他卻又請求再支付 100 塊錢,還要再買另外什麼什麼。由於存在網絡延遲之類的問題,計算機們難以確定,這兩條請求,究竟哪條在前。但反正,在後的那條,肯定是無效的。因為前面既然已經付瞭 100,餘額已經用光瞭,哪還能執行在後那條 " 再支付 100" 的請求?
" 區塊鏈 " 技術怎麼解決這個問題呢?簡單粗暴:做題定勝負——
先把兩條請求都記錄在案,但不要忙於確認。
系統出一些公費,雇甲、乙兩人來對賭——分別押註那兩條自相矛盾的請求。然後讓兩人分別運用自己計算機的算力,比賽做題。誰計算機算力強,而且運氣好(解題成敗具有一定的隨機性),先把題解出來瞭,這筆公費就歸他瞭。同時,他押註的那條請求,也就被系統 " 確認 " 瞭,另外一條請求呢,就相應地 " 作廢 " 瞭。這就是所謂 " 挖礦 "。
如果甲、乙兩人旗鼓相當,不分高下,怎麼辦?那就再雇丙、丁兩人,接著比。丙跟在甲後面,丁跟在乙後面。如果丙贏瞭,丙和他前面的甲,就都贏瞭。就那最終 " 確認 " 的,就是當初甲押註的那條請求。如果丁贏瞭,丁和他前面的乙,就都贏瞭。就那最終 " 確認 " 的,就是當初乙押註的那條請求。
如果丙、丁又打平瞭呢?那就再雇戊、己,重復上述過程。總不可能,永遠都打平吧。
剛才舉的是簡化的例子,現實中,那些記賬請求,往往是幾條並在一塊,一起處理的。所以,可以把這些並在一塊的記賬信息,叫做一個個 " 區塊 "。而新請求的記賬信息,總是不能違逆前面既存的記賬信息,隻能通過礦工們的 " 做題比賽 ",押註 " 確認 " 過後,跟在既存信息的後邊。
這樣一來,許多的信息 " 區塊 ",按 " 被確認 " 的先後順序,連接在一起,不就成瞭 " 區塊——鏈 "。
從本質上講," 區塊鏈 " 就是:一種透過精心設計的計算機互聯網協作機制,確保新登記信息與整個系統龐大的既存信息之間,不發生矛盾,進而使整個系統保持驚人的 " 整體一致性 ",的一種信息技術。
比特幣世界的 " 計算機群狼 " 們,要保證步伐一致,全靠 " 區塊鏈 " 這根鎖鏈,死死拴著啊。