作者:啟明星辰ADLab
公眾號:https://mp.weixin.qq.com/s/W42B0oVm1NAR2FZpNaKPvw
2019年10月24日,中共中央政治局就區塊鏈技術發展現狀和趨勢進行第十八次集體學習,會議強調:“區塊鏈技術的集成應用在新的技術革新和產業變革中起著重要作用。我們要把區塊鏈作為核心技術自主創新的重要突破口,明確主攻方向,加大投入力度,著力攻克一批關鍵核心技術,加快推動區塊鏈技術和產業創新發展”。
近日,浙江大學教授、中國工程院院士陳純就這個問題作了講解,并談發表意見和建議。可以預見,區塊鏈技術和應用在我國的推進將會帶來巨大的變革,顯現在宏觀和微觀的各個方面。陳純院士演講的《聯盟區塊鏈關鍵技術與區塊鏈的監管挑戰》核心觀點包括:
-
聯盟鏈底層平臺的核心是性能、可用性和安全隱私;
-
鏈上鏈下數據協同技術是未來發展的一個重要方向;
-
區塊鏈的監管技術是區塊鏈健康和持續發展的關鍵。
啟明星辰ADLab認為,區塊鏈的系統的可用性問題是涉及功能實現性的問題,而實現性問題本質是樸素的安全性問題,并針對上述第二點“鏈上鏈下數據協同技術”進行持續研究。當前,鏈上鏈下數據協同技術并不完善,導致區塊鏈無法形成閉環,是限制區塊鏈應用場景的主要阻礙。
例如今年的雙十一購物節,電商平臺爭先把區塊鏈系統應用到商品的防偽和溯源中,但消費者仍然有問題:“商品上區塊鏈就能避免假貨嗎?”、“區塊鏈上的商品信息一定是真實上傳的嗎?”,我們給出的答案很可能是“否”,本文將從技術角度詳細解讀區塊鏈鏈上鏈下數據協同的問題。
區塊鏈能且僅能保證鏈上數據的完整性
區塊鏈本質上是一個點對點網絡上的分布式賬本數據庫。區塊鏈系統最顯著的特征是去中心化、不可篡改,其中不可篡改的特性依賴于密碼學的單向算法,這里的單向算法即為哈希算法(hash),也稱為摘要算法或隨機散列算法。哈希函數具有三個特點:
-
原像不可逆:知道輸入值,計算出哈希函數是容易的;知道哈希值,沒有辦法計算原來的輸入值;
-
抗碰撞性:尋找兩個能夠輸出同樣哈希值的不同輸入在計算上是不可行的;
-
難題友好性:沒有便捷的方法去產生一個滿足要求的哈希值。
區塊鏈有一串鏈接的數據區塊,其中包含原始數據或交易記錄,還包括數據的哈希函數值和時間戳。每一個區塊包含上一個區塊頭的哈希,因而每一個區塊保證上一個區塊數據的完整性,從而形成鏈。
](https://images.seebug.org/content/images/2019/11/18e7f0a3-0703-403d-958e-516e5870199e.png-w331s)
我們可以獲得一條結論:區塊鏈能夠保證區塊數據的完整性。
然而,區塊鏈系統不可篡改的特性是通過哈希算法在鏈上作用于區塊數據來保證的,因此可以得到一條非常重要的區塊鏈的本質特性:區塊鏈能且僅能保證鏈上數據的完整性。
如此一來,要想把區塊鏈系統運用到線下生活中,鏈上鏈下數據的一致性就變得非常重要。這里有一些比較普遍的錯誤認識,我們可以再舉一些例子來論證這個問題:
“假如你買到了一個西瓜,在區塊鏈技術下,你可以知道從果農的生產到流通環節的全過程。在這其中有政府的監管信息、有專業的檢測數據、有企業的質量檢測數據等。”
這是一個商品來源可追溯的問題。對于這樣的一個系統,攻擊方式可以包括:
-
將不符合線下實際情況的數據寫入區塊鏈:果農聲稱西瓜不打農藥,然后將“不打農藥”的信息寫入區塊鏈,然后給西瓜打上農藥。
-
冒充區塊鏈與線下實體對應的標識符:有西瓜A,區塊鏈系統上的UID為A,經過了完整合規的生產到流通的全過程,并寫入區塊鏈;有任意來源的西瓜B,銷售人員聲稱其UID為A,然后進行銷售。
可以看到,區塊鏈系統對鏈下實體的完整性無能為力。針對這個案例,一個可能的補救方法是全程錄像,然后將錄像文件的哈希值作為數據寫入區塊鏈,消費者在購買西瓜時,可以通過對比錄像文件來確定這個西瓜是可追溯的健康西瓜。但需要注意的是,在這樣的一個補救方案中,區塊鏈也只是保證了錄像文件的完整性,而有錄像文件作為對應,消費者也并不太需要區塊鏈就能追溯這個西瓜。
區塊鏈的本質決定了這一軟肋的存在。區塊鏈的線下問題無法解決,是因為線下實體不能支持上傳下載的操作,可以上傳下載的只有數據;而在物聯網的終端,數據上傳下載的鏈路無法被區塊鏈保護。
當前的解決方案:預言機
為了將區塊鏈技術應用到線下,例如將飛機延誤險、貨幣兌換等業務上鏈,區塊鏈需要具有訪問鏈下數據的能力,現有的解決方案被稱為預言機(Oracle)。預言機是20世紀中葉數學家圖靈提出的,預言機具備圖靈機的一切功能,并額外擁有一種能力:可以不通過計算直接得到某些問題的答案,這個過程叫做Oracle。如果要解決的問題是怎樣計算都無法得到結果的,那么這個情況下圖靈機沒有用處,只有預言機才能完成任務。
預言機在區塊鏈上的典型代表就是以太坊公鏈上的Oraclize服務。Oraclize獨立于區塊鏈系統之外,是一個中心化的第三方,為區塊鏈提供數據訪問服務。Oraclize可以提供的數據訪問服務包括隨機數、URL訪問、IPFS等。其架構如下圖所示:

假如有用戶通過區塊鏈系統購買了飛機延誤險,飛機延誤后用戶發出出險請求,Oraclize可以通過訪問智能合約中約定的URL詢問一個或若干權威機構,這個機構可能是一個網站的API接口,如果訪問結果證明飛機確實延誤,則Oraclize在智能合約觸發出險賠償的操作,并通過區塊鏈進行支付。
Oraclize具有很明顯的中心化特點,這體現在:
-
O- raclize在公鏈上是單一或若干節點,被認可的節點才會成為Oraclize節點;
-
Oraclize的工作狀態不受區塊鏈控制,區塊鏈不能保證Oraclize的正確性,但Oraclize會影響區塊鏈的數據;
-
智能合約中約定Oraclize查詢一個或若干由參與各方同意的權威機構,該機構返回的數據結果影響智能合約的執行結果。
上述中心化的特性使預言機的安全性問題更加突出。針對Oraclize的安全性問題,啟明星辰ADLab在安全研究中挖掘出CVE漏洞并發現攻擊事件,并在2018年發表的《以太坊智能合約多個攻擊案例分析》詳細介紹了這方面的內容。
另一方面,盡管預言機的中心化特性帶來了各種問題,堅持對預言機去中心化也是不合乎現實的。從設計上來說,公鏈不應賦予其上每一個節點以可編程的網絡訪問的能力,否則由于網絡延遲、節點處理速度等各種原因,會導致每個節點獲取的數據不同,使區塊鏈的共識機制失效;甚至,智能合約可以被當作發起DDoS的工具。
總結與暢想
區塊鏈系統在鏈上鏈下數據協同的方面存在很多亟待解決的問題,影響了區塊鏈系統的廣泛應用。雖然如此,區塊鏈系統仍適合一些特定場景的使用:
-
適用于聯盟鏈的情景。聯盟鏈僅限于預選的特定成員參加,區塊鏈上的讀寫權限、記賬權限按照聯盟規則制定。在“去中心化”特性有所妥協的情況下,預言機運行在聯盟鏈或許是一個可接受的解決方法,這仍需要聯盟鏈上的預言機安全、自主、可控。
-
適用于法定貨幣上鏈的情景。如果法定貨幣被定義為鏈上的唯一核心資產,將大大減少了線下數據的維度,從而降低預言機的實現難度。當然,法定貨幣這一核心資產對安全方面顯然有更高的要求。
總而言之,區塊鏈的系統的可用性問題是涉及功能實現性的問題,而實現性問題本質是樸素的安全性問題。實現區塊鏈鏈上鏈下數據協同是難點也是發展方向,自然也會伴隨安全性問題。啟明星辰ADLab將針對此問題保持持續關注,助力區塊鏈產業發展。
啟明星辰ADLab一直致力于區塊鏈系統的研究,并取得了一定成果:
-
《A Large-Scale Empirical Study on Control Flow Identification of Smart Contracts》Ting Chen, Zihao Li, Yufei zhang, Xiapu Luo, Ting Wang, Teng Hu, Xiuzhuo Xiao, Dong Wang(ADLab of Venuestech), Jin Huang(ADLab of Venustech), Xiaosong Zhang.
-
《智能合約安全分析和審計指南》王藝卓,陳佳林,王鑫(ADLab of Venustech),何芷珊 電子工業出版社
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1076/
暫無評論