一文透徹瞭解比特幣網路背後的執行邏輯

買賣虛擬貨幣
很多人認識區塊鏈的入門通道、區塊鏈應用鼻祖——比特幣網路,相信很多小夥伴對它都不陌生。但你真的瞭解比特幣網路背後的工作原理嗎?比特幣系統不屬於任何一個人或任何一家公司/組織,也沒有員工、老闆和股東來維持它的運轉。換言之,比特幣系統不受任何人的控制。那全世界這麼多的節點和參與者憑什麼信任它呢?又如何避免比特幣被非法複製呢?本次萬向區塊鏈小課堂將系統性地介紹比特幣的工作原理,以及比特幣的底層技術——區塊鏈在數字貨幣以外的商業應用潛力,保證“說人話”、言簡意賅、通俗易懂,誠邀大家細品~缺少銀行這類管理中心的交易系統通常會面臨以下3大挑戰:· 資產確權· 防止交易資訊造假· 確定交易記錄的可靠性和權威性
然而比特幣在沒有金融機構這樣的第三方管理中介下,卻能應對這三大挑戰。看懂比特幣如何應對這3大挑戰,自然就能理解比特幣的工作原理了。下面我們就來詳細看看比特幣是如何攻克這3大難關的。挑戰一:資產確權當有人向比特幣區塊鏈公佈一筆交易記錄時,如何確定這筆交易確實是由比特幣的所有者發起的而不是騙子在意圖造假呢?這就要用到計算機加密技術。非對稱加密比特幣採用的是非對稱加密技術,需要用到一對金鑰。經過其中一個金鑰加密的資料可以用另一個金鑰解密。使用過程中,公開一個金鑰,即公鑰,另一個非公開的金鑰就對應地成為私鑰(公鑰類似網際網路裡的賬號,私鑰類似登陸密碼)。

如何用這對金鑰來傳送資訊呢?假設《銀河護衛隊》裡的星爵想給格魯特傳送一條訊息說:“哈嘍,格魯特”,但又要確保超級大反派滅霸不能讀取這條訊息,該怎麼辦呢?我們可以讓格魯特建立一對金鑰,把公鑰交給星爵,自己保管私鑰。星爵可以用公鑰加密資訊,經過加密的資訊看上去就像在胡言亂語,只有格魯特用私鑰解密之後才能知道星爵到底說了什麼。

數字簽名

比特幣還會反向運用這對金鑰來驗證資料建立者的身份,即把金鑰看作使用者的數字簽名。我們還是請銀河護衛隊來幫演繹這個情景。假設格魯特想向星爵傳送一條訊息說“我是格魯特”,但星爵如何確定這條資訊真的來自格魯特,而不是其他人冒充格魯特發的呢?格魯特可以用私鑰加密這條資訊,星爵收到資訊後用對應的公鑰解密資訊,就可以讀取“我是格魯特”這條資訊了。而且由於公私金鑰的對應關係存在唯一性,星爵用公鑰成功解密資訊就能證明資訊確實是由私鑰持有者格魯特發出的,否則星爵是不可能解開這條資訊的。

挑戰二:防止交易資訊造假

如果有人一個月前進行了一筆比特幣交易,現在又反悔了,想悄悄撤回交易,比特幣這一去中心化系統裡又缺少權威的管理者,怎麼才能讓這種資訊造假的陰謀無法得逞呢?這就要用到雜湊演算法。

雜湊演算法

雜湊演算法可以用於驗證資料的真實完整性。任何資訊可以透過雜湊函式運算得到一個雜湊值,但是原始資訊發生絲毫改變都會讓得到的雜湊值變得完全不一樣。

假設星爵想將“12345”這串數字傳給格魯特,又擔心被滅霸中途截獲,篡改資訊。他可以算出這串數字雜湊值:FE100DDA6D28B2280B34FC228ADAB42E,然後將這串數字和他的雜湊值同時傳給格魯特。格魯特在得到這串數字後同樣進行雜湊運算,看看得到的雜湊值跟星爵告訴他的是否一致。如果一致,說明格魯特和星爵擁有的原數字是一樣的,這串數字在傳輸過程中沒有遭到篡改或發生損壞。如果滅霸悄悄干預了數字傳輸過程,把原數字串改成了“12346”,再把錯誤數字傳給格魯特,格魯特算出的雜湊值就會是:1761420899A8F0B731A2EE56A6F71567,與星爵給他的截然不同,自然就會發現資料被篡改了。

區塊鏈環環相扣

比特幣中,固定時間段內的交易會被打包成一個區塊。每個區塊裡都儲存著前一個區塊的雜湊值。這些區塊透過雜湊值前後相連,形成鏈條狀結構,也就是常說的區塊鏈。

下圖中3個區塊記錄了交易1到交易9的資訊。

如果刪除掉第一個區塊中的交易3,那第2個區塊中的雜湊值就會發生變化,證明第1個區塊中的交易資訊被篡改了。

那可不可以嘗試修改第2個區塊,讓它儲存的雜湊值呼應被篡改後的第1個區塊中的資訊呢?這也行不通。因為修改第2個區塊中的資訊後,第3個區塊中的雜湊值又無法與第2個區塊的資訊對應了,讓人一眼就能知道第2個區塊被篡改了。

由此可見,區塊鏈上的資訊是不可篡改的。隨便改動一個區塊中的資訊,就會使其與後一個區塊中的雜湊值產生矛盾。只有逐個修改之後每個區塊中的資訊才能掩護最初這個資訊篡改動作,這樣一來原區塊鏈的資訊就會被徹底改變,相當於產生了一條新鏈。

挑戰三:確定交易記錄的可靠性和權威性

假設真有人篡改了每個區塊中的資訊,建立了一條新鏈,我們應該選擇相信新鏈還是舊鏈呢?如何才能確定兩者的可靠性和權威性呢?

工作量證明(Proof of Work)

這就要用到工作量證明。電腦會將前面講過的雜湊值轉換成一串由“0”和“1”構成的數字:

0010111011110100000001000001101010010010001011101111100001001010

我們可以規定只有雜湊值以0開頭的區塊才能上鍊,這樣就有50%的概率得到一個符合要求的區塊。

0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

同理,我們若規定只有雜湊值以“00”開頭的區塊才能上鍊,概率就是25%。

00XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

如規定雜湊值必須以32個“0”開頭的區塊才能上鍊,那概率大概就只有40億分之一了。

00000000000000000000000000000000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

比特幣區塊鏈也設定了這樣的規定。但是鏈上每個區塊的雜湊值都是恆定不變的,如何確保在輸入固定資訊的情況下能得到一個符合規定的雜湊值呢?這就需要在每個區塊中隨機加入任意一個數值,也稱為“隨機數”(nonce)。

進行雜湊運算的時候要將隨機數與區塊中的資料相結合。比特幣區塊鏈中遍佈全世界的計算機要從大量的隨機數中找到那個與現有區塊結合後能算出以特定數量“0”開頭的雜湊值的隨機數,才能讓這個區塊上鍊。這個尋找隨機數的過程就是工作量證明。

這個過程會消耗大量算力,完成時間也難以估量。在比特幣區塊鏈中,平均10分鐘會產生一個新區塊。但由於該區塊鏈中的整體算力水平一直在不斷提高,為了增加找到隨機數的難度,比特幣區塊鏈也在不斷增加規定雜湊值開頭部分 “0”的個數。

最長鏈原則

工作量證明這一規則有效限制了新區塊產生的速率,那區塊數量越多、長度越長的鏈存在的時間也就越久。因此,個人是不可能製造比官方比特幣區塊鏈更長的鏈的,除非這個人擁有的算力超過該系統中其他所有人算力的總和。

基於以上原因,當系統中出現多條鏈時,比特幣使用者只認可區塊數量最多,存在時間最長的這條鏈,並相信這條鏈上的資訊是權威可靠的。

區塊鏈潛在的應用場景

除了比特幣,區塊鏈還有哪些應用前景?

我們在上文中從3方面簡要解釋了比特幣區塊鏈的工作原理:

· 用數字簽名確權比特幣
· 用雜湊驗證鏈上交易的真實完整性
· 用工作量證明避免虛假區塊上鍊

由此可見,比特幣就是一個人人都可以信任的去中心化賬本。但是這個賬本除了記錄貨幣交易資訊之外,還可以記錄其他多種資訊,讓其他機構也能實現去中心化的資訊分享。目前已在以下領域獲得應用。

防止產品造假:生產商可以給每件產品貼上二維碼,並把二維碼編號記錄到區塊鏈中,該區塊鏈就可以記錄產品的流通訊息,幫助消費者追蹤產品是否來自可靠的生產商,是否是真品。目前藥品生產行業造假情況日益嚴峻,危及病人健康,亟需這樣的區塊鏈解決方案。

防止物流資訊造假:許多供應鏈龐大複雜的公司同樣面臨資訊造假的困擾。他們可以透過打造私有鏈來追蹤供應商的物流資訊。私有鏈所有者有權決定區塊鏈的參與方,供應鏈中的中心企業可以在私有鏈中給各個供應商設定不同許可權。對於貨物從小型供應商流轉到中型供應商再流轉到大型供應商最終進入生產商手中的多層級供應鏈來說,區塊鏈有助於最佳化整個流程的管理。在這種多層級供應鏈中,小型供應商端稍有差錯就會給生產商造成損失,但區塊鏈技術可以使整個流程中的資訊變得公開透明,方便所有參與方及時發現問題解決問題。萬向區塊鏈的供應鏈金融服務平臺就是一個典型的應用案例。

促進協同合作:汽車保險理賠通常需要多家保險公司共享資料、協作解決。運用區塊鏈管理相關資訊和資料可以讓這些保險公司放心地信任鏈上資料和資訊的真實性,不需要再耗費人力檢查驗證資料和資訊,從而為保險公司降低人力成本,同時提高理賠辦理效率,提升車主滿意度。

區塊鏈商業挑戰和機遇

近年來,區塊鏈的概念被炒得很熱,其中有很多誇大的成分。對於企業來說最關鍵的是要考慮是否有能力用好區塊鏈。

另外,誰來為投資區塊鏈買單也是一個問題。企業肯定會有這樣的顧慮:憑什麼要我花錢來打造一個區塊鏈,方便行業裡其他公司合作共贏?花錢的是我,結果好處卻被大家瓜分了。這就體現了私有鏈和聯盟鏈的優勢,花錢打造私有鏈或聯盟鏈的一方有權管理這個區塊鏈,確保自身收益最大化。

儘管困難重重,但區塊鏈蘊含的商業價值還是十分可觀的。區塊鏈的特性就是讓互不信任甚至互為競爭對手的人或是企業能夠放心地交換資訊。所以要找到商業中資訊交換不暢引發的問題,對症下藥,運用區塊鏈加以解決,就能讓參與方各取所需,實現多方利益的最大化。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;