技術1:區(qū)塊+鏈
關于如何建立一個嚴謹數(shù)據(jù)庫的問題襟铭,區(qū)塊鏈的辦法是:將數(shù)據(jù)庫的結構進行創(chuàng)
新,把數(shù)據(jù)分成不同的區(qū)塊短曾,每個區(qū)塊通過特定的信息鏈接到上一區(qū)塊的后面蝌矛,
前后順連來呈現(xiàn)一套完整的數(shù)據(jù),這也是“區(qū)塊鏈”這三個字的來源错英。?
區(qū)塊(block):在區(qū)塊鏈技術中入撒,數(shù)據(jù)以電子記錄的形式被永久儲存下來,存放
這些電子記錄的文件我們就稱之為“區(qū)塊(block)”椭岩。區(qū)塊是按時間順序一個一
個先后生成的茅逮,每一個區(qū)塊記錄下它在被創(chuàng)建期間發(fā)生的所有價值交換活動,所
有區(qū)塊匯總起來形成一個記錄合集判哥。
區(qū)塊結構(BlockStructure):區(qū)塊中會記錄下區(qū)塊生成時間段內(nèi)的交易數(shù)據(jù)献雅,
區(qū)塊主體實際上就是交易信息的合集。每一種區(qū)塊鏈的結構設計可能不完全相
同塌计,但大結構上分為塊頭(header)和塊身(body)兩部分挺身。塊頭用于鏈接到前
面的塊并且為區(qū)塊鏈數(shù)據(jù)庫提供完整性的保證,塊身則包含了經(jīng)過驗證的锌仅、塊創(chuàng)
建過程中發(fā)生的價值交換的所有記錄章钾。
布比區(qū)塊鏈,利用密碼學可證明的算法構建多中心網(wǎng)絡信任,公開、透明热芹、不可篡
改贱傀、不可撤銷;多方參與信息透明共享,建立真品溯源的全程鏈式路徑,直達消費
者;
區(qū)塊結構有兩個非常重要的特點:第一,每一個區(qū)塊上記錄的交易是上一個區(qū)塊
形成之后伊脓、該區(qū)塊被創(chuàng)建前發(fā)生的所有價值交換活動府寒,這個特點保證了數(shù)據(jù)庫的
完整性。第二,在絕大多數(shù)情況下株搔,一旦新區(qū)塊完成后被加入到區(qū)塊鏈的最后剖淀,
則此區(qū)塊的數(shù)據(jù)記錄就再也不能改變或刪除。這個特點保證了數(shù)據(jù)庫的嚴謹性纤房,
即無法被篡改祷蝌。
顧名思義,區(qū)塊鏈就是區(qū)塊以鏈的方式組合在一起帆卓,以這種方式形成的數(shù)據(jù)庫我
們稱之為區(qū)塊鏈數(shù)據(jù)庫巨朦。區(qū)塊鏈是系統(tǒng)內(nèi)所有節(jié)點共享的交易數(shù)據(jù)庫,這些節(jié)點
基于價值交換協(xié)議參與到區(qū)塊鏈的網(wǎng)絡中來剑令。
區(qū)塊鏈是如何做到的呢糊啡?由于每一個區(qū)塊的塊頭都包含了前一個區(qū)塊的交易信息
壓縮值,這就使得從創(chuàng)世塊(第一個區(qū)塊)到當前區(qū)塊連接在一起形成了一條長
鏈吁津。由于如果不知道前一區(qū)塊的“交易縮影”值棚蓄,就沒有辦法生成當前區(qū)塊,因
此每個區(qū)塊必定按時間順序跟隨在前一個區(qū)塊之后碍脏。這種所有區(qū)塊包含前一個區(qū)
塊引用的結構讓現(xiàn)存的區(qū)塊集合形成了一條數(shù)據(jù)長鏈梭依。
總結區(qū)塊鏈的基本結構:“人們把一段時間內(nèi)生成的信息(包括數(shù)據(jù)或代碼)打
包成一個區(qū)塊,蓋上時間 戳典尾,與上一個區(qū)塊銜接在一起役拴,每下一個區(qū)塊的頁首都
包含了上一個區(qū)塊的索引數(shù)據(jù),然后再在本頁中寫入新的信息钾埂,從而形成新的區(qū)
塊河闰,首尾相連,最終形成了區(qū)塊鏈褥紫〗裕”這個結構的神奇之處:區(qū)塊(完整歷史)+
鏈(完全驗證)= 時間戳
“區(qū)塊+鏈”的結構為我們提供了一個數(shù)據(jù)庫的完整歷史。從第一個區(qū)塊開始髓考,到
最新產(chǎn)生的區(qū)塊為止部念,區(qū)塊鏈上存儲了系統(tǒng)全部的歷史數(shù)據(jù)。
區(qū)塊鏈為我們提供了數(shù)據(jù)庫內(nèi)每一筆數(shù)據(jù)的查找功能氨菇。區(qū)塊鏈上的每一條交易數(shù)
據(jù)儡炼,都可以通過“區(qū)塊鏈”的結構追本溯源,一筆一筆進行驗證门驾。
區(qū)塊+鏈=時間戳射赛,這是區(qū)塊鏈數(shù)據(jù)庫的最大創(chuàng)新點。區(qū)塊鏈數(shù)據(jù)庫讓全網(wǎng)的記錄
者在每一個區(qū)塊中都蓋上一個時間戳來記賬奶是,表示這個信息是這個時間寫入的,
形成了一個不可篡改、不可偽造的數(shù)據(jù)庫聂沙。我們認為秆麸,時間戳是區(qū)塊鏈中一項偉
大的技術創(chuàng)新,它可以證明什么呢及汉?
技術2:分布式結構——開源的沮趣、去中心化的協(xié)議
我們有了區(qū)塊+鏈的數(shù)據(jù)之后,接下來就要考慮記錄和存儲的問題了坷随。我們應該讓
誰來參與數(shù)據(jù)的記錄房铭,又應該把這些蓋了時間戳的數(shù)據(jù)存儲在哪里呢?在現(xiàn)如今
中心化的體系中温眉,數(shù)據(jù)都是集中記錄并存儲于中央電腦上缸匪。但是區(qū)塊鏈結構設計
精妙的地方就在這里,它并不贊同把數(shù)據(jù)記錄并存儲在中心化的一臺或幾臺電腦
上类溢,而是讓每一個參與數(shù)據(jù)交易的節(jié)點都記錄并存儲下所有的數(shù)據(jù)凌蔬。
1.關于如何讓所有節(jié)點都能參與記錄的問題,區(qū)塊鏈的辦法是:構建一整套協(xié)議
機制闯冷,讓全網(wǎng)每一個節(jié)點在參與記錄的同時也來驗證其他節(jié)點記錄結果的正確
性砂心。只有當全網(wǎng)大部分節(jié)點(或甚至所有節(jié)點)都同時認為這個記錄正確時,或
者所有參與記錄的節(jié)點都比對結果一致通過后蛇耀,記錄的真實性才能得到全網(wǎng)認
可辩诞,記錄數(shù)據(jù)才允許被寫入?yún)^(qū)塊中。
2.關于如何存儲下“區(qū)塊鏈”這套嚴謹數(shù)據(jù)庫的問題纺涤,區(qū)塊鏈的辦法是:構建一
個分布式結構的網(wǎng)絡系統(tǒng)躁倒,讓數(shù)據(jù)庫中的所有數(shù)據(jù)都實時更新并存放于所有參與
記錄的網(wǎng)絡節(jié)點中。這樣即使部分節(jié)點損壞或被黑客攻擊洒琢,也不會影響整個數(shù)據(jù)
庫的數(shù)據(jù)記錄與信息更新秧秉。
區(qū)塊鏈根據(jù)系統(tǒng)確定的開源的、去中心化的協(xié)議衰抑,構建了一個分布式的結構體
系象迎,讓價值交換的信息通過分布式傳播發(fā)送給全網(wǎng),通過分布式記賬確定信息數(shù)
據(jù)內(nèi)容呛踊,蓋上時間戳后生成區(qū)塊數(shù)據(jù)砾淌,再通過分布式傳播發(fā)送給各個節(jié)點,實現(xiàn)
分布式存儲谭网。
分布式記賬——會計責任的分散化(Distributedaccountability)
從硬件的角度講汪厨,區(qū)塊鏈的背后是大量的信息記錄儲存器(如電腦等)組成的網(wǎng)
絡,這一網(wǎng)絡如何記錄發(fā)生在網(wǎng)絡中的所有價值交換活動呢愉择?區(qū)塊鏈設計者沒有
為專業(yè)的會計記錄者預留一個特定的位置劫乱,而是希望通過自愿原則來建立一套人
人都可以參與記錄信息的分布式記賬體系织中,從而將會計責任分散化,由整個網(wǎng)絡
的所有參與者來共同記錄衷戈。
區(qū)塊鏈中每一筆新交易的傳播都采用分布式的結構狭吼,根據(jù)P2P網(wǎng)絡層協(xié)議,消息由
單個節(jié)點被直接發(fā)送給全網(wǎng)其他所有的節(jié)點殖妇。
區(qū)塊鏈技術讓數(shù)據(jù)庫中的所有數(shù)據(jù)均存儲于系統(tǒng)所有的電腦節(jié)點中刁笙,并實時更
新。完全去中心化的結構設置使數(shù)據(jù)能實時記錄谦趣,并在每一個參與數(shù)據(jù)存儲的網(wǎng)
絡節(jié)點中更新疲吸,這就極大的提高了數(shù)據(jù)庫的安全性。
通過分布式記賬前鹅、分布式傳播摘悴、分布式存儲這三大“分布”我們可以發(fā)現(xiàn),沒有
人嫡纠、沒有組織烦租、甚至沒有哪個國家能夠控制這個系統(tǒng),系統(tǒng)內(nèi)的數(shù)據(jù)存儲除盏、交易
驗證叉橱、信息傳輸過程全部都是去中心化的。在沒有中心的情況下者蠕,大規(guī)模的參與
者達成共識窃祝,共同構建了區(qū)塊鏈數(shù)據(jù)庫□饴拢可以說粪小,這是人類歷史上第一次構建了
一個真正意義上的去中心化體系。甚至可以說抡句,區(qū)塊鏈技術構建了一套永生不滅
的系統(tǒng)——只要不是網(wǎng)絡中的所有參與節(jié)點在同一時間集體崩潰探膊,數(shù)據(jù)庫系統(tǒng)就
可以一直運轉(zhuǎn)下去。
我們現(xiàn)在已經(jīng)有了一套嚴謹?shù)臄?shù)據(jù)庫待榔,也有了記錄并存儲這套數(shù)據(jù)庫的可用協(xié)
議逞壁,那么當我們將這套數(shù)據(jù)庫運用于實際社會時,我們要解決最核心的一個問題
(問題三)是:如何使這個嚴謹且完整存儲下來的數(shù)據(jù)庫變得可信賴锐锣,使得我們
可以在互聯(lián)網(wǎng)無實名背景下成功防止詐騙腌闯?
技術3:非對稱加密算法
什么是非對稱加密?簡單來說雕憔,它讓我們在“加密”和“解密”的過程中分別使
用兩個密碼姿骏,兩個密碼具有非對稱的特點:(1)加密時的密碼(在區(qū)塊鏈中被稱
為“公鑰”)是公開全網(wǎng)可見的,所有人都可以用自己的公鑰來加密一段信息
(信息的真實性)斤彼;(2)解密時的密碼(在區(qū)塊鏈中被稱為“私鑰”)是只有信
息擁有者才知道的分瘦,被加密過的信息只有擁有相應私鑰的人才能夠解密(信息的
安全性)蘸泻。
簡單的總結:區(qū)塊鏈系統(tǒng)內(nèi),所有權驗證機制的基礎是非對稱加密算法擅腰。常見的
非對稱加密算法包括RSA蟋恬、Elgamal翁潘、D-H趁冈、ECC(橢圓曲線加密算法)等。在非對
稱加密算法中拜马,如果一個“密鑰對”中的兩個密鑰滿足以下兩個條件:1渗勘、對信息
用其中一個密鑰加密后,只有用另一個密鑰才能解開俩莽;2旺坠、其中一個密鑰公開后,
根據(jù)公開的密鑰別人也無法算出另一個扮超,那么我們就稱這個密鑰對為非對稱密鑰
對取刃,公開的密鑰稱為公鑰,不公開的密鑰稱為私鑰出刷。在區(qū)塊鏈系統(tǒng)的交易中璧疗,非
對稱密鑰的基本使用場景有兩種:1、公鑰對交易信息加密馁龟,私鑰對交易信息解
密崩侠。私鑰持有人解密后,可以使用收到的價值坷檩。2却音、私鑰對信息簽名,公鑰驗證簽
名矢炼。通過公鑰簽名驗證的信息確認為私鑰持有人發(fā)出系瓢。
我們可以看出,從信任的角度來看句灌,區(qū)塊鏈實際上是數(shù)學方法解決信任問題的產(chǎn)
物夷陋。過去,人們解決信任問題可能依靠熟人社會的“老鄉(xiāng)”涯塔,政黨社會的“同
志”肌稻,傳統(tǒng)互聯(lián)網(wǎng)中的交易平臺“支付寶”。而區(qū)塊鏈技術中匕荸,所有的規(guī)則事先
都以算法程序的形式表述出來爹谭,人們完全不需要知道交易的對手方是“君子”還
是“小人”,更不需要求助中心化的第三方機構來進行交易背書榛搔,而只需要信任
數(shù)學算法就可以建立互信诺凡。區(qū)塊鏈技術的背后东揣,實質(zhì)上是算法在為人們創(chuàng)造信
用,達成共識背書腹泌。
技術4:腳本
腳本可以理解為一種可編程的智能合約嘶卧。如果區(qū)塊鏈技術只是為了適應某種特定
的交易,那腳本的嵌入就沒有必要了凉袱,系統(tǒng)可以直接定義完成價值交換活動需要
滿足的條件芥吟。然而,在一個去中心化的環(huán)境下专甩,所有的協(xié)議都需要提前取得共
識钟鸵,那腳本的引入就顯得不可或缺了。有了腳本之后涤躲,區(qū)塊鏈技術就會使系統(tǒng)有
機會去處理一些無法預見到的交易模式棺耍,保證了這一技術在未來的應用中不會過
時,增加了技術的實用性种樱。
一個腳本本質(zhì)上是眾多指令的列表蒙袍,這些指令記錄在每一次的價值交換活動中,
價值交換活動的接收者(價值的持有人)如何獲得這些價值嫩挤,以及花費掉自己曾
收到的留存價值需要滿足哪些附加條件害幅。通常,發(fā)送價值到目標地址的腳本俐镐,要
求價值的持有人提供以下兩個條件矫限,才能使用自己之前收到的價值:一個公鑰,
以及一個簽名(證明價值的持有者擁有與上述公鑰相對應的私鑰)佩抹。腳本的神奇
之處在于叼风,它具有可編程性:(1)它可以靈活改變花費掉留存價值的條件,例如
腳本系統(tǒng)可能會同時要求兩個私鑰棍苹、或幾個私鑰无宿、或無需任何私鑰等;(2)它可
以靈活的在發(fā)送價值時附加一些價值再轉(zhuǎn)移的條件枢里,例如腳本系統(tǒng)可以約定這一
筆發(fā)送出去的價 值以后只能用于支付中信證券的手續(xù)費孽鸡。