作者:Pika,Sui公鏈大使,DePIN研究員
盡管DePIN賽道在當下十分火熱,但DePIN相關的物聯網設備要大規模接入到區塊鏈,仍存在技術上的障礙。一般而言,若要將物聯網硬件接入到區塊鏈中,要經歷以下三個關鍵階段:
1. 硬件設備的可信任運行;
2. 收集驗證並提供數據;
3. 將數據分發到不同應用。
這三個階段中存在不同的攻擊場景與反制手段,需要引入各種機制設計。本文從項目工作流程與協議設計的角度,回顧分析了物聯網設備從可信任產生數據,驗證存儲數據,通過計算產生證明,和向區塊鏈rollup數據的整個流程。如果你是DePIN賽道的創業者,希望本文可以在方法論和技術設計上對你的項目發展有所幫助。
下文中,我們以空氣質量檢測的場景爲例,結合IoTeX、DePHY、peaq這三個DePIN基礎設施進行分析,向大家闡明DePIN基礎設施是如何工作的。此類基礎設施平台可以對接物聯網設備與區塊鏈/Web3設施,幫助項目方快速啓動DePIN應用類項目。
硬件設備的可信任運行
硬件設備的可信任,包括設備身份的信任與程序執行可驗證無篡改的信任。
在大多數DePIN項目的激勵方案裏,硬件設備的運行者會對外提供服務,以此爲籌碼向激勵系統索要獎勵,比如在Helium中,網絡熱點設備通過提供信號覆蓋,來獲取HNT獎勵。但在從系統中獲取激勵前,DePIN設備需要先出示證據,證明自己的確按要求付出了一定“努力”。
這類用於證明自己在現實世界中提供了某類服務、進行了某些活動的證明,被稱爲物理工作證明(Proof of Physical Work, PoPW)。在DePIN項目的協議設計中,物理工作證明佔有舉足輕重的地位,相應的也存在各種攻擊場景與對應的反制手段。
DePIN項目要依托於區塊鏈完成激勵分發與代幣分配。類似於傳統公鏈中的公私鑰體系,DePIN設備的身份核驗流程中,也需要使用公私鑰,私鑰用於生成和籤署“物理工作證明”,公鑰則被外界用於驗證上述證明,或作爲硬件設備的身份標籤(Device ID)。
除此之外,直接用設備的鏈上地址接收代幣激勵並不方便,因此DePIN項目方往往在鏈上部署一個智能合約,合約中記錄着不同設備持有人的鏈上账戶地址,類似於數據庫中一對一或多對一的關系。這種方式下,鏈下物理設備應當收到的代幣獎勵,可以直接打到設備持有人的鏈上账戶裏。
絕大多數提供激勵機制的平台,都會遇到“女巫攻擊”,就是說有人可能操控大量的账號或設備,或是生成不同的身份證明,僞裝成多個人,拿多份獎勵。以我們前面提到的空氣質量檢測爲例,提供此服務的設備越多,系統分發出去的獎勵也越多。有人可以通過技術手段,快速生成多份空氣檢測數據以及對應的設備籤名,制造大量的物理工作證明來獲利,這會使DePIN項目的代幣陷入高通脹,所以要制止此類作弊行爲。
所謂的反女巫,如果不採用KYC等破壞隱私性的方法,最常見的措施就是POW和POS,在比特幣協議中,礦工要付出大量的算力資源,才能獲得挖礦獎勵,POS公鏈則直接讓網絡參與者質押大量的資產。
在DePIN領域中,反女巫可以歸結爲“擡高物理工作證明的生成成本”,由於物理工作證明的生成,依賴於有效的設備身份信息(私鑰),所以只要擡高身份信息的獲得成本,就可以防止某些低成本生成大量工作證明的作弊行爲。
針對上述目標,一種相對有效的方案是,讓DePIN設備生產商壟斷身份信息的生成權限,對設備進行定制化處理,爲每部設備錄入唯一的身份標籤。這就好比,由公安局統一記錄全體公民的身份信息,只有在公安局數據庫裏可查的人,才有資格領取政府補貼。
(圖片來源:DigKey)
在生產環節,DePIN設備廠商會使用程序在足夠長的時間裏生成根密鑰,然後隨機選擇根密鑰使用eFuse技術寫入到芯片中。這裏要科普下,eFuse(可編程電子熔斷器)是在集成電路中存儲信息的電子技術,錄入的信息通常無法被篡改或擦除,具有較強的安全保障。
在這種生產流程下,設備持有者和生產商都無法獲知設備的私鑰,以及根密鑰。硬件設備可以在TEE的隔離環境中,從根密鑰導出並使用工作密鑰,包含籤署信息用的私鑰,和交由外界驗證設備身份的公鑰。TEE環境外的人或程序都無法感知到密鑰的細節。
上述模式下,如果你想獲取代幣激勵,必須要從專屬廠商那裏購买設備。女巫攻擊者若想繞开設備廠商,低成本生成大量的工作證明,就需要破解廠商的安全系統,將自己生成密鑰的公鑰注冊到網絡許可設備中去,女巫攻擊者很難低成本發起攻擊,除非設備生產廠商監守自盜。
而一旦人們發現設備廠商有作惡的可疑跡象,可以通過社會共識的方式對DePIN設備生產廠商進行曝光,這往往會使得DePIN項目本身連帶遭殃。但多數情況下,設備廠商作爲DePIN網絡協議的核心受益方,大多沒有作惡動機,因爲讓網絡協議井然有序運轉的話,賣礦機賺的錢會比DePIN挖礦賺的錢多,所以他們更多會傾向於不作惡。
(圖片來源:Pintu Academy)
如果硬件設備不是由中心化生產商統一供應的,那么當任意一台設備接入DePIN網絡時,系統要先確認該設備具有協議要求的特性。比如,系統會檢查這些新加入的設備,有沒有專屬的硬件模塊,沒有此類模塊的設備往往無法通過認證。而要讓設備擁有上述硬件模塊,要花費一定的資金,這就擡高了女巫攻擊的成本,進而達到反女巫的目的。在這種情況下,還是正常運行設備而非制造女巫攻擊更爲明智和穩妥。
數據篡改攻擊
讓我們腦洞一下,如果某台設備收集到的空氣質量檢測數據,其波動性越強,系統就認爲數據更有價值,並爲此提供更多獎勵,那么任何設備都有充足的動機僞造數據,讓其故意表現出高波動性。即便是由中心化廠商做身份認證的設備,也可以在數據計算過程中“夾帶私貨”,對收集到的原始數據進行改寫。
該如何保證DePIN設備是誠實可信的,沒有對收集到的數據進行肆意修改呢?這需要用到可信固件(Trusted Firmware)技術,其中較爲出名的是TEE(Trusted Execution Environment), 還有SPE(Secure Processing Environment).。這些硬件層面的技術,可以保障數據在設備上按照事先驗證過的程序來執行,計算過程中沒有“夾帶私貨”。
(圖片來源:Trustonic)
這裏簡單介紹下,TEE(可信執行環境)通常是在處理器或處理器核心中實現的,用於保護敏感數據,執行敏感操作。TEE提供了一個受信任的執行環境,其中的代碼和數據能夠受到硬件級別的安全保障,以防止惡意軟件、惡意攻擊或未經授權的訪問。比如, Leger, Keystone這些硬件錢包都有使用到TEE技術。
大多數現代芯片都支持TEE,尤其是針對移動設備、物聯網設備和雲服務的芯片。通常情況下,高性能處理器、安全芯片、智能手機SoC(系統級芯片)和雲服務器芯片都會集成TEE技術,因爲這些硬件涉及的應用場景,往往對安全性有較高的追求。
但是,不是所有的硬件都支持可信任固件,一些較低端的微控制器、傳感器芯片和定制的嵌入式芯片可能缺乏對TEE的支持。對於這些低成本芯片,可以通過探針攻擊等手段去獲取芯片內留存的身份信息,進而僞造設備身份和行爲。比如,攻擊獲取到芯片上保存的私鑰數據,然後使用私鑰對篡改或僞造的數據進行籤名,僞裝成設備自身運行生成的數據。
但探針攻擊依賴於專門設備和精確的操作、數據分析流程,攻擊成本過高,遠高於從市場上直接獲取這類低成本芯片的成本。相比於通過探針攻擊等手段破解僞造低端設備的身份信息來獲利,攻擊者會更愿意直接購买更多台低成本的設備。
數據源攻擊場景
前面提到的TEE可以保證硬件設備如實的生成數據結果,只能證明數據在輸入到設備內部後,沒有被惡意的處理,但無法確保數據在進行計算處理前,其輸入源頭可信,這其實類似於預言機協議面對的難題。
比如,某台空氣質量檢測儀,被放置在了排廢氣的工廠附近,但有人在夜裏用密閉的玻璃罐把空氣質量檢測儀罩起來,那么這台空氣檢測儀獲取的數據必定不真實。但上述攻擊場景往往無利可圖,攻擊者大多數時候沒必要這么做,因爲是費力不討好。對於DePIN網絡協議而言,只要設備滿足誠實可信的計算過程,付出了滿足激勵協議所要求的工作量,理論上就該獲得獎勵。
IoTeX提供了W3bStream开發工具,將物聯網設備接入到區塊鏈和Web3當中。在W3bStream物聯網端的SDK中, 包含了通信和消息傳遞、身份和憑證服務以及密碼學服務等基本組件。
W3bStream的IoT SDK 對加密功能的开發非常完善,包含多種加密算法的實現,比如PSA Crypto API, Cryptographic primitives, Cryptographic services, HAL, Tooling, Root of Trust 等模塊。
有了這些模塊,可以在各種硬件設備上,用安全或欠安全的方式去對設備產生的數據進行籤名,並通過網絡傳遞到後續數據層供驗證。
DePHY在物聯網端提供了DID(Device ID)認證服務。DID由生產商鑄造,每一個設備都有且僅有一個對應的DID。DID的元數據可以自定義,可以包含設備序列號、型號、保修信息等等。
對於支持TEE的硬件設備,最开始由生產商生成密鑰對,使用eFuse將密鑰寫入芯片中,而DePHY的DID服務,可以幫助生產商根據設備公鑰來生成DID. 而生產商生成的私鑰除了被寫入到物聯網設備,就只有生產商持有。
由於可信任固件可以實現安全可靠的消息籤名與硬件端私鑰保密,如果人們發現網絡中存在作弊生成設備私鑰的行爲,基本就可以認爲是設備生產商在作惡,就可以溯源到對應的生產商身上,實現信任溯源。
DePHY的用戶在买入設備後,可以獲取設備的激活信息,再調用鏈上的激活合約,將硬件設備的DID與自己的鏈上地址關聯綁定,進而接入到DePHY網絡協議中。物聯網設備經過DID設置流程後,就可以實現用戶與設備之間的數據雙向流動。
當用戶通過鏈上账戶向設備發送控制指令時,流程如下:
1. 確認用戶擁有訪問控制權限。由於設備的訪問控制權限以metadata 的形式寫在 DID 上,可以通過檢查DID來確認權限;
2. 允許用戶和設備开通私密通道建立聯接來支持用戶控制設備。DePHY relayer 除了 NoStr relay 外,還包含 peer-to-peer 的網絡節點,可以支持點對點通道,由網絡裏的其他節點幫忙中繼流量。可以支持用戶在鏈下實時控制設備。
在物聯網設備向區塊鏈發送數據時,後續數據層會從DID上讀取設備的許可狀態,只有通過注冊被許可的設備才能上傳數據。比如被生產商注冊過的設備。
這個DID服務另一項有意思的功能在於提供了物聯網設備的功能特性(trait)認證。這項認證可以識別出物聯網硬件設備是否具有某些特定功能,達到足以參與特定區塊鏈網絡的激勵活動的資格。比如一台WiFi發射器,通過識別到具有LoRaWAN的功能(trait),可以認爲具有提供無线網絡連接的作用,也就可以參與到Helium網絡中。類似的,還有GPS trait, TEE trait等。
在拓展服務方面,DePHY的DID還支持參與質押,鏈接可編程錢包等,方便參與鏈上活動。
1.源自設備的認證。peaq同樣提供了生成密鑰對,在設備上使用私鑰籤署信息,將設備地址 peaq ID 綁定用戶地址等功能函數。但是,在他們的开源代碼中卻找不到可信固件的功能實現。peaq簡單的使用私鑰對設備信息進行籤名的認證方式,並不能保證設備的誠信運行和數據未經篡改。peaq更像是一個樂觀Rollup,默認設備不會作惡,然後在後續階段去驗證數據的可信狀況。
2.模式識別校驗。第二個方案是結合機器學習、模式識別。通過學習之前的數據得到模型,當新的數據輸入時,與先前的模型做比較,判別是否可信。但統計模型其實只能識別出異常數據,並不能判斷物聯網設備是否誠實運行。
比如,城市A中的某台空氣質量檢測儀放置在了地下室,收集產生的數據與其他空氣質量檢測儀都不一樣,但並不代表數據僞造,設備仍在誠實運行。另一方面,只要收益足夠大,黑客們也愿意使用GAN等方法,生成機器學習難以鑑別的數據,尤其是判別模型公开共享的情況下。
3.基於預言機的認證。第三個方案是他們會挑選一些更受信任的數據源作爲預言機,與其它DePIN設備收集上來的數據進行比較驗證。比如,項目方在城市A部署了一台精確的空氣質量檢測儀,其他空氣質量檢測儀收集的數據如果偏差太大,就被認爲不可信。
這種方式一方面給區塊鏈引入並依賴權威,另一方面,也可能因爲預言機數據源的採樣偏差,而使得整個網絡數據採樣都出現偏差。
就目前的資料來看,peaq的基礎設施,在物聯網端無法保證設備和數據的可信任。(注:筆者查閱了peaq的官網、开發文檔、Github倉庫,以及一份僅有的2018年白皮書草稿。即使向开發團隊發送郵件,也未能在發稿前得到更多補充說明資料)
DePIN工作流程中第二個階段主要是收集、驗證物聯網設備傳遞過來的數據,保存起來向後續階段提供數據,要確保數據能完整無誤、可被還原的發送給特定接收方,這被稱爲數據可用性層(DA層)。
物聯網設備往往通過HTTP, MQTT等協議,將數據和籤名認證等信息廣播出去。而DePIN基礎設施的數據層在接收到設備端的信息時,需要驗證數據的可信度,把通過驗證的數據匯集存儲起來。
這裏介紹下,MQTT(MQ Telemetry Transport)是一種輕量級的、开放的、基於發布/訂閱模式的消息傳輸協議,旨在用於連接受限的設備,如傳感器和嵌入式系統,在低帶寬和不穩定網絡環境下進行通信,非常適合物聯網(IoT)應用程序。
在驗證物聯網設備消息的環節,會包含設備可信執行的認證和消息的認證。
設備可信執行的認證可以結合TEE.。TEE通過將數據收集代碼隔離在設備的受保護區域中,確保了數據的安全收集。
另一種方式是零知識證明,這種方法使得設備能夠證明其數據收集的准確性,同時又不泄露底層數據的細節。這種方案因設備而異,對於性能強大的設備,可以在本地生成ZKP,對於受限制的設備,則可以進行遠程生成。
在認證了設備的信任之後,使用DID去驗證消息籤名,就可以確定消息是由該設備產生。
可信數據的收集、驗證使用了TEE和零知識證明的方法。
數據清洗是指將來自不同類型設備上傳的數據格式統一化、標准化,便於存儲和處理。
數據存儲環節,允許不同應用項目通過配置存儲適配器來選擇不同的存儲系統。
在當前的W3bStream實現中,不同的物聯網設備可以直接把數據發送給W3bStream的服務終端,也可以先把數據通過服務器收集後,再發送給W3bStream的服務器終端。
在接收到傳入的數據時,W3bStream會像一個中心分發調度器那樣,將傳入的數據分發給不同的程序去處理,而W3bStream生態內的DePIN項目,會在W3bStream上申請注冊, 並定義事件觸發邏輯(Event Strategy)和處理程序(Applet).
每部物聯網設備都會有設備账號(device account), 歸屬於一個而且也只能有一個W3bStream上的項目。因此,當物聯網設備的消息傳遞到W3bStream服務端口時,可以先根據注冊綁定信息,重定向到某個項目,並驗證數據的可信。
至於前面提到的事件觸發邏輯,可以定義從HTTP API終端、MQTT話題接收到的數據信息,以及檢測到區塊鏈上的事件記錄,檢測到區塊鏈高度等可以被觸發的事件(Event triggers)類型,並且綁定對應的處理程序去處理。
處理程序(Applet)中定義了一個或多個執行函數,被編譯成了WASM格式。數據的清洗和格式整理就可以通過Applet去執行。處理之後的數據被存放到由項目定義的key-value數據庫中。
DePHY項目採用了更爲去中心化的方式來處理和提供數據,他們稱之爲DePHY消息網絡(DePHY Message network).
DePHY消息網絡由無許可的DePHY中繼節點(relayer)組成。物聯網設備可以通過任意一個DePHY中繼節點的RPC端口將數據傳入,傳入的數據會先調用中間件,結合DID去驗證數據可信任。
通過信任驗證的數據需要在不同的中繼節點之間同步,形成共識。DePHY消息網絡採用了NoStr協議來實現。NoStr原本的用途是用於構建去中心化的社交媒體,還記得之前有人用NoStr代替Twitter而大火么,用在DePIN數據的同步中居然也巧妙的合適。
在DePHY網絡中,每台物聯網設備存儲的數據片段,都可以被組織成一棵Merkle樹,節點間會彼此同步這棵Merkle樹的root,以及整棵樹的tree哈希。當某個Relayer得到上述Merkle Root和Tree哈希後,可以快速定位還缺少哪些數據,方便從其他Relayer中獲取補齊。這種方法能異常高效地達成共識確認(Finalize)。
DePHY消息網絡的節點運行是Permissionless的,任何人都可以質押資產並運行DePHY網絡節點。節點越多,網絡的安全性越高,可訪問性就越強。DePHY節點可以通過zk條件付款(Zero-Knowledge Contingent Payments)的方式,獲得獎勵。也就是說,有數據索引需求的應用,在向DePHY中繼節點請求數據時,根據可否檢索到數據的ZK證明,來決定向中繼節點支付多少費用。
同時,任何人都可以接入DePHY網絡來監聽、讀取數據。項目方運營的節點可以設置過濾規則,只儲存與自己項目相關的DePIN設備數據。由於沉澱了原始數據,DePHY消息網絡可以作爲後續其他任務的數據可用層。
DePHY協議會要求中繼節點在運行時至少把接收到的數據在本地存儲一段時間,再把冷數據要轉存到 Arweave 這種永久性的存儲平台上。如果全部數據都當作熱數據去處理,最終會擡高節點的存儲成本,進而提高全節點運行門檻,使得普通人難以運行全節點。
通過冷熱數據分類處理的設計,DePHY能大大降低消息網絡中全節點的運行成本,更能應對海量的物聯網數據。
前面的兩種方案都是把數據的收集存儲放在鏈下去執行,然後Rollup到區塊鏈上去。這是因爲物聯網應用產生的數據量本身極大,同時又有通信延時的要求。如果在區塊鏈上去直接去執行DePIN交易,數據處理能力有限而且存儲成本很高。
單是等待節點共識就帶來不可忍耐的延時問題。peaq卻另闢蹊徑,自己搭建了一條公鏈,直接承載和執行這些計算和交易。它是基於Substrate开發的,當主網實際上线後,承載的DePIN設備增多,將會因爲peaq的性能瓶頸,最終無法承載那么大量的計算和交易請求。
由於peaq沒有可信任固件的功能,基本無法有效驗證數據的可信。在數據存儲方面,peaq直接在开發文檔中介紹了如何給基於substrate的區塊鏈接入IPFS分布式存儲。
DePIN工作流程中的第三階段,是根據區塊鏈應用的需求,將數據可用層的數據抽取出來,通過執行運算或零知識證明,把執行結果高效地同步到區塊鏈上。
W3bStream把這一階段稱爲數據證明聚合(Data Proof Aggregation)。這部分網絡由許多聚合器節點(Aggregator Nodes)組成一個計算資源池(computing resource pool), 給所有的DePIN項目共享調用。
每個聚合器節點會在區塊鏈上記錄自己的工作狀態,是忙碌還是空闲。當有DePIN項目的計算需求過來時,根據鏈上的狀態監控(monitor)選擇空闲的聚合器節點去處理。
被選中的聚合器節點,會先從存儲層檢索需要的數據;然後根據DePIN項目的需求對這些數據做運算,並且生成運算結果的證明;最後把證明結果發送到區塊鏈上給智能合約去驗證。完成工作流程之後,聚合器節點重新回到空闲狀態。
而聚合器節點在生成證明時,會用到分層聚合電路(layered aggregation circuit)。分層聚合電路包含四個部分:
數據壓縮電路:類似於Merkle樹,驗證所有收集的數據都來自特定的Merkle樹根。
籤名批驗證電路:批量驗證來自設備的數據的有效性,每個數據都與一個籤名相關聯。
DePIN計算電路:證明DePIN設備按照特定計算邏輯正確執行了一些指令,例如在醫療健康項目中驗證步數,或者在太陽能發電廠中驗證產生的能量。
證明聚合電路:將所有證明聚合成一個單一的證明,以供Layer1智能合約最終驗證。
數據證明聚合對於確保DePIN項目中計算的完整性和可驗證性至關重要,爲驗證鏈下計算和數據處理提供了可靠和高效的方法。
IoTeX的收益環節也主要在這一階段,用戶可以通過質押IOTX代幣,運行聚合器節點。越多聚合器的參與,也就能帶來更多的運算處理能力,形成算力充足的計算層。
在數據分發層面,DePHY提供了協處理器來監聽 DePHY 消息網絡的 finalized 消息,進行狀態遷移(State change)後,將數據打包壓縮並提交到區塊鏈。
狀態遷移是用於處理消息的類智能合約的函數,由不同DePIN項目方定制,還包括zkVM或TEE的計算打包數據處理方案。這部分由DePHY團隊向DePIN項目方提供項目腳手架(Scaffold)來开發和部署,具有很高的自由度。
除了DePHY提供的co-processor, DePIN項目方也可以根據項目腳手架將DA層的數據接入到其他基礎設施的計算層,實現上鏈。
盡管DePIN賽道火熱,但物聯網設備要大規模接入到區塊鏈,仍存在技術上的障礙。本文從技術實現的角度,回顧分析了物聯網設備從可信任產生數據,驗證存儲數據,通過計算產生證明和向區塊鏈rollup數據的整個流程,從而支持將物聯網設備集成到Web3應用中。如果你是DePIN賽道的創業者,也希望本文可以在方法論和技術設計上能對項目發展有所幫助。
在選擇分析的三個DePIN基礎設施中,peaq依然像六年前網上的評論一樣,is just hype. DePHY 和 IoTeX 都選擇了鏈下收集物聯網設備數據,然後rollup到鏈上的工作模式,能夠在低時延、保證設備數據可信的條件下,將物聯網設備數據接入到區塊鏈。
DePHY 和 IoTeX 又各有側重,DePHY的DID包含了硬件功能trait的驗證,雙向數據傳輸等特點,DePHY消息網絡更注重於去中心化的數據可用層,更多是作爲低耦合的功能模塊與DePIN項目結合;IoTeX的开發完整度很高,有完整的开發工作流程,更側重於給不同事件綁定處理程序,偏向計算層。DePIN項目方可以根據實際需求,選擇不同的技術方案去組合。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:DePIN科普文:IoTeX、DePHY和peaq等基礎設施是怎么運轉的
地址:https://www.torrentbusiness.com/article/97172.html
標籤:DePIN