【研究員視角】區塊鏈:從入門到精通

買賣虛擬貨幣

今年9月在上海召開的以太坊第二屆開發者大會,因為議程緊湊、乾貨十足而從一開始就異常火爆,這裡分享其中幾個亮點。

1. 什麼是區塊鏈(blockchain)?

要說近期得到各行各業關注和討論的熱點,區塊鏈必須算一個:迄今為止,2016年全球最大的投資專案都與區塊鏈相關,投資金額分別在5500萬美元和6000萬美元,國內最大的一筆區塊鏈專案也在9月底以超過2000萬美元的投資規模宣佈。

區塊鏈的魅力在哪裡?若說今天的網際網路是資訊透過tcp/ip協議進行點對點的傳遞,是資訊網際網路,那麼,價值(比如電子貨幣、電子資產等)怎樣才能脫離第三方進行點對點的轉移?區塊鏈技術就提供了一種可能。

區塊鏈是去中心的分散式記賬系統。系統中的節點無需互相信任,透過統一的共識機制共同維護一份賬本,每個節點都有一份完整的資料記錄。區塊鏈 blockchain, 成塊(block)的交易透過密碼學演算法連線在一起,使得整個賬本公開透明、可追蹤、不可篡改。

比特幣作為全球通用的加密網際網路貨幣,就是基於區塊鏈技術發展起來的,而區塊鏈上智慧合約的支援,使更廣泛的、比特幣以外的數字資產的點對點轉移變成現實,這就不難理解,為什麼區塊鏈技術會作為價值網際網路的基石而變得引人注目了。

2. 什麼是以太坊(ethereum)及其開發者大會(devcon)?

以太坊(ethereum)作為全球最為知名的區塊鏈專案之一,同時擁有全球最大的區塊鏈開源社羣。

簡單說,以太坊是一個有智慧合約(smartcontract)功能的公共區塊鏈平臺。用智慧手機打個比方,如果說以太坊是智慧手機的作業系統,那麼智慧合約就是上面搭載的應用(app)。有了以太坊,使用者可以直接開發自己的區塊鏈應用,而無須擔心底層的區塊鏈系統。

此次是第二屆以太坊開發者大會,不僅以太坊核心團隊成員悉數到場,還匯聚了來自世界各地的以太坊行業代表、開發者和社羣成員。微軟是大會頂級贊助商,將與以太坊繼續合作打造microsoft azure雲端“區塊鏈即服務”(baas: blockchain-as-a-service)。

以太坊紫色革命

在今年的大會上,以太坊創始人vitalik buterin 釋出了描述下一代以太坊(以太坊2.0)關鍵改進的紫皮書(mauve paper),直指以太坊存在的兩大問題:以工作量證明(proof-of-work)為基礎的共識機制低效、耗能、不綠色環保,以及以太坊公鏈系統吞吐量 (throughput)和容量均不足以支撐全球大範圍高頻次使用。

針對第一個問題,紫皮書提出一個新的基於權益證明(proof-of-stake)的共識機制,命名為capser,能讓參於“挖礦”的方式,從原來重金購入大量通用計算機或專門定製“礦機”並消耗電力能源進行大量“無用”計算來爭奪區塊的構造和收益權,轉變成直接將資金兌換為以太幣注入以太坊區塊鏈,“挖礦”相關的智慧合約(smart contract)自動根據資金的注入量成比例隨機分配區塊的構造和收益權。配合一套設計精巧、賞罰分明的經濟學激勵措施,這一新的共識機制有望使以太坊公鏈變得更安全、更高效和更綠色。

不過,基於權益證明的新共識機制的複雜度顯著高於基於工作量證明的現有共識機制,部分社羣成員對新機制的可靠性和正確性還存有疑慮,仍有待投入大量精力和時間以共同完善和驗證。

針對第二個問題,關於吞吐量和容量的侷限,紫皮書提出了縮短區塊產生間隔時間(blocktime)和分割槽(sharding)這兩個解決方案。

在保證安全的前提下,新的演算法把區塊產生間隔時間從12秒降低為4秒,使吞吐量提升為現在的三倍。新的分割槽機制將區塊鏈分為80個相對獨立的分割槽(sharding),以太坊的每個節點無需處理全網所有事務(transaction)和儲存全網所有的資料,只要關注其中一個或幾個分割槽的事務和資料即可,所有節點透過分工配合來完成覆蓋所有分割槽的目標。這麼做能使以太坊的容量增大為現有的80倍。同時,由於各分割槽的事務可以併發處理,吞吐量再獲提升,變為現有水平的240倍(3x80)。

但這麼做也是有代價的:分割槽之前,一個事務無論涉及到多少個智慧合約,對所有這些智慧合約狀態的修改都能原子化地完成,這個性質極大簡化了智慧合約的程式設計和推理。分割槽之後,一個事務如果涉及到跨區的智慧合約呼叫,由於跨區呼叫只能透過非同步的方式完成,一個事務會被分段執行而失去原子性,這在本質上改變了智慧合約的執行模型,增加了推理和程式設計的複雜度。這就是擴容的代價。

儘管如此,作為價值網際網路的核心基礎設施,由以太坊代表的支援智慧合約的區塊鏈技術平臺正以激動人心的速度不斷突破技術難題向前發展,值得進一步跟蹤、研究與參與。

智慧合約的安全

簡而言之,智慧合約就是一段用來直接控制電子資產交易的計算機程式碼。智慧合約與區塊鏈的關係可以類比為手機應用與智慧手機,智慧手機為手機應用提供計算平臺,而多樣化的手機應用極大地豐富了智慧手機的應用場景。與此相類似,智慧合約可以和區塊鏈技術無縫對接,使區塊鏈可程式設計化、可定製化,智慧合約因此賦予了區塊鏈智慧,使區塊鏈可以突破匯款這一傳統的應用,讓區塊鏈可以應用在更復雜的邏輯中。

智慧合約區別於普通程式程式碼的強大之處,在於它被公開而不可更改地儲存在區塊鏈之上,在定義好的內外部條件下得到區塊鏈全網節點的忠實執行。任何人都不可能單方面篡改和阻止智慧合約的執行。這是智慧合約值得信賴的根本原因,卻也是智慧合約的“天生缺陷”,因為這個性質使智慧合約的漏洞不能得到及時修復,利用漏洞的攻擊行為也難以被及時阻止,從而造成實實在在的危脅。

這方面已經有了實際的例子,最有代表性的就是the dao攻擊。the dao專案作為區塊鏈業界最大的眾籌專案,目的是給基於以太坊的創業團隊和專案提供重要的資源,但是其編寫的智慧合約存在“遞迴呼叫漏洞”的問題。不幸的是,在程式設計師修復這一漏洞及其他問題期間,一個不知名的駭客開始利用這一漏洞收集the dao代幣銷售中所得的以太幣,導致the dao損失了接近5000萬美元。為挽回巨大損失,以太坊社羣採取了充滿爭議和極具道德風險的硬分叉(hardfork),回滾到攻擊發生前的區塊,重新生長出一條不包含攻擊結果的區塊鏈。新生成的鏈雖然符合社羣的主流民意,但由於違背了區塊鏈不可篡改的原則,至今仍然受到社羣一部分成員的抵制。

值得特別強調的是,這不是以太坊平臺的本身漏洞,而是以太坊上某些智慧合約出現了漏洞。新加坡國立大學的博士研究生loi luu在此次大會介紹了他關於智慧合約安全性的論文[1],分析了以太坊區塊鏈上19366個智慧合約,發現大約44%的智慧合約存在安全風險。

有效防範這些風險是智慧合約得到廣泛應用的前提,因此,開源社羣和學術界一樣都在抓緊解決智慧合約的安全問題。由來自康奈爾、加州大學伯克利分校、伊利諾伊大學厄巴納-香檳分校和以色列理工學院等學術機構的研究人員組成的ic3研究組在會上提出瞭解決智慧合約安全問題的三板斧:對智慧合約進行形式化驗證,在智慧合約中內建危機應對機制,建立發現和修補智慧合約漏洞的激勵機制。微軟研究院、法國國家資訊與自動化研究所和哈佛大學三個研究機構的研究人員也在近期共同發表文章,闡述在對以太坊智慧合約平臺本身(以太坊虛擬機器)和智慧合約的形式化驗證方面進行的前沿探索[2]。

web 3:去中心化的下一代web基礎設施

以太坊生態系統中的重要成員,去中心化儲存系統swarm,其核心開發者viktor trón在會上透過一系列演講,描繪了一個以以太坊為核心的去中心化的web願景:web 3。

在這個巨集大的願景中,以太坊作為一個去中心化的計算平臺,輔以swarm和ipfs(interplanetary file system)作為去中心化的加密儲存平臺,以及以whisper為代表的去中心化的訊息傳遞平臺,構成一整套以p2p網路為核心的下一代web基礎設施。基於這種基礎設施開發的去中化應用(dapps),直接使用由分佈於全球的p2p網路提供的儲存、計算和訊息服務,具有高容錯、抗攻擊、高可用、反審查等特點。這使得去中化的應用開發者不再需要架設和維護專門的伺服器,而是透過應用的使用者直接向p2p網路購買所需的計算和加密儲存服務來使用這些應用,天然就獲得了自己資料的擁有權和控制權。這跟現有的web架構下,所有使用者資料天然集中於由應用或網站的開發者架設和控制的伺服器的情況,有著革命性的區別。讓這一切成為可能的,正是以區塊鏈技術為基礎的全球性去中心化的電子貨幣系統。

web 3作為一種去中心化的雲端計算平臺,是對現有的集中式雲端計算平臺的有益補充。現有的集中式雲端計算平臺有著去中心化平臺所不具有的低成本、高效率、高效能、功能豐富等特點,而去中心化的雲端計算平臺由於不被單一實體控制,更適合構建中立性要求極高、跨機構的信任基礎設施。這兩者不是互相取代的關係,而是共存共生、相互借鑑而共同發展的關係。展望這兩種雲端計算平臺在未來的碰撞和交融,一定異常精彩,必將促進雲端計算技術和雲端計算生態系統的進一步發展,推動雲端計算技術更為深刻和廣泛地影響人類生產與生活的方方面面。

微軟baas – bletchley

重要的事情放在最後:微軟一直積極支援整個區塊鏈開源社羣和生態系統的發展,今年已是連續第二屆成為以太坊開發者大會唯一的頂級贊助商,不僅在自己的公有云平臺azure上推出了完全開放的區塊鏈服務(blockchain-as-a-service),提供各種區塊鏈專案和技術的一鍵部署和開發測試平臺,還在這次大會發布了代號為bletchley的區塊鏈生態系統框架的v1版本。

微軟的bletchley框架,相容所有區塊鏈系統和技術,為這些區塊鏈系統的落地商用提供訪問控制、身份認證、加解密、智慧合約安全驗證、程式碼安全執行容器、開發除錯、大資料分析和機器學習以及區塊鏈應用及智慧合約市場等服務,並以此為基礎構建一整套第一方和第三方的相關軟體服務以及各種行業解決方案。

特別值得一提的是名為cryplet的程式碼安全執行容器,它將基於硬體的安全隔離執行環境容器化,以按需雲服務的方式,為區塊鏈跟外部世界互動的關鍵程式碼提供一個任何人都無法窺探、篡改的安全執行環境。cryplet不僅適用於將智慧合約依賴的外部世界的事件(如股價、天氣情況等)以安全和來源可驗證的方式注入區塊鏈,還能根據區塊鏈狀態安全和可信的操作外部世界和觸發外部的事件。cryplet的不可窺探性使其特別適合執行需要保密的私有演算法和處理敏感的資料,大大的擴充套件了區塊鏈系統的應用邊界。除此之外,azure也與中國區的區塊鏈平臺和創業公司合作,提供了本地化的區塊鏈應用市場服務,方便本土的區塊鏈系統在azure上的一鍵佈署,助力區塊鏈技術在中國的發展。

最後的最後,還有實習生招募帖……

  微軟亞洲研究院區塊鏈專案

  在微軟亞洲研究院,我們cloud & mobile group 也於半年前開始展開區塊鏈技術的研究,設計的新技術已經獲得區塊鏈方面的美國專利。從基礎的一致性協議理論,到提高區塊鏈效能和擴充套件性的系統最佳化,我們都取得了一些進展。同時,我們和azure中國的團隊一起設計和開發可落地的區塊鏈的應用。

  在10月16日的2016年開源年會,我們講解了更多區塊鏈和智慧合約的技術細節,以及演示如何在azure上方便部署和開發區塊鏈的應用,請轉至: http://www.huodongxing.com/go/coscon2016.

  隨著相關研究迅速開展,我們也開放了多個實習職位,有區塊鏈、分散式系統、分散式資料庫或者分散式理論背景的同學如果感興趣,請發簡歷到[email protected],並在郵件主題註明“區塊鏈實習”。

更多會議詳情請轉至:

http://www.blockchainweek2016.org/index_cn.html

參考論文:

[1]. loi luu, duc-hiep chu et al. "making smart contractssmarter"

[2]. http://research.microsoft.com/en-us/um/people/nswamy/papers/solidether.pdf

  作者簡介

  閆鶯:微軟亞洲研究院主管研究員,從事區塊鏈技術、大資料分析和挖掘、資料庫應用的研究。發表國內外頂級會議期刊論文30餘篇,專利10餘項。

  陳洋:研究員,微軟亞洲研究院雲端計算與移動計算研究組,從事區塊鏈、雲端計算平臺架構、大資料系統、編譯研究。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;