0
本文作者: 溫曉樺 | 2016-12-07 11:03 |
編者按:本文作者汪波,網(wǎng)錄科技聯(lián)合創(chuàng)始人、首席技術(shù)官。汪波是原美國(guó)區(qū)塊鏈公司公證通(Factom)工程副總裁,畢業(yè)于北京大學(xué),后并獲得美國(guó)密歇根大學(xué)信息管理碩士學(xué)位。他擁有20多年互聯(lián)網(wǎng)及軟件開(kāi)發(fā)和管理經(jīng)驗(yàn),曾先后在中國(guó)和美國(guó)多次成功創(chuàng)業(yè),對(duì)共識(shí)算法理論和代碼都有精深造詣,可謂區(qū)塊鏈共識(shí)算法和P2P網(wǎng)絡(luò)先行實(shí)踐者。雷鋒網(wǎng)已獲得授權(quán)。
區(qū)塊鏈所建立的是一種去中心化的共識(shí)機(jī)制,這種共識(shí)機(jī)制結(jié)合了數(shù)字加密和博弈論,使得參與者無(wú)須任何外部強(qiáng)制約束的情況下即自行形成了相互牽制的可信環(huán)境。這種可信的環(huán)境去除了中心化授權(quán)外部的管制的必要性,甚至恰恰建立在互不信任的基礎(chǔ)之上,于是這種去中心化、去信任的區(qū)塊鏈架構(gòu)所解決的正是這個(gè)充滿虛擬與匿名的網(wǎng)絡(luò)世界的信用與治理問(wèn)題。
存證證明這是一件很簡(jiǎn)單的事情,提供票據(jù)、通信記錄之類的就可以辦到,但這些并不嚴(yán)格,因?yàn)檫@些證據(jù)都是非常容易被偽造和銷毀的。要完成證明,必須依賴強(qiáng)有力的證據(jù)鏈,這個(gè)必須是任何人都無(wú)法偽造和銷毀的,或者說(shuō)偽造成本是極其高昂近乎不可能。
區(qū)塊鏈技術(shù)是從比特幣系統(tǒng)提煉出來(lái)的,具有強(qiáng)大的自保護(hù)能力的技術(shù),與其說(shuō)它是一項(xiàng)技術(shù)創(chuàng)新,不如確切的說(shuō)它是一項(xiàng)規(guī)則與技術(shù)完美結(jié)合的生態(tài)系統(tǒng)創(chuàng)新。這個(gè)生態(tài)系統(tǒng)自帶的規(guī)則與技術(shù)天然解決了保全證據(jù)公證遇到的一些根本問(wèn)題:
(1)第三方身份:區(qū)塊鏈技術(shù)保全證據(jù),是屬于在關(guān)系雙方之外,建立一個(gè)無(wú)利益的第三方身份,正如“公證”中的公證員的身份、“私證”中的見(jiàn)證人的身份。
(2)去中心化結(jié)構(gòu):區(qū)塊的基礎(chǔ)規(guī)則之一就是去中心化的結(jié)構(gòu),即不存在作為中心的硬件或管理機(jī)構(gòu),不需要也無(wú)法人為的進(jìn)行干預(yù)。保全內(nèi)容被區(qū)塊鏈無(wú)數(shù)的結(jié)合點(diǎn)共同控制,有效的防止黑客、搗蛋者們對(duì)數(shù)據(jù)本身進(jìn)行攻擊、篡改。
(3)時(shí)間戳證明:每一次存取、變動(dòng)等行為都會(huì)有一個(gè)時(shí)間戳記錄,讓每一個(gè)行為的時(shí)間點(diǎn)有據(jù)可查。
(4)證據(jù)鏈舉證:區(qū)塊鏈技術(shù)將每一次行為都保全下來(lái),對(duì)行為形成了證據(jù)鏈證據(jù),而非單點(diǎn)證據(jù),有效還原了整個(gè)行為的真實(shí)過(guò)程。
(6)低成本:雖然區(qū)塊鏈技術(shù)作用很大,但它還是一項(xiàng)低成本的技術(shù),區(qū)塊鏈技術(shù)本身對(duì)硬件的要求不高,也不需要很大的硬件投入,這點(diǎn)在它保全證據(jù)公證領(lǐng)域的推廣利用方面也是至關(guān)重要的。
上面談到的是區(qū)塊鏈在保全證據(jù)公證領(lǐng)域的天然優(yōu)勢(shì),這個(gè)優(yōu)勢(shì)可以用于公證,當(dāng)然更可以用于的私證。但從現(xiàn)實(shí)的、接地氣的作用來(lái)講,區(qū)塊鏈對(duì)私證的意義更大,這是因?yàn)槲磥?lái)越來(lái)越微小的經(jīng)濟(jì)活動(dòng)將逐步盛行,如:
P2P實(shí)現(xiàn)了幾十、幾百的貸款,淘寶實(shí)現(xiàn)了幾十塊錢(qián)的交易,這些細(xì)瑣的經(jīng)濟(jì)活動(dòng)會(huì)產(chǎn)生出大量的細(xì)瑣的名事糾紛,而大家絕不會(huì)為幾塊、幾十塊、幾百塊的事情打官司,所以快速取得證據(jù)、快速處理糾紛成了必須解決的問(wèn)題,區(qū)塊鏈將成為大眾提供這樣的存證、取證工具,用技術(shù)提高“私證”的證據(jù)效力,讓私證在非民事訴訟領(lǐng)域大展拳腳。
區(qū)塊鏈進(jìn)行存證的本質(zhì)在于區(qū)塊鏈特殊的存儲(chǔ)方式,用比特幣舉例,每一筆交易以UTXO記錄,UTXO相當(dāng)于記錄流水的方式,而不是記錄余額。記錄中必須包含持有人的簽名并被網(wǎng)絡(luò)證明沒(méi)有雙花,同時(shí)會(huì)記錄接收人的地址,而且這筆記錄將被打上時(shí)間戳記錄在區(qū)塊中。這樣確保了每一筆交易都能找到他的上一筆交易,這樣保證了在沒(méi)有第三方參與的情況下,交易是唯一的和不可篡改的。利用這個(gè)特性大家創(chuàng)造性的用來(lái)解決數(shù)據(jù)存證的問(wèn)題。
基于比特幣的存證很好的利用了比特幣網(wǎng)絡(luò)的強(qiáng)大算力以增強(qiáng)公信力。但是大家都知道比特幣每一個(gè)區(qū)塊的容量十分有限,如何將龐大復(fù)雜的數(shù)據(jù)存入比特幣的網(wǎng)絡(luò)中呢?
中本聰在比特幣中使用了默克爾樹(shù)的方式對(duì)交易的驗(yàn)證進(jìn)行簡(jiǎn)化,基本原理是將單條交易Hash,再將兩條交易的Hash組合后在進(jìn)行Hash,經(jīng)過(guò)幾次同樣的過(guò)程后形成一個(gè)根Hash,存于區(qū)塊頭中。這樣,任何樹(shù)上任何一筆交易被更改,都會(huì)造成根的不同。做數(shù)據(jù)的存證時(shí),采用同樣的方式,將文件Hash以默克爾樹(shù)的形式組織,最后將根Hash寫(xiě)入比特幣的一個(gè)可以提供80字節(jié)空間的OP_Return這個(gè)區(qū)域中。相當(dāng)于將數(shù)據(jù)存證于一筆不可篡改的交易中,從而完成了存證的過(guò)程。
這個(gè)過(guò)程我們稱為錨定,其實(shí)是將存證鏈條錨定到了比特幣上。
這通常是第一個(gè)out,后面就是他的操作代碼,fa,就是factom的東西,就是一串字節(jié),我們是怎么做呢?我們?cè)缙谧觯前岩孢M(jìn)去的東西,用一串編碼,這個(gè)編碼前面有兩個(gè)字符作為標(biāo)識(shí),比如FA,WA什么東西,表示我們自己,所以每一個(gè), 基本上有兩個(gè)或者三個(gè)字符,早期的時(shí)候都是用來(lái)標(biāo)識(shí)自己。然后,后面這部分就表示他的高度,最后面屬于他的hash,整個(gè)block hash的32位,這是一個(gè)核心層次最簡(jiǎn)單的編碼之一。最簡(jiǎn)單就是把hash直接放進(jìn)去,更復(fù)雜的80個(gè)字符,像地址空間一樣,地址空間可以做很多很多的變種,創(chuàng)建著很多的應(yīng)用。
因?yàn)檫@個(gè)OP-return比特幣并不提供標(biāo)準(zhǔn)的借口,所以我們有兩種方法去處理,一種是手工構(gòu)建一個(gè)Transaction,怎么去做錨定,我們做了很多的工作,比較簡(jiǎn)單的是先獲得UTXO,先找到錢(qián)包里面,針對(duì)地址找到?jīng)]有花費(fèi)的錢(qián),沒(méi)有花費(fèi)的地址,創(chuàng)建一個(gè)Transaction,Transaction找到一個(gè)Transaction2,為了做存證,我們搞一個(gè)簡(jiǎn)單的Transaction,創(chuàng)建一個(gè)OP-return,剩下還有一些剩余的錢(qián),在創(chuàng)建一個(gè)Transaction,做一些驗(yàn)證,把它發(fā)到網(wǎng)絡(luò)里面去,這個(gè)過(guò)程中,放到網(wǎng)絡(luò)里,并不是每一個(gè)Transaction都會(huì)被收錄到網(wǎng)絡(luò)里面去,放到鏈上面去,所以你的等到for bank所得的for bank就表示這個(gè)已經(jīng)被收錄了,被確認(rèn)了多少次了,一般來(lái)講如果確認(rèn)6次以上,那么效率就比較靠譜了,確認(rèn)了20次以上那么這個(gè)就不可逆了。這是一個(gè)錨定算法的基本東西。
利用Op_return這個(gè)區(qū)域還可以被用于發(fā)行基于比特幣的其他資產(chǎn),如彩色幣,在錨定這個(gè)我們用的最廣泛的是顏色幣,這些都是不同顏色幣公司做的,每個(gè)公司都做的非常好,在我們這可能見(jiàn)得比較少,談的比較少,可實(shí)際上在比特幣這個(gè)網(wǎng)絡(luò)上有很多實(shí)實(shí)在在的應(yīng)用在做交易,在做發(fā)行,我們看看現(xiàn)在有誰(shuí)再用這個(gè)OP-return,這個(gè)用比特幣做數(shù)據(jù)存證,也可能是數(shù)據(jù)交易上的東西。
2015年以后利用Op_return區(qū)域相關(guān)的交易持續(xù)上升,說(shuō)明這一區(qū)域正在被大規(guī)模開(kāi)發(fā)利用。
上面介紹了存證功的原理。而存證的復(fù)雜應(yīng)用意味著我們需要一個(gè)企業(yè)級(jí)的存證,這個(gè)存證應(yīng)該有如下特征:當(dāng)錨定的交易被取消,仍然能再次進(jìn)行錨定;存證的數(shù)據(jù)的原始關(guān)系必須被記錄和保留,原始數(shù)據(jù)的版本能夠保留;數(shù)據(jù)能夠便捷的檢索;交易的吞吐量和速度達(dá)到要求;能控進(jìn)行隱私和權(quán)限控制。
做存證其實(shí)很簡(jiǎn)單,你把一個(gè)東西錨定到比特幣這就完成了,但是對(duì)于一個(gè)企業(yè)還需要什么來(lái)解決呢?剛剛說(shuō)到一個(gè)很重要的問(wèn)題,可能不會(huì)被收錄,區(qū)塊鏈有些硬分叉,軟分叉,有些是在短期之內(nèi)可以進(jìn)行調(diào)整的,你在不同的節(jié)點(diǎn),不形成共識(shí)的時(shí)候,每個(gè)節(jié)點(diǎn)在臨時(shí)的在某一個(gè)塊上面建立了下面的節(jié)點(diǎn),而下面的節(jié)點(diǎn)有可能整個(gè)鏈都會(huì)換掉,這個(gè)鏈的重組是個(gè)很大的事情,我們要保證鏈?zhǔn)窃谥麈溕系?,第二個(gè)地方我們要談的是數(shù)據(jù)往往是有關(guān)聯(lián)的,舉個(gè)簡(jiǎn)單例子,交易所你要把東西放進(jìn)去的時(shí)候,你得資產(chǎn)首先對(duì)應(yīng)的屬性對(duì)應(yīng)的擁有者都是有關(guān)聯(lián)的,但是這個(gè)你放在區(qū)塊鏈這個(gè)東西是有限的東西,比特幣這個(gè)比較慢,企業(yè)級(jí)的這個(gè)比較快,這怎么解決吞吐量速度交易的問(wèn)題,其他方面考慮的比較多的,隱私、權(quán)限等等,這些屬于企業(yè)級(jí)存證需要解決的一個(gè)部分。
講幾個(gè)例子,這是我們?cè)诿绹?guó)做的幾個(gè)東西,看一下數(shù)據(jù)架構(gòu),這是一個(gè)多層次的鏈條架構(gòu),這是一個(gè)數(shù)據(jù)鏈(Encoding: ‘Wa’ (2 bytes) + block_height (6 bytes) + block_hash(32 bytes),用戶可以隨意的創(chuàng)建一個(gè)數(shù)據(jù)鏈數(shù)據(jù)鏈,上面有一個(gè)目錄鏈,這個(gè)架構(gòu)在當(dāng)時(shí)還是比較新穎的,最近這個(gè)英國(guó)出來(lái)的一個(gè)英國(guó)國(guó)家貨幣原型它就借鑒了這個(gè)架構(gòu),它的發(fā)行部和交易部是分開(kāi)的,所以這種還是有一定的價(jià)值的,當(dāng)時(shí)我們覺(jué)得還是不錯(cuò)的。
公證通:將原始文件的hash存入條目塊中,條目快被以默克爾樹(shù)的形式組織后進(jìn)入公正鏈的塊中,公正塊與比特幣錨定。
公證通還在做房產(chǎn)存證,美國(guó)房地產(chǎn)不像中國(guó)一樣,他都是需要政府給你備書(shū)的所以都是第三方來(lái)做的,所以沒(méi)有人來(lái)說(shuō)我買(mǎi)了這個(gè)房子,這個(gè)房子就一定是買(mǎi)給我房子這個(gè)人擁有的,所以就需要溯源,從它成為房子的第一天起,它是屬于誰(shuí)的,所以這種追溯帶來(lái)了很多的代價(jià)。
Blockstack:在錨定之前,將原始文件及文件的hash都進(jìn)行了存儲(chǔ),當(dāng)寫(xiě)入?yún)^(qū)塊鏈后,交易信息和公鑰將被返回,并同樣被存儲(chǔ)于數(shù)據(jù)庫(kù)中。這樣能夠方便的對(duì)文件進(jìn)行分類和查詢。
網(wǎng)錄:假設(shè)我們的互聯(lián)網(wǎng)沒(méi)有IP地址,在這么個(gè)情況下,它怎么樣轉(zhuǎn)?我存一個(gè)東西,把它存在qq云上,但是沒(méi)有IP幫我路由到那個(gè)地方去,那么怎么辦呢?它這個(gè)追溯是放在比特幣,然后對(duì)每一個(gè)域名它都有一個(gè)相對(duì)的公鑰,它在這里作為一種像建一樣,把它對(duì)應(yīng)的文件存儲(chǔ)在里面,這是一個(gè)非常簡(jiǎn)單的地址,但是可以做出很多的應(yīng)用來(lái),80個(gè)字節(jié)是可以顛倒的,這個(gè)編碼空間可以產(chǎn)生很多種不同的應(yīng)用,另外存證一個(gè)數(shù)據(jù),它會(huì)再次分級(jí),再次詮釋,這是一個(gè)域名系統(tǒng),很簡(jiǎn)單的域名系統(tǒng)。
公證通有一件事在中國(guó)是做不了的,數(shù)據(jù)在中國(guó)的控制是有一定限制的,外國(guó)人接受不了這個(gè)。所以,我和Jack(網(wǎng)錄CEO)回國(guó)做資產(chǎn)的發(fā)行交易在存證平臺(tái)。舉個(gè)簡(jiǎn)單的例子,發(fā)行一種成員卡一樣的東西,本質(zhì)是可以撥通的,當(dāng)時(shí)發(fā)行是幾百塊錢(qián),后面發(fā)行1200多塊錢(qián)靠自己的名氣。雖然這種平臺(tái)可以做很多類似的東西,但有一天我們希望在我們這個(gè)上面發(fā)行網(wǎng)紅幣。網(wǎng)紅幣的適用場(chǎng)景是和比特幣是一樣的,因?yàn)槠溆幸欢ㄌ厣?,所以有一定價(jià)值。我們開(kāi)發(fā)了不同智能合約的模板,針對(duì)不同的場(chǎng)景,根據(jù)他們所需要的東西進(jìn)行發(fā)布,這個(gè)資產(chǎn)、代幣、智能合約做一些錨定,融合比特幣、以太坊的東西。
網(wǎng)錄的存證系統(tǒng)在產(chǎn)品的初步架構(gòu)上,延續(xù)了Factom的部分思路:支持多種文件存儲(chǔ),提供存證及分布式存儲(chǔ)兩種路徑,便于源文件的保留和比對(duì)。結(jié)構(gòu)化數(shù)據(jù)可以直接寫(xiě)入?yún)^(qū)塊中,進(jìn)行真正意義上的數(shù)據(jù)比對(duì)。在區(qū)塊鏈上層構(gòu)建強(qiáng)大的查詢引擎用于存證數(shù)據(jù)的復(fù)雜快速檢索。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。