區塊鏈的四大核心技術大整理
FlipWeb數位資產仲介參考了國外網站的區塊鏈解析與核心技術的大整理,我們發現其實區塊鏈的技術分為四大類有1. 區塊+鏈 2. 分布式結構 3. 非對稱加密算法 4. 劇本腳本,小編希望透過這篇文章,讓大家更了解數位資產與區塊鏈的核心技術。
核心技術1:區塊+鏈
關於如何建立一個嚴謹數據庫的問題,區塊鏈的辦法是:將數據庫的結構進行創新,把數據分成不同的區塊,每個區塊通過特定的訊息鏈接到上一區塊的後面,前後順連來呈現一套完整的數據,這也是“區塊鏈”這三個字的來源。區塊(block):在區塊鏈技術中,數據以電子記錄的形式被永久儲存下來,存放這些電子記錄的文件我們就稱之為“區塊(block)”。區塊是按時間順序一個一個先後生成的,每一個區塊記錄下它在被建立期間發生的所有價值交換活動,所有區塊匯總起來形成一個記錄合集。區塊結構(BlockStructure):區塊中會記錄下區塊生成時間段內的交易數據,區塊主體實際上就是交易訊息的合集。每一種區塊鏈的結構設計可能不完全相同,但大結構上分為塊頭(header)和塊身(body)兩部分。塊頭用於鏈接到前面的塊並且為區塊鏈數據庫提供完整性的保證,塊身則包含了經過驗證的、塊建立過程中發生的價值交換的所有記錄。區塊結構有兩個非常重要的特點:第一,每一個區塊上記錄的交易是上一個區塊形成之後、該區塊被建立前發生的所有價值交換活動,這個特點保證了數據庫的完整性。第二,在絕大多數情況下,一旦新區塊完成後被加入到區塊鏈的最後,則此區塊的數據記錄就再也不能改變或刪除。這個特點保證了數據庫的嚴謹性,即無法被篡改。顧名思義,區塊鏈就是區塊以鏈的方式組合在一起,以這種方式形成的數據庫我們稱之為區塊鏈數據庫。區塊鏈是系統內所有節點共享的交易數據庫,這些節點基於價值交換協議參與到區塊鏈的網路中來。
區塊鏈是如何做到的呢?由於每一個區塊的塊頭都包含了前一個區塊的交易訊息壓縮值,這就使得從創世塊(第一個區塊)到當前區塊連接在一起形成了一條長鏈。由於如果不知道前一區塊的“交易縮影”值,就沒有辦法生成當前區塊,因此每個區塊必定按時間順序跟隨在前一個區塊之後。這種所有區塊包含前一個區塊引用的結構讓現存的區塊集合形成了一條數據長鏈。“區塊+鏈”的數據存儲結構如下圖所示。
“區塊+鏈”的結構為我們提供了一個數據庫的完整歷史。從第一個區塊開始,到最新產生的區塊為止,區塊鏈上存儲了系統全部的歷史數據。區塊鏈為我們提供了數據庫內每一筆數據的查找功能。區塊鏈上的每一條交易數據,都可以通過“區塊鏈”的結構追本溯源,一筆一筆進行驗證。 區塊+鏈=時間戳,這是區塊鏈數據庫的最大創新點。區塊鏈數據庫讓全網的記錄者在每一個區塊中都蓋上一個時間戳來記帳,表示這個訊息是這個時間寫入的,形成了一個不可篡改、不可偽造的數據庫。我們認為,時間戳是區塊鏈中一項偉大的技術創新,它可以證明什麼呢?
核心技術2:分布式結構——開源的、去中心化的協議
我們有了區塊+鏈的數據之後,接下來就要考慮記錄和存儲的問題了。我們應該讓誰來參與數據的記錄,又應該把這些蓋了時間戳的數據存儲在哪里呢?在現如今中心化的體系中,數據都是集中記錄並存儲於中央電腦上。但是區塊鏈結構設計精妙的地方就在這里,它並不贊同把數據記錄並存儲在中心化的一臺或幾臺電腦上,而是讓每一個參與數據交易的節點都記錄並存儲下所有的數據。
1.關於如何讓所有節點都能參與記錄的問題,區塊鏈的辦法是:構建一整套協議機制,讓全網每一個節點在參與記錄的同時也來驗證其他節點記錄結果的正確性。只有當全網大部分節點(或甚至所有節點)都同時認為這個記錄正確時,或者所有參與記錄的節點都比對結果一致通過後,記錄的真實性才能得到全網認可,記錄數據才允許被寫入區塊中。
2.關於如何存儲下“區塊鏈”這套嚴謹數據庫的問題,區塊鏈的辦法是:構建一個分布式結構的網路系統,讓數據庫中的所有數據都實時更新並存放於所有參與記錄的網路節點中。這樣即使部分節點損壞或被黑客攻擊,也不會影響整個數據庫的數據記錄與訊息更新。
區塊鏈根據系統確定的開源的、去中心化的協議,構建了一個分布式的結構體系,讓價值交換的訊息通過分布式傳播發送給全網,通過分布式記帳確定訊息數據內容,蓋上時間戳後生成區塊數據,再通過分布式傳播發送給各個節點,實現分布式存儲。
分布式記帳——會計責任的分散化(Distributedaccountability)
從硬件的角度講,區塊鏈的背後是大量的訊息記錄儲存器(如電腦等)組成的網路,這一網路如何記錄發生在網路中的所有價值交換活動呢?區塊鏈設計者沒有為專業的會計記錄者預留一個特定的位置,而是希望通過自願原則來建立一套人人都可以參與記錄訊息的分布式記帳體系,從而將會計責任分散化,由整個網路的所有參與者來共同記錄。區塊鏈中每一筆新交易的傳播都采用分布式的結構,根據P2P網路層協議,消息由單個節點被直接發送給全網其他所有的節點。區塊鏈技術讓數據庫中的所有數據均存儲於系統所有的電腦節點中,並實時更新。完全去中心化的結構設置使數據能實時記錄,並在每一個參與數據存儲的網路節點中更新,這就極大的提高了數據庫的安全性。
通過分布式記帳、分布式傳播、分布式存儲這三大“分布”我們可以發現,沒有人、沒有組織、甚至沒有哪個國家能夠控制這個系統,系統內的數據存儲、交易驗證、訊息傳輸過程全部都是去中心化的。在沒有中心的情況下,大規模的參與者達成共識,共同構建了區塊鏈數據庫。可以說,這是人類歷史上第一次構建了一個真正意義上的去中心化體系。甚至可以說,區塊鏈技術構建了一套永生不滅的系統——只要不是網路中的所有參與節點在同一時間集體崩潰,數據庫系統就可以一直運轉下去。
我們現在已經有了一套嚴謹的數據庫,也有了記錄並存儲這套數據庫的可用協議,那麼當我們將這套數據庫運用於實際社會時,我們要解決最核心的一個問題(問題三)是:如何使這個嚴謹且完整存儲下來的數據庫變得可信賴,使得我們可以在互聯網無實名背景下成功防止詐騙?
核心技術3:非對稱加密算法
什麼是非對稱加密?簡單來說,它讓我們在“加密”和“解密”的過程中分別使用兩個密碼,兩個密碼具有非對稱的特點:(1)加密時的密碼(在區塊鏈中被稱為“公鑰”)是公開全網可見的,所有人都可以用自己的公鑰來加密一段訊息(訊息的真實性);(2)解密時的密碼(在區塊鏈中被稱為“私鑰”)是只有訊息擁有者才知道的,被加密過的訊息只有擁有相應私鑰的人才能夠解密(訊息的安全性)。
簡單的總結:區塊鏈系統內,所有權驗證機制的基礎是非對稱加密算法。常見的非對稱加密算法包括RSA、Elgamal、D-H、ECC(橢圓曲線加密算法)等。在非對稱加密算法中,如果一個“密鑰對”中的兩個密鑰滿足以下兩個條件:1、對訊息用其中一個密鑰加密後,只有用另一個密鑰才能解開;2、其中一個密鑰公開後,根據公開的密鑰別人也無法算出另一個,那麼我們就稱這個密鑰對為非對稱密鑰對,公開的密鑰稱為公鑰,不公開的密鑰稱為私鑰。在區塊鏈系統的交易中,非對稱密鑰的基本使用場景有兩種:1、公鑰對交易訊息加密,私鑰對交易訊息解密。私鑰持有人解密後,可以使用收到的價值。2、私鑰對訊息簽名,公鑰驗證簽名。通過公鑰簽名驗證的訊息確認為私鑰持有人發出。
我們可以看出,從信任的角度來看,區塊鏈實際上是數學方法解決信任問題的產物。過去,人們解決信任問題可能依靠熟人社會的“老鄉”,政黨社會的“朋友”,傳統網路中的交易平臺“Paypal”。而區塊鏈技術中,所有的規則事先都以算法程序的形式表述出來,人們完全不需要知道交易的對手方是“君子”還是“小人”,更不需要求助中心化的第三方機構來進行交易背書,而只需要信任數學算法就可以建立互信。區塊鏈技術的背後,實質上是算法在為人們創造信用,達成共識背書。
核心技術4:劇本腳本
劇本腳本可以理解為一種可編程的智能合約。如果區塊鏈技術只是為了適應某種特定的交易,那劇本腳本的嵌入就沒有必要了,系統可以直接定義完成價值交換活動需要滿足的條件。然而,在一個去中心化的環境下,所有的協議都需要提前取得共識,那劇本腳本的引入就顯得不可或缺了。有了劇本腳本之後,區塊鏈技術就會使系統有機會去處理一些無法預見到的交易模式,保證了這一技術在未來的應用中不會過時,增加了技術的實用性。
一個劇本腳本本質上是眾多指令的列表,這些指令記錄在每一次的價值交換活動中,價值交換活動的接收者(價值的持有人)如何獲得這些價值,以及花費掉自己曾收到的留存價值需要滿足哪些附加條件。通常,發送價值到目標地址的劇本腳本,要求價值的持有人提供以下兩個條件,才能使用自己之前收到的價值:一個公鑰,以及一個簽名(證明價值的持有者擁有與上述公鑰相對應的私鑰)。劇本腳本的神奇之處在於,它具有可編程性:(1)它可以靈活改變花費掉留存價值的條件,例如劇本腳本系統可能會同時要求兩個私鑰、或幾個私鑰、或無需任何私鑰等;(2)它可以靈活的在發送價值時附加一些價值再轉移的條件,例如劇本腳本系統可以約定這一筆發送出去的價 值以後只能用於支付證券公司的手續費、或支付給政府等。