用區(qū)塊鏈實(shí)現(xiàn)物聯(lián)網(wǎng)網(wǎng)絡(luò)去中心化
點(diǎn)擊:1565
A+ A-
所屬頻道:新聞中心
二十多年前,PC 時(shí)代演變?yōu)榛ヂ?lián)網(wǎng)時(shí)代,人類生活的諸多方面進(jìn)入了虛擬數(shù)字世界。隨著智能設(shè)備成本不斷降低,互聯(lián)網(wǎng)時(shí)代即將演變成物聯(lián)網(wǎng)時(shí)代,人類的互聯(lián)網(wǎng)生活從虛擬世界走向物聯(lián)網(wǎng)虛實(shí)結(jié)合的世界。
一個(gè)有活力的物聯(lián)網(wǎng)生態(tài)需要數(shù)字貨幣作為潤滑劑,數(shù)字貨幣更需要有活力的物聯(lián)網(wǎng)生態(tài)來體現(xiàn)其價(jià)值。即在去中心化背景下,物權(quán)的流動(dòng)和數(shù)字貨幣流動(dòng)的雙向性。說白了,一手交錢,一手交貨。
區(qū)塊鏈技術(shù)使得物聯(lián)網(wǎng)去中心化的征信和交易成為可能。畢竟區(qū)塊鏈技術(shù)主要體現(xiàn)在不可更改的“記賬”類應(yīng)用,比如記錄金融交易,記錄物權(quán)資產(chǎn)歸屬。
今天的物聯(lián)網(wǎng)應(yīng)用大多是有中心的,即移動(dòng)終端需要借助某個(gè)中心網(wǎng)站才能訪問物聯(lián)網(wǎng)設(shè)備。用物聯(lián)網(wǎng)加區(qū)塊鏈來實(shí)現(xiàn)統(tǒng)一的去中心化應(yīng)用平臺(tái),我們勢(shì)必需要搭建統(tǒng)一的去中心化點(diǎn)對(duì)點(diǎn)(Peer to Peer)網(wǎng)絡(luò),覆蓋所有移動(dòng)終端、物聯(lián)網(wǎng)網(wǎng)關(guān)(Gateway)及區(qū)塊鏈節(jié)點(diǎn)。
我們知道現(xiàn)實(shí)生活中的書籍、音像游戲光盤也是物,消費(fèi)者可以私下交易,甚至以物易物。然而在今天的互聯(lián)網(wǎng)電商平臺(tái)上,消費(fèi)者不能購買電子書或者影視作品的物權(quán),只能購買其終生使用權(quán),不可私下交易,也不能贈(zèng)與。
利用區(qū)塊鏈技術(shù)我們可以實(shí)現(xiàn)多媒體作品的去中心化物權(quán)交易。但如何根據(jù)物權(quán)來閱讀、播放、運(yùn)行這些多媒體解決方案就是個(gè)非常有挑戰(zhàn)的話題了。
我們知道運(yùn)行軟件應(yīng)用的平臺(tái)通常被稱之為操作系統(tǒng)。面對(duì)物聯(lián)網(wǎng)加區(qū)塊鏈引出的去中心化應(yīng)用生態(tài),一個(gè)新型的去中心化分布式操作系統(tǒng)技術(shù)自然就浮出水面。
Elastos (亦來云)開源項(xiàng)目已經(jīng)在網(wǎng)絡(luò)操作系統(tǒng)領(lǐng)域耕耘多年,希望趁著區(qū)塊鏈大潮,做一個(gè)開源去中心化的數(shù)字資產(chǎn)物流平臺(tái),服務(wù)于眾多區(qū)塊鏈創(chuàng)業(yè)團(tuán)隊(duì)。
以上場(chǎng)景與大家熟悉的瀏覽器、網(wǎng)站模式不同,售貨機(jī)和周邊設(shè)備沒有 IP 地址,移動(dòng)終端如何通過設(shè)備二維碼與其建立直接的數(shù)據(jù)通道?這就需要一個(gè)統(tǒng)一的去中心化點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò),而費(fèi)用直接記錄在區(qū)塊鏈上。
不通過中心網(wǎng)站,售貨機(jī)設(shè)備直接向移動(dòng)終端推送 JavaScript 程序,或者移動(dòng)終端直接從售貨機(jī)下載JavaScript 程序,這兩種情況都是去中心化應(yīng)用的范例。對(duì)于 AR 眼鏡游戲而言,也許因?yàn)?JavaScript 語言的執(zhí)行效率太低,也許因?yàn)槲锫?lián)網(wǎng)應(yīng)用規(guī)模太大、太復(fù)雜,其實(shí)現(xiàn)語言或許是 Java,也有可能是 CPU原生指令語言,比如 C/C++。
由于互聯(lián)網(wǎng)上魚龍混雜,惡意代碼、網(wǎng)絡(luò)攻擊層出不窮,瀏覽器一般僅允許互聯(lián)網(wǎng)應(yīng)用采用 JavaScript 語言編寫,在權(quán)限嚴(yán)格受控的 JavaScript 引擎里面執(zhí)行。
早在 1990 年代初期,Java 語言發(fā)明伊始,其作者針對(duì) 1992 年電視機(jī)頂盒市場(chǎng)及 1995 年的瀏覽器市場(chǎng),期望 Java 程序在 JavaVM 虛擬機(jī)里面“一次編寫,到處運(yùn)行”。雖然 Java 語言取得了巨大成功,但由于 Java 語言的執(zhí)行效率、代碼粒度等問題,Java 語言一直無法獨(dú)立承擔(dān)大型高效應(yīng)用軟件的重?fù)?dān),而是借助于 JNI(Java Native Interface)調(diào)用 Windows、Linux 等操作系統(tǒng)原生運(yùn)行平臺(tái)。也正因?yàn)榇耍琂avaVM 虛擬機(jī)有如漏底的容器,無法完成可控可管的目標(biāo)。二十五年來“一次編寫,到處運(yùn)行”的宏偉藍(lán)圖付之東流。
至于 C/C++編譯出來的原生目標(biāo)代碼模塊就更經(jīng)不起推敲:通過郵件傳遞,動(dòng)態(tài)抓取,實(shí)時(shí)推送二進(jìn)制代碼模塊倒是不難,但是誰敢在 Windows 或者 Linux 運(yùn)行這些代碼呢?病毒傳播、隱私泄露和網(wǎng)絡(luò)攻擊隨時(shí)可能爆發(fā)。
說到這里,大家不難形成共識(shí):如果要用 C/C++類原生語言編寫去中心化應(yīng)用,采用傳統(tǒng)操作系統(tǒng)作為運(yùn)行平臺(tái)難堪大用,必須另辟蹊徑。
谷歌公司在其 2016 年 5 月的 I/O 大會(huì)上曝光了“即時(shí)應(yīng)用”(Instant App)的研發(fā)計(jì)劃,預(yù)計(jì)在未來一至兩年推向市場(chǎng)。應(yīng)用點(diǎn)擊運(yùn)行,無需軟件安裝,無論其是否在本地、周邊,還是云里。從此軟件應(yīng)用也像萬維網(wǎng)的網(wǎng)頁一樣,沒有版本號(hào),隨時(shí)更新。所有網(wǎng)站、云盤上的軟件形成綠色生態(tài),生生不息。
大家容易聯(lián)想到即時(shí)應(yīng)用一定是去中心化的:周邊即時(shí)發(fā)現(xiàn)的應(yīng)用,也就是非本地、非云端的應(yīng)用。
不像傳統(tǒng)的 Windows 應(yīng)用跑在 Windows 操作系統(tǒng)上,Android 應(yīng)用跑在 Android 操作系統(tǒng)上,即時(shí)應(yīng)用的目標(biāo)運(yùn)行環(huán)境很難預(yù)測(cè)。
微軟 Windows 10 操作系統(tǒng)的技術(shù)路線及編程模型與 Windows XP 截然不同,號(hào)稱支持“通用應(yīng)用”(Universal App)。同一款應(yīng)用可以運(yùn)行于手機(jī)、電腦、電視、游戲機(jī)、HoloLens 眼鏡等硬件設(shè)備,不再區(qū)分 CPU 是 X86 還是 ARM,也支持自動(dòng)適配各種輸入法。借助云盤作為統(tǒng)一永久存儲(chǔ),各種設(shè)備間可以支持無縫連續(xù)的用戶體驗(yàn)。
Windows 10 還號(hào)稱是微軟最后一款大型通用操作系統(tǒng),即未來不會(huì)有 Windows 11。我們解釋一下,一款操作系統(tǒng)適配所有通用計(jì)算環(huán)境,而且沒有未來分支,也就是說 Windows 10 不會(huì)碎片化。相對(duì)于微軟曾經(jīng)同時(shí)發(fā)布 WinCE、Win XP、XBox OS、Win Server、XP Embedded 等互不兼容的操作系統(tǒng),均碼的 Win10 顯然更容易適配即時(shí)應(yīng)用。微軟也正在雄心勃勃地進(jìn)入物聯(lián)網(wǎng)和區(qū)塊鏈等領(lǐng)域。
相比之下,今天谷歌、蘋果、Linux 仍然都有多于一個(gè)操作系統(tǒng)發(fā)行版,會(huì)使即時(shí)應(yīng)用無所適從。
就事論事,針對(duì)物聯(lián)網(wǎng)加區(qū)塊鏈的場(chǎng)景,JavaScript、Java、C/C++等各種編程語言自動(dòng)適配,模塊之間的調(diào)用無遠(yuǎn)弗屆的軟件運(yùn)行平臺(tái)必然是即時(shí)應(yīng)用的不二選擇。
然而物聯(lián)網(wǎng)最大的挑戰(zhàn)就是網(wǎng)絡(luò)安全問題。假設(shè)傳統(tǒng)操作系統(tǒng)做到完美(沒有后門),再假設(shè)傳統(tǒng)網(wǎng)絡(luò)做到完美(沒有漏洞),物聯(lián)網(wǎng)應(yīng)用要大量發(fā)送數(shù)據(jù)包到某個(gè) IP 地址仍舊照發(fā)不誤,也就是說發(fā)起 DDoS 攻擊照舊。傳統(tǒng) OS 補(bǔ)丁加補(bǔ)丁杜絕后門,幾十年補(bǔ)不完,誰相信以后會(huì)補(bǔ)完?再說了,前些日子網(wǎng)絡(luò)攝像頭攻癱半個(gè)美國,前幾天攻癱半個(gè)德國,那還是廠家預(yù)置密碼沒設(shè)好。如果惡意山寨幾百萬 IoT 設(shè)備,廉價(jià)滲透市場(chǎng),深喉潛伏,那才真是防不勝防。
我們建議的解決方案是:把 IoT 設(shè)備的角色限定為“個(gè)人云外設(shè)”,并嚴(yán)格控制外設(shè)不允許上網(wǎng)。也就是說,互聯(lián)網(wǎng)二十多年后的今天,網(wǎng)絡(luò)時(shí)代又轉(zhuǎn)回到虛擬 PC 時(shí)代,這里虛擬 PC 指的是個(gè)人云計(jì)算環(huán)境(Personal Cloud)。IoT 設(shè)備在個(gè)人云里作為 Web 服務(wù)運(yùn)行。個(gè)人云就像私人網(wǎng)站,視頻等物聯(lián)網(wǎng)設(shè)備服務(wù)只能被點(diǎn)播,而不允許向外廣播。
移動(dòng)終端上的物聯(lián)網(wǎng)應(yīng)用及個(gè)人云上的服務(wù)之間的所有網(wǎng)絡(luò)通訊(IP 數(shù)據(jù)包收發(fā))都唯一由“作為網(wǎng)絡(luò)運(yùn)營商的新型操作系統(tǒng)”來承接。應(yīng)用及服務(wù)不能發(fā)送 IP 數(shù)據(jù)包,就很難泄露隱私,也很難發(fā)起 DDoS 網(wǎng)絡(luò)攻擊。應(yīng)用及服務(wù)運(yùn)行在類似容器的虛擬環(huán)境里,網(wǎng)絡(luò)及系統(tǒng)軟件簽名固化,病毒由應(yīng)用穿透虛擬機(jī)滲透到系統(tǒng)和網(wǎng)絡(luò)的難度極大增加。
與即時(shí)應(yīng)用配套的網(wǎng)絡(luò)操作系統(tǒng)技術(shù)細(xì)節(jié)就不在這里講了,只是說個(gè)結(jié)論,相比上世紀(jì)八十年代成熟的UNIX 及其衍生 OS 而言,今天的 OS 技術(shù)已經(jīng)有了本質(zhì)的突破性進(jìn)展。我們相信這類已經(jīng)成熟,不同公司的產(chǎn)品會(huì)在未來三年內(nèi)逐步占據(jù)主流市場(chǎng)。
在區(qū)塊鏈領(lǐng)域,尤其是以太坊社區(qū),互聯(lián)網(wǎng)上幾千臺(tái)去中心化連接的礦機(jī)組成一臺(tái)抽象的計(jì)算機(jī),稱之為“世界計(jì)算機(jī)”。其上運(yùn)行的應(yīng)用叫“DApp”(Decentralized App)字面翻譯為“去中心化應(yīng)用”。復(fù)述一下:DApp 就是一個(gè)名字,特指世界計(jì)算機(jī)上運(yùn)行的程序。
以太坊的定義容易導(dǎo)致新接觸區(qū)塊鏈的傳統(tǒng)軟件程序員誤解。細(xì)究起來世界計(jì)算機(jī)這個(gè)名字也容易讓人發(fā)懵。畢竟人們可以用以太坊開源代碼搭建不同的公鏈、聯(lián)盟鏈、私鏈的世界計(jì)算機(jī)。也就是說,這個(gè)世界上可以有很多臺(tái)世界計(jì)算機(jī)。我們認(rèn)為,其實(shí)世界計(jì)算機(jī)叫“區(qū)塊鏈計(jì)算機(jī)”既簡單又明確。
這里普及一下計(jì)算機(jī)行業(yè)背景知識(shí):分布式并行計(jì)算效率提高的規(guī)律受制于 Amdahl's law 而不是Moore's law(參見 Wikipedia)。幾千臺(tái)比特幣礦機(jī)組成的甚至都不是并行計(jì)算機(jī),而是各自重復(fù)運(yùn)算和記錄的計(jì)算機(jī),其運(yùn)行效率小于一臺(tái)礦機(jī)。也就是說,利用上千臺(tái)礦機(jī)組成的世界計(jì)算機(jī)來完成“去中心化應(yīng)用計(jì)算”效率非常低下。
世界計(jì)算機(jī)與我們常見的云計(jì)算服務(wù)器組成的單臺(tái)“虛擬云計(jì)算機(jī)”目的不同,概念也不同,沒有擴(kuò)容的可能性。以太坊計(jì)劃采用分區(qū)并行等方法加速區(qū)塊鏈讀寫速度,目的是為了打造一臺(tái)更快的,作為不可更改數(shù)據(jù)庫的世界計(jì)算機(jī)。云計(jì)算擴(kuò)容是為了增加所謂“彈性”,同時(shí)運(yùn)行更多分布式用戶虛擬機(jī),以提高計(jì)算效率。
既然世界計(jì)算機(jī)概念上是單臺(tái)計(jì)算機(jī),其上運(yùn)行的 DApp 雖說是在去中心化的幾千臺(tái)礦機(jī)上重復(fù)運(yùn)行,但概念上也只是 DApp 一個(gè)接一個(gè)批量串行執(zhí)行。單臺(tái)計(jì)算機(jī)上運(yùn)行單個(gè)應(yīng)用,那么“去中心化”概念從何談起?因此“世界計(jì)算機(jī)上運(yùn)行 DApp”的說法值得商榷?!皡^(qū)塊鏈計(jì)算機(jī)上運(yùn)行智能合約”概念上干凈利落。
兩位普林斯頓大學(xué)博士生于 2014 年創(chuàng)建了 Blockstack 項(xiàng)目及社區(qū),該社區(qū)目前號(hào)稱是區(qū)塊鏈領(lǐng)域里面非金融類應(yīng)用最大社區(qū),有六萬粉絲,幾十位開發(fā)者。他們的目標(biāo)是“打造一個(gè)新的去中心化互聯(lián)網(wǎng)”,后面還會(huì)有更詳細(xì)的介紹。Blockstack 社區(qū)里說的“去中心化應(yīng)用”(Decentralized App)的涵義并非以太坊社區(qū)的定義,而是更接近谷歌“即時(shí)應(yīng)用”的概念。
即時(shí)應(yīng)用跑在去中心化的分布式計(jì)算平臺(tái)上,即在區(qū)塊鏈計(jì)算機(jī)以外的計(jì)算機(jī)上執(zhí)行,俗稱在鏈外完成。
重復(fù)式計(jì)算在區(qū)塊鏈計(jì)算機(jī)上執(zhí)行,俗稱在鏈內(nèi)完成。區(qū)塊鏈計(jì)算機(jī)的目的起碼有三個(gè):互聯(lián)網(wǎng)標(biāo)識(shí)征信及溯源,人為制造虛擬數(shù)字資產(chǎn)稀缺,智能合約充當(dāng)“機(jī)器人中介”。
目前常見的區(qū)塊鏈礦機(jī)運(yùn)行 Linux 操作系統(tǒng),各自獨(dú)立保存一份區(qū)塊鏈總賬的副本。Linux 之上覆蓋一層負(fù)責(zé)廣播需要記錄交易事物的點(diǎn)對(duì)點(diǎn)(P2P)網(wǎng)絡(luò)。共識(shí)及獎(jiǎng)勵(lì)算法運(yùn)行于 P2P 網(wǎng)絡(luò)之上;承載智能合約的虛擬機(jī)也運(yùn)行于 P2P 網(wǎng)絡(luò)之上。正是這個(gè)特殊定制的 P2P 網(wǎng)絡(luò)在概念上抽象定義了區(qū)塊鏈計(jì)算機(jī)。
由此我們聯(lián)想到上世紀(jì)九十年代初期,美國升陽(SUN Micro)公司提出的“網(wǎng)絡(luò)作為計(jì)算機(jī)”(TheNetwork is the Computer)的概念——區(qū)塊鏈 P2P 網(wǎng)絡(luò)使得多臺(tái)礦機(jī)形成單臺(tái)區(qū)塊鏈計(jì)算機(jī)。
區(qū)塊鏈計(jì)算機(jī)支撐去中心化的記賬類(比如金融、保險(xiǎn)等業(yè)務(wù)等)智能合約應(yīng)用獨(dú)領(lǐng)風(fēng)騷,但要運(yùn)行多媒體虛擬數(shù)字資產(chǎn)(比如播放電影)及物聯(lián)網(wǎng)事物處理(比如智能鎖的開關(guān))卻無能為力。
在互聯(lián)網(wǎng)上點(diǎn)對(duì)點(diǎn)播放去中心化的數(shù)字媒體技術(shù)早就不是新聞——BitTorrent(即常說的 BT 下載)就是典型的代表。視頻直播,互聯(lián)網(wǎng)電話(VoIP),Skype 聊天,個(gè)人云盤,家庭監(jiān)控?cái)z像頭等常見互聯(lián)網(wǎng)產(chǎn)品中也普遍采用了點(diǎn)對(duì)點(diǎn)的去中心或弱中心(中心只是在連接時(shí)輔助)軟件技術(shù)。
不論是 ZigBee、藍(lán)牙,還是 WiFi 物聯(lián)網(wǎng)設(shè)備都需要借助網(wǎng)關(guān)(Gateway)或者路由器來訪問互聯(lián)網(wǎng)。這些網(wǎng)關(guān)、路由器通常也是運(yùn)行 Linux 的智能設(shè)備。
結(jié)合前面提到的“網(wǎng)絡(luò)作為計(jì)算機(jī)”的概念,我們建議利用統(tǒng)一的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)覆蓋移動(dòng)終端、家庭網(wǎng)關(guān)及區(qū)塊鏈計(jì)算機(jī)的礦機(jī)節(jié)點(diǎn),形成單臺(tái)“物聯(lián)網(wǎng)加區(qū)塊鏈計(jì)算機(jī)”。去中心化終端上跑的應(yīng)用,以及去中心化的云盤上、網(wǎng)關(guān)上跑的服務(wù)等,我們都視其為“物聯(lián)網(wǎng)加區(qū)塊鏈計(jì)算機(jī)”上支撐的虛擬機(jī)里運(yùn)行的程序,見上圖。
就像互聯(lián)網(wǎng)或者電訊網(wǎng)絡(luò)一樣,所謂點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)是由許多不同的 P2P 協(xié)議組成。手機(jī)短信、電話、視頻等功能分別由不同網(wǎng)絡(luò)協(xié)議完成。公路、電梯、高鐵、室內(nèi)、室外的網(wǎng)絡(luò)優(yōu)化也都各有千秋?;ヂ?lián)網(wǎng)上TCP/IP、UDP、HTTP 等協(xié)議就不多說了。去中心化的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)也會(huì)碰到這些狀況,目前區(qū)塊鏈礦機(jī)基本雷同,都是通過網(wǎng)線連接,都是發(fā)送特定長度的消息,由此推斷區(qū)塊鏈計(jì)算機(jī)的網(wǎng)絡(luò)優(yōu)化策略不會(huì)太復(fù)雜。
我們?cè)俳ㄗh,智能家居網(wǎng)關(guān)后面的那些物聯(lián)網(wǎng)傳感器、攝像頭等都作為“物聯(lián)網(wǎng)加區(qū)塊鏈計(jì)算機(jī)”外設(shè),見《通用應(yīng)用一節(jié)》的圖示。科普一下,計(jì)算機(jī)外設(shè)是不能直接上網(wǎng)的智能設(shè)備,比如鍵盤、鼠標(biāo)、打印機(jī)、投影儀等。不能上網(wǎng)的設(shè)備就安全,不會(huì)泄露隱私。運(yùn)程終端借助家庭網(wǎng)關(guān)等結(jié)點(diǎn),通過去中心化的Web 服務(wù)來訪問物聯(lián)網(wǎng)“外設(shè)”,比如家庭監(jiān)控?cái)z像頭不允許直接發(fā)送 IP 數(shù)據(jù)包到互聯(lián)網(wǎng)(外網(wǎng)),而必須在家庭網(wǎng)關(guān)上作為 Web 服務(wù)被點(diǎn)播。
提出物聯(lián)網(wǎng)加區(qū)塊鏈計(jì)算機(jī)概念的目的只有一個(gè):安全。畢竟金融無小事,物聯(lián)網(wǎng)平臺(tái)涉及各種千奇百怪的硬件及業(yè)務(wù)組合,諸多安全隱患的場(chǎng)景要比區(qū)塊鏈平臺(tái)復(fù)雜太多了。
OS 運(yùn)行庫沙箱是安全屏障,網(wǎng)絡(luò)托管運(yùn)營安全保證。
開源才有公信力。不崩潰,自主運(yùn)行的區(qū)塊鏈計(jì)算機(jī)是物聯(lián)網(wǎng)生態(tài)的基礎(chǔ)。
目標(biāo)宏偉,缺了點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)及 OS 運(yùn)行庫沙箱等兩個(gè)必要環(huán)節(jié)。保障即時(shí)應(yīng)用可以溯源,保障應(yīng)用的虛擬運(yùn)行環(huán)境可以溯源,保障使用即時(shí)應(yīng)用的消費(fèi)者(無論是否匿名)的錢包可以溯源。應(yīng)用溯源包含了虛擬數(shù)字資產(chǎn)和物聯(lián)網(wǎng)硬件設(shè)備上的代碼執(zhí)行。
JavaScript 類腳本語言、Java 類中間代碼語言、C/C++類原生 CPU 指令語言之間自動(dòng)橋接。
類 Android 編程模型方便程序員編程,極大增進(jìn)去中心化應(yīng)用的生態(tài)繁榮。
軟件復(fù)制成本接近于零,數(shù)字世界物質(zhì)極大豐富。區(qū)塊鏈輔助人為制造數(shù)字資產(chǎn)的稀缺性,使虛擬數(shù)字商品具有價(jià)值,杜絕互聯(lián)網(wǎng)時(shí)代的巨無霸操縱價(jià)值。
(審核編輯: 林靜)
分享