以太坊是如何從加密貨幣和智能合約平臺發(fā)展成一個完整的生態(tài)系統(tǒng)的
斯諾登事件后的 Web 有 4 個組成部分:靜態(tài)內(nèi)容發(fā)布、動態(tài)消息、免信任型交易和集成用戶界面。—— Gavin Wood
自 20 世紀 90 年代誕生以來,互聯(lián)網(wǎng)年正年復一年地革新我們的通信方式、商業(yè)模式,以及新聞閱讀和電視觀影方式。它實現(xiàn)了信息獲取的民主化,極大地降低了全球通信成本,而且提升了普通公民對通信、新聞和隱私訪問的期望。
第二波互聯(lián)網(wǎng)浪潮(被稱為 Web 2.0 )下出現(xiàn)了 Wikileaks、Facebook、Twitter 以及 Youtube、Linkedin 和 WordPress 之類的個人發(fā)布平臺等網(wǎng)站。它們改變了信息的發(fā)布方式,讓信息難以藏匿。無論發(fā)生了什么新聞,遲早會被披露出來。
這給各國政府和官員帶來了大麻煩。 無論好壞,維基解密在 2010 年披露了美國外交電報泄漏事件,在突尼斯和利比亞等國家激起了民變,星星之火遂成燎原之勢,改變了整個中東的面貌。政府電報泄漏一事還在西方國家激起了一系列抗議活動。
在其所著的《當谷歌遇上維基解密》一書中,Julian Assange 闡述了政界、科技巨頭和情報界三方之間的邪惡勾當。對于 Eric Schmidt 和 Jared Cohen 的新作《新數(shù)字時代》,他給予了恰當?shù)脑u價:“Schmidt 和 Cohen 兩位先生告訴我們,一旦消滅了隱私,對實行 “高壓政策”的專制政府來說,就是在做它們掌握公民動向的幫兇;對實行“開放政策“的民主制政府來說,就是它們?yōu)楣窈拖M者排憂解難的‘益友’?!?/p>
維基解密對金融機構(gòu)的揭發(fā)向我們展示了我們在審查制度面前有多么脆弱——即使是在互聯(lián)網(wǎng)時代。
后來,斯諾登揭露了美國的“棱鏡”計劃,又再一次刷新了公眾對于日常隱私受侵犯程度的認知。
以太坊就是在這種背景下誕生的。斯諾登泄密事件發(fā)生后的幾個月,以太坊的聯(lián)合創(chuàng)造者 Gavin Wood 寫了一篇文章來闡述他對 Web 3.0 的看法(編者注:中譯本見文末超鏈接)。 Web 3.0 指的是使用已有的互聯(lián)網(wǎng)架構(gòu)和的可用的加密方式,連同區(qū)塊鏈一起構(gòu)建更好的互聯(lián)網(wǎng)。其中包括內(nèi)容發(fā)布、信息發(fā)送和價值交易 —— 在保障隱私性的情況下通過去中心化的抗審查方式實現(xiàn)。
耳語協(xié)議
在這篇文章中,Wood 描述了一個 基于身份的匿名信息發(fā)送基本系統(tǒng) ,這個系統(tǒng)會賦予用戶——不管是人還是 dApp——基于哈希的身份、隱私保證、加密消息服務、關(guān)于發(fā)送者的密碼學認證,以及規(guī)定了存活時間的信息。這個系統(tǒng)具有模塊化隱私性和匿名性,以及“隱身”保證——允許用戶對不同的隱私性特征進行選擇(我找不到更好的形容詞了)。它使用的是以太坊網(wǎng)絡的基礎(chǔ)架構(gòu)。
通過使用不同的協(xié)議特征和不同的設置,耳語協(xié)議為更高級的實現(xiàn),即在上面開發(fā)的、具有不同變種的 dApp,奠定了基礎(chǔ)。耳語協(xié)議目前處在 POC 2 階段,能夠應用于當前的 geth 和 Parity 版本。耳語協(xié)議在主網(wǎng)上的應用受限于能夠運行耳語協(xié)議的以太坊在產(chǎn)節(jié)點數(shù)量。 這一協(xié)議仍處于測試階段。未來會有很多規(guī)范發(fā)生改變。
以太坊和耳語協(xié)議客戶端節(jié)點使用的是 DΞVp2p 線路協(xié)議 進行點對點通信。尤其還用到了 RPLx 協(xié)議 ,即
一個加密的點對點網(wǎng)絡和協(xié)議組,為應用程序提供通用的傳輸通道和接口,以便其通過點對點網(wǎng)絡進行通信。
節(jié)點搜尋算法是去中心化的抗審查網(wǎng)絡中最主要的部分。以太坊使用的是調(diào)整過后的 Kademlia UDP,類似于 Bittorrent 網(wǎng)絡的對等點搜尋。
由于規(guī)范在不斷變化中,目前了解耳語協(xié)議定義的最佳方式是閱讀以太坊的維基百科——點擊此處了解當前的耳語協(xié)議 POC 2 規(guī)范。
耳語協(xié)議融合了 DHT 和數(shù)據(jù)報消息傳送系統(tǒng)(例如 UDP)的特性。
如果要設計一個旨在實現(xiàn) 全方位隱身 的系統(tǒng)(即確保絕對的隱私性和匿名性),需要在性能方面做出權(quán)衡。我們認為,這是耳語協(xié)議選擇 UDP 的原因,雖然 UDP 的水平較低,但是比 TCP 更快,且控制力更強。
規(guī)范中有一句話或能解釋許多設計決策的由來:“下一代 dApp 需要具備大規(guī)模的多對多數(shù)據(jù)搜尋、信號協(xié)商、極穩(wěn)定的傳輸以及對完全保密性的確信預期。耳語協(xié)議旨在成為下一代 dApp 的構(gòu)件之一?!?/p>
正如規(guī)范中所說,消息加密和絕對隱身之間存在重大區(qū)別,這正是以太坊的設計人員試圖解決的問題。如今,我們知道資金充足的參與者甚至能夠破壞 Tor 這樣的網(wǎng)絡的隱私保障。從很多方面來講,僅僅知道某人的通信目的地可以在不破解加密內(nèi)容的情況下,破壞原本所需的隱私保障(例如,在某一政黨內(nèi)部人向維基解密爆料時)。如果對通信的元數(shù)據(jù)進行足量分析,我們可以得出很多數(shù)據(jù),有時還會導致內(nèi)容加密失效。
這一點在最近發(fā)布的歐盟通用數(shù)據(jù)保護條例(GDPR)中略有反映。
這就是為什么我們需要深入研究——對非?;A(chǔ)的層級開始編寫一套新系統(tǒng)。
耳語協(xié)議的 POC2 放出豪言,表示會實現(xiàn)“100% 隱身操作”。
規(guī)范中還提到:“耳語協(xié)議不僅可以用來通過對等點間通道(即主干網(wǎng)收集裝置)進行元數(shù)據(jù)收集 ,甚至還能抵抗更加嚴峻的‘100% - 2‘攻擊;就是這樣一種情形:整個網(wǎng)絡中的所有節(jié)點都被攻陷,就除了一對正在運行隱私通信 dApp 的節(jié)點。“
協(xié)議要素
主要要素是 封套、消息 和 主題 。
封套(Envelop)是包含 存活時間(以秒計)、有效期(以 Unix 操作系統(tǒng)的時間計)、主題(“例如,相當于推特的哈希標簽,或預期接受者的公鑰與某個階段 nonce 或應用身份通過哈希運算得出的值“) 和 nonce(為未來實現(xiàn)中的消息發(fā)送者提供工作量證明的要求)的數(shù)據(jù)包。其中還包括 消息數(shù)據(jù)字段 。
封套中的消息數(shù)據(jù)字段內(nèi)包含了真實消息——有效負荷——以及標記和簽名。有效負荷由發(fā)送者進行加密,需由接收者通過另一種方式進行解密。
整個協(xié)議為節(jié)點給對等點排序、以及通過獲取 nonce 時 花費的工作量 給消息排序打下了基礎(chǔ)。而更大的工作量證明會讓消息在網(wǎng)絡中具有更大的優(yōu)先級。
節(jié)點可以向彼此告知自己感興趣的主題。發(fā)送者和接收者可以選擇在隱私保護和性能之間選擇啟用或不啟用一些功能,因為有時候確實需要抉擇。
因為技術(shù)規(guī)范尚未定型,實現(xiàn)也正在開發(fā),所以很難準確底說哪些部分已經(jīng)完成了,哪些正在開發(fā),哪些仍在提議階段。
Status.im
Status 自稱為”一個為 Ethereum 開發(fā)的移動端操作系統(tǒng)“。它是一個以太坊客戶端,意在將以太坊功能的豐富性帶到智能手機上。在 2016 年上海的 Devcon2 上,Status 首次進入大家的視野。
說得詳細一點,Status 這個手機 App 運行了 geth 的完整實現(xiàn)。DApp 就運行在用戶的手機上,用戶可以在聊天中使用這些 dApp。
Status 的聊天功能就是用耳語協(xié)議實現(xiàn)的。
在本文寫作之時(2018 年 3 月),Status 更新到了 0.9.18 版本。
許多 dApp,包括 Gnosis、Aragon、Etherisc、Uport、Ethlance、CryptoKitties、Bancor、Peepeth 等等,都可以在 Status App 內(nèi)使用。
Status 綜合了運行在以太坊網(wǎng)絡上的消息服務和瀏覽器,并且,它有志于成為一個 dApp 瀏覽器,讓開發(fā)者可以接觸到用戶。因此——再加上一些相似的項目可能會同時爆發(fā)—— Status 會在以太坊和區(qū)塊鏈應用的大規(guī)模普及中扮演重要的的角色。他們認為自己的使命時“降低進入以太坊的門檻”。
除了是一個數(shù)字錢包,一個加密的通訊軟件,Status 還希望多多少少能在 dApp 和耳語協(xié)議的基礎(chǔ)上形成一個社交網(wǎng)絡,同時用戶還能夠選擇性匿名。
他們更新時發(fā)布的文章說:在最新的版本中,群聊天功能暫時不可用了,這樣我們就能專注于開發(fā)一對一聊天和公開聊天。群聊天會在未來的版本中回歸。
點對點交易所的初衷時協(xié)助 fiat-to-ETH 在現(xiàn)實世界中的去中心化交換。他們的商業(yè)模式是收取少量費用。
Status Network Token(SNT)
在 2017 年 5 月,Status 團隊宣布啟動 Status Network,并且發(fā)行了代幣 SNT,這是一種實用代幣,用于幫助整個網(wǎng)絡和應用的正常運作。SNT 用在客戶端治理機制、去中心化推送市場、使用 ENS 的用戶名注冊、內(nèi)容歸集、前述的點對點交易所,以及其它功能中。
Status 百科
Status.im wiki 里面有用戶手冊、開發(fā)者所需的信息。任何想要開發(fā)無服務器聊天機器人或自己的 dApp 并加入 Status 的人都可以參照其中的內(nèi)容。
而且 Status 的 Open Bounty 還會給為開發(fā)做貢獻的開發(fā)者提供獎勵。
生態(tài)系統(tǒng)
通過為 dApp 打開接觸終端用戶的空間,并且將以太坊技術(shù)通過顯見的方式帶到大眾面前,Status 正在打造一個生態(tài)系統(tǒng)。這一點在他們的孵化器項目中得到了進一步的強調(diào):“一個致力于去中心化的孵化器”。
Status 的 Embark 是一個用于開發(fā) dApp 的框架。你可以通過 npm 來安裝:npm install -g embark
這是一個框架,試圖統(tǒng)一和簡化所有 Web 3.0 組件的部分——用于存儲的蜂群協(xié)議(Swarm)或 IPFS,用于通信的耳語協(xié)議或 Orbit,以太坊區(qū)塊鏈以及 dApp,還有,像 React、FoundaTIon、Augular 這樣的前端技術(shù)以及不同的前端工具。
Status 還有指標儀、設置系統(tǒng)和插件生態(tài)系統(tǒng)??梢栽谶@里獲得更多信息。
Status 公司在瑞士 Zug 注冊,在新加坡有辦公室。他們正在開發(fā)移動 App,除了用到 Go 語言(即 geth 所用語言)之外,還用到了 Clojure/Clojurescript,這是一種很適合高級邏輯的語言。
結(jié)論
開發(fā) Web 3.0 不是簡單的事情。許多公司都正在嘗試拯救互聯(lián)網(wǎng),算不算成功則見仁見智。但以太坊項目具有重新打造互聯(lián)網(wǎng)的愿景。因此,說以太坊只是一個密碼學貨幣平臺,或者說智能合約平臺,可能是一種保守的說法。在以太坊區(qū)塊鏈上會產(chǎn)生一整個生態(tài)系統(tǒng)。
從以太坊自身、內(nèi)置的激勵系統(tǒng)、兩大分支——蜂群協(xié)議和耳語協(xié)議——的活動還有 Status.im 這樣的項目受歡迎的程度來看,我們有理由期待,未來的幾年內(nèi),互聯(lián)網(wǎng)將會發(fā)生一些有趣的變化。