區(qū)塊鏈的信任輸入、信任輸出到底來自于哪里?
關(guān)于區(qū)塊鏈的項(xiàng)目應(yīng)用,很多人的印象停留在“可信任”和“不可更改”,但是這些可信任的前提是所有數(shù)據(jù)已經(jīng)在鏈上,如果不能保證上鏈前數(shù)據(jù)的真實(shí)性,那上鏈帶來的“信任感”可能只是助紂為孽的“弄假成真”。
為了解決信任問題,我們常能想到食品安全問題,常想到可能在食品溯源的區(qū)塊鏈應(yīng)用。
按照區(qū)塊鏈的分布式邏輯,食品上鏈后,它的所有信息不可更改,食品來源和情況一目了然??墒?,萬一上鏈的數(shù)據(jù)參數(shù)本身就是假的呢?即便保證數(shù)據(jù)是真的,食品總是要吃的,上鏈數(shù)據(jù)是他的一個(gè)說明,怎樣保證物理世界的食品和鏈上的數(shù)據(jù)說明能夠一一對應(yīng),不被人為做手腳,貨不對板呢?
這恰恰反映了區(qū)塊鏈的確定線形世界和現(xiàn)實(shí)的離散不確定世界,兩個(gè)世界形式上是有根本區(qū)別的。區(qū)塊鏈?zhǔn)鞘且粋€(gè)接一個(gè)發(fā)生的特定事件的反映,亦即一系列順序特定且具有因果關(guān)系的“交易”。區(qū)塊鏈的固有特性賦予了它不變性,但也減少了靈活性和可擴(kuò)展性。
然而,在鏈外訪問的信息并不是如此,他們可以是不連續(xù)的,因此這些信息在區(qū)塊鏈里無法被信任或使用。由于區(qū)塊鏈本身是一個(gè)去中心化系統(tǒng)的世界,區(qū)塊鏈對外界信息不了解,外面的信息如何輸入到區(qū)塊鏈里,眾多區(qū)塊鏈節(jié)點(diǎn)如何接入外部信息,是否變成中心化方案,這個(gè)都會有很多變數(shù)。
說那么久,簡單說,區(qū)塊鏈項(xiàng)目的業(yè)務(wù)核心邏輯在智能合約。
先來看近期挺多人討論的“預(yù)言機(jī)”。智能合約的參數(shù)輸入來源在預(yù)言機(jī)。預(yù)言機(jī)就是區(qū)塊鏈?zhǔn)澜珂溄游锢硎澜缗c信息世界的橋梁,一邊是鏈內(nèi),一邊是鏈外。
區(qū)塊鏈?zhǔn)澜绾同F(xiàn)實(shí)世界的不相兼容,使得我們必須提供一個(gè)預(yù)言機(jī)才能使他們之間的雙向溝通成為可能。
比特幣core組成員Peter Todd提及:“從智能合約討論中得到的結(jié)論:沒有人理解智能合約究竟是什么,如果我們要實(shí)施智能合約,應(yīng)該需要預(yù)言機(jī)。”
預(yù)言機(jī)之所以可以提供一個(gè)可證明的誠實(shí)從外部世界安全獲取信息的能力,是依賴于TLS證明技術(shù)(TLSnotary)。除此以外,預(yù)言機(jī)(oracle)還提供了其他兩種證明機(jī)制:Android SafetyNet證明、IPFS大文件傳送和存儲證明。
在整個(gè)傳輸中,TLS的master key可以分成三個(gè)部分:服務(wù)器方、受審核方和審核方。在整個(gè)流程中,互聯(lián)網(wǎng)數(shù)據(jù)源作為服務(wù)器方,預(yù)言機(jī)(oracle)作為受審核方,一個(gè)專門設(shè)計(jì)的,部署在云上的開源實(shí)例作為審核方,每個(gè)人都可以通過這個(gè)審計(jì)方服務(wù)對預(yù)言機(jī)(oracle)過去提供的數(shù)據(jù)進(jìn)行審查和檢驗(yàn),以保證數(shù)據(jù)的完整性和安全性。
目前,預(yù)言機(jī)有三種類型,分別是軟件預(yù)言機(jī)、硬件預(yù)言機(jī)及共識預(yù)言機(jī)。
它們的數(shù)據(jù)從哪來?
△1.軟件預(yù)言機(jī),即通過API從第三方服務(wù)商或者網(wǎng)站獲取數(shù)據(jù),來作為智能合約的輸入數(shù)據(jù)。最常用的如天氣數(shù)據(jù)、航班數(shù)據(jù)、證券市場數(shù)據(jù)等等。
△2.硬件預(yù)言機(jī),通常表現(xiàn)形式是物聯(lián)網(wǎng)上的數(shù)據(jù)采集器。 比如前面舉例的溯源系統(tǒng),安裝在各個(gè)設(shè)備上的傳感器就是硬件預(yù)言機(jī)。區(qū)塊鏈技術(shù)在物聯(lián)網(wǎng)領(lǐng)域的廣泛應(yīng)用將催生出大量的“硬件預(yù)言機(jī)”,“硬件預(yù)言機(jī)”的核心技術(shù)與區(qū)塊鏈無關(guān),表現(xiàn)形式更多是傳感器和數(shù)據(jù)采集器。
△3.共識預(yù)言機(jī),區(qū)別于前面兩種預(yù)言機(jī)的中心化,通常又被稱為去中心化預(yù)言機(jī),這種預(yù)言機(jī)通過分布式的參與者進(jìn)行投票。
由于預(yù)言機(jī)的存在,其實(shí)對區(qū)塊鏈的更精準(zhǔn)的定義應(yīng)該是:“維持信任的機(jī)器”。區(qū)塊鏈本身并不產(chǎn)生信任,信任的輸入來自于“預(yù)言機(jī)”。
預(yù)言機(jī)作為區(qū)塊鏈的基礎(chǔ)設(shè)施,仍在發(fā)展中,面對物理世界多樣化情景的處理仍是一個(gè)主要的挑戰(zhàn),從某種程度上,這縮小了區(qū)塊鏈的適用范圍,成了區(qū)塊鏈落地的瓶頸。
這就不難理解,為什么在當(dāng)前公認(rèn)最適合區(qū)塊鏈的三個(gè)領(lǐng)域是金融審計(jì)、內(nèi)容版權(quán)以及游戲。因?yàn)檫@三個(gè)領(lǐng)域所受外部變量的影響是最小的,也是最容易上鏈的數(shù)據(jù),真正可做到誕生即上鏈。
劃重點(diǎn)!
信任的輸入來自于“預(yù)言機(jī)”,那么信任的輸出來自哪里呢?答案是:智能合約!
事實(shí)上,智能合約概念的出現(xiàn)時(shí)間遠(yuǎn)在區(qū)塊鏈興起之前。最初由法學(xué)家尼克·薩博在1995年提出。他提出智能合約的定義是:“一個(gè)智能合約是一套以數(shù)字形式定義的承諾(promises) ,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。”
簡單說,智能合約是一個(gè)在計(jì)算機(jī)系統(tǒng)上,當(dāng)一定條件被滿足的情況下,可以被自動執(zhí)行的合約。
既然早在上世紀(jì)90年代已經(jīng)提出智能合約,為何至今才有實(shí)現(xiàn)的可能?重點(diǎn)就在于這需要是一個(gè)可信任的可編程合約,于是直到區(qū)塊鏈技術(shù)興起,智能合約的實(shí)現(xiàn)才成為可能。
智能合約之所以可以稱為智能合約,肯定于傳統(tǒng)合約不同。
人們之所以要建立合約,主要原因在于他們不能完全信任合作的雙方,簡單的口頭協(xié)議不具備法律效益,只有合約才能證明雙方之間的交易是合法的。
傳統(tǒng)合約的語義是由兩個(gè)要素組成:一個(gè)是操作語義,用來對合約操作進(jìn)行解釋;另一個(gè)是指稱語義,是對合約的非操作性法律進(jìn)行解釋。智能合約通常是將操作語義部分進(jìn)行編程,將合約雙方的精確行動進(jìn)行解釋,至于指稱語義,智能合約并不囊括此項(xiàng)內(nèi)容。
區(qū)塊鏈的項(xiàng)目的業(yè)務(wù)邏輯往往就寫在智能合約上,所以說智能合約是區(qū)塊鏈項(xiàng)目的業(yè)務(wù)邏輯核心。
可能有人會混淆智能合約與電子合同的概念,二者的共同點(diǎn)在于同為數(shù)字載體下的合約,區(qū)別則在于智能合同可編程,電子合同則不可,前者無疑在適用范圍和靈活性上高出后者不少。
智能合約作為新生事物,由于某些程度上與電子合同的類似性,電子合同在法律實(shí)踐上的成功經(jīng)驗(yàn),將為智能合約在法律適用之路上提供不少便利。
盡管區(qū)塊鏈的概念自上個(gè)世紀(jì)便已提出,但實(shí)際上到2011年比特幣***出現(xiàn),區(qū)塊鏈才真正開始被重視。就發(fā)展階段而言,區(qū)塊鏈還是個(gè)嬰兒,還在成長。最初的比特幣里是沒有智能合約的。那時(shí)的比特幣只是一個(gè)點(diǎn)對點(diǎn)的支付手段。而在隨后的發(fā)展中,智能合約開始被人重視,引入到區(qū)塊鏈,隨后又提出要與現(xiàn)實(shí)結(jié)合,于是預(yù)言機(jī)又加入進(jìn)來??梢?,這是一個(gè)不斷發(fā)展的過程。
不可否認(rèn),智能合約和預(yù)言機(jī)目前都有著各種各樣的問題,在落地方面也受著各種詬病,但正如7年前誰也不會想到比特幣從一個(gè)只是小眾極客圈里的產(chǎn)物變成世界性話題一樣,誰知道智能合約和預(yù)言機(jī)以后能發(fā)展到什么地步呢?今天的我們或許都是歷史的見證者,我們在見證未來。