Ankr一個基于計算能力的,帶有本地數據貴送系統的去中心化網絡。我們首先介紹一種新的挖礦方案,該方案使用的共識算法是在啟用SGX的可信執行環境(TE)中對有用工作的證明(PoUW)。然后,我們詳細介紹了Ankr如何使用這個平臺在區塊鏈環境上啟用分布式云計算(DCC)。接下來,我們將描述一個本地認證的數據饋送服務(NOS) 該服務將被用于那些使用可信硬件的智能合約。
1.簡介
比特幣問世以來,世界見證了區塊鏈技術的快速發展和進步。然而,各種各樣的障礙仍然阻礙著區塊鏈技術在真實的商業事物中的廣泛應用。最大的挑戰包括:
●資源效率低下 能源和計算能力的巨大浪費
●數據效率低下 缺乏可靠和有效的數據流服務
●可擴展性低 由于單鏈而導致的低吞吐量
●不平等 大部分資源掌握在少數人手中
●隱私性低 對其他私人信息缺乏機密性。
Ankr通過引入一個資源高效的區塊鏈框架來解決這些問題,該框架真正支持分布式云計算,并為業務應用程序提供用戶友好的基礎設施。Ankr 的關鍵創新和改良包括:
●新型激勵方案 基于有用的計算工作量的
●去中心化計算力 由無服務器和無狀態的計算單元組成
●可靠的數據饋送服務 連接已有的商業模式
●安全與隱私 由可信的硬件和密碼原語加以保證
●速度與延展性 通過Plasma-chain來實現
2. 背景
2.1 共識協議
比特幣的基本共識,即工作證明(PoW),解決了去中心化加密貨幣設計中存在的兩個問題:如何選擇共識領袖,以及如何在參與者之間公平地分配報酬。然而,依賴PoW的比特幣和其他加密貨幣除了作為替代支付的方式之外,在現實世界中沒有實際應用。盡管功能有限,但比特幣網絡目前的用電量比整個冰島還多,預計到2020年,比特幣的能源消耗將達到丹麥全國人口的消耗水平。
其他常見的共識機制,比如拜占庭式容錯(PBFT)或權益證明(PoS)基本上是沒有任何浪費的,但它們限制了參與度或者要求參與者鎖定區塊鏈上的股權。此外,PBFT和PoS常常是復雜而隨意的,因此很難更新和調整原始的設置,
2.2 可信硬件
Intel SGX(軟件保護擴展)是-套新的指令集,該指令集可以允許在硬件的一個獨立區域(飛地)內執行一個應用程序。這種機制保護應用程序的完整性和機密性,防止某些形式的硬件和軟件攻擊,包括惡意操作系統。通過在SGX中獨立地執行程序,系統調用可以保證被正確和安全地執行。
SGX允許生成身份驗證,以遠程證明操作的可靠性。當創建飛地時,CPU會生成一個初始狀態的散列哈希,稱為測量。飛地內的軟件可在稍后請求一份報告, 其中包括過程整個過程的測量和補充數據。使用硬件保護的密鑰對報告進行數字簽名,從而證明該軟件程序是在sgx保護的飛地上運行的。
這樣的證據可以在遠程系統中驗證,SGX 使用群組簽名來進行驗證。
SGX在2015年被第六代因特爾核心處理器所引進。Ankr 的技術使用SGX CPU挖掘平臺,大大降低了礦工們進入市場的門檻,最大限度減少了礦池形成挖礦壟斷的可能性。
其他公司包括ARM和Nvidia也投資了TEE這一解決方案。例如,ARM提供的TrustZone是專為移動設備或平板設備開發的TEE簡化版本。另一方面,Nvidia 將為TEGRA開發的可信小內核(TLK)作為針對TEE的第一個基于gpu的方案。這些努力,連同英特爾SGX,代表了完整的TEE設備組合,他們將擴展Ankr技術的基礎。
2.3分布式計算
有幾個項目正在嘗試利用區塊鏈技術提供分布式計算服務。它們主要可以分類為:
● 分布式智能合約區塊鏈中的代碼執行目前是去中心化的,但不是分布式的。因此,以太坊中的每個節點都冗余地執行相同的代碼并保持相同的公共狀態??朔@種性能缺陷的一個自然改進方法是分布地執行智能合約。例如,Dfinity 將權益證明與可驗證的隨機函數結合在一起,它只指定鏈中的某個候選節點,并有權挖掘區塊,從而執行智能合約。這種方法提高了執行的吞吐量,但仍然受到智能合約的限制,特別是在沒有網絡連接的情況下。
●外接計算容器 另一個想法是將區塊鏈與外部計算容器相結合。Golem、 SONM 和iExec 等項目對這個基礎架構有著相同的愿景。然而,他們各自的技術設計和進入市場的策略各不相同。Golem和SONM都與Docker整合在一起,并且都有自己的利益市場。Golem 的目標是吸引普通的3 d渲染用戶,和SONM則更接近霧和邊緣計算。另一方面,iExec 注重于使用桌面網格網絡構建一個去中心化的網絡云。盡管這些項目都非常有新意,但他們并沒有Pow機制的問題。
●高效共識機制 第三種方法是在共識協議中使用計算能力。平臺可以借助Intel SGX或ARM TrustZone等可信的硬件,在可信執行環境[TEE)提供商的認證機制上建立對正確度協議的信任。這將為有用的工作負載釋放很大一部分計算資源。 Ankr對有用工作的證明(PoUW)利用了實際的計算需求,而不是哈希計算作為在鏈中生成新塊的決定因素。這種方法允許礦工不僅可以從挖掘新的區塊和交易費用中獲得收入,而且還可以從完成計算對客戶有用的工作的子任務中獲得收入。
2.4 數據饋送
目前,數據饋送系統的解決方案并不理想:
● 中心化的數據饋送服務-個集中的數據饋送服務是許多塊鏈中最常用的方法。這種系統與去中心化是對立的,因為它不能提供干擾抵抗性和安全性。幾乎所有中心化的數據饋送服務都依賴于鏈下的數據公證服務,這可能造成潛在的問題數據結果。
● 人工手動輸入許多協議依賴于完完全全的人工輸入。盡管這種方法實現了去中心化而且靈活,但實際上不僅時間效率低,而且會造成資源擁堵。
● 操縱數據源盡管TLS-N提供了數字簽名的數據源,但這種方法將要求所有過時的系統和web站點相應地更改其基礎設施。
3.有效工作證明
有效工作的證明(PoUW)共識機制能夠在不浪費能源的情況下達到高安全標準。在本方案中,具有CPU計算能力的參與者可以在可信硬件的監督之下執行有用的計算,并且在區塊鏈的經濟體系中獲得獎勵。相比之下,PoW只允許在礦工解決了復雜的哈希問題后才能獲取報酬。這種設置是由于缺乏可信執行環境(EE)。一個由SGX保護的硬件飛地可以作為CPU活動的可信監控器,從而驗證礦工有用的計算過程并提供挖掘獎勵的證明。
3.1 有效工作證明組成部分
如圖1所示,Ankr的挖掘方案由三個部分組成: 礦工、有效工作的供應程序和區塊鏈代理。
● 區塊鏈代理區塊鏈代理是PoUW挖礦方案與區塊鏈系統其余部分之間的紐帶。它們通過RPC請求直接與區塊鏈的P2P網絡交互。一個區塊鏈代理將收集交易事務并生成一個缺乏
● 有效工作證明的模板。一旦礦工提供了有效工作的證明并將其嵌入到模板中,區塊鏈代理將驗證所附的證明,將區塊發布到區塊鏈,然后收到相應的獎勵。
● 有效工作供應程序有效工作供應程序的主要功能是為礦工提供有用的工作任務并接收任務結果。一個有用的工作任務包含兩個部分一個有效工作證明飛地和一些任務輸入。任何符合SGX的代碼都可以通過Ankr提供的工具轉換為有效工作證明”飛地。
●礦工礦工是整個共識協議的核心。一個礦工接受一個有效的工作任務和上面提到的模板作為輸入。然后,礦工可以啟動-一個Intel SGX飛地來裝載并運行這個有效的工作任務。在執行結束時,任務的結果將返回給有效工作供應程序。礦工將需要通過測量有效的工作任務來完成這個循環,并決定這項工作是否成功地贏得了共識。如果贏得共識,那么礦機將生成一個包含以下兩部分的PoUW,并將其附加到區塊模板中以進行發布。
1.一個有因特爾SGX產生的認證來證明PoUW飛地符合Ankr的挖礦規范。
2.另一個證明來顯示挖礦任務是在給定的難度級別完成的,這將作為新區塊下一次迭代的基線
算法1 PoUW挖掘算法如圖1所示
3.2 區塊的產生
Ankr的礦工在工作證明(POW)的系統中統計地模擬了區塊生成的過程。在比特幣中,哈希計算的每一次迭代都可以被建模為伯努利試驗,整個區塊生成過程可以被視為一個泊松隨機
過程。同樣,在PoUW, 一個礦工的飛地將每條指令當作-個伯努利試驗,然后可以像在PoW中一樣處理和調整PoUW的采礦時間。
為了確定哪條指令值得獎勵,PoUW 飛地通過使用SGX的隨機數生成器(SRNG)生成一個隨機數,并檢查這個數字是否小于期望的難度。為了避免檢查每條指令所帶來的高昂開銷,Ankr將一個有效的工作任務劃分為短時間的小任務(例如,10 秒)。 每個子任務完成后,飛地都調用SRNG來檢查是否至少有一條指令獲得了共識。如果是的,飛地就會生成包括難度系數在內的相應的認證。
3.3 有效工作的計量
在Ankr中,有效工作任務的計量是在每條指令的基礎上這樣比任務運行時間,任務數量的多少,任務文件大小等等變量更加準確。雖然使用CPU周期的方法可能看起來似乎更準確,但是該方法容易受到操控。因為CPU周期數可以通過CPU的性能計數器來更改。此外,即使有問題的飛地被剔除出去,計數器也會增加。因此,-個多飛地環境將導致CPU周期計數測量的急劇膨脹。綜上所述,CPU 指令計數雖然不是很完美,但仍然是評估任務工作量的一個可靠代理。
3.4 證明驗證和區塊驗證
3.4.1因特爾SGX遠程驗證
認證是證明一個軟件已經在平臺上正確實例化的過程。在因特爾SGX中,它是一種機制,通過這種機制,另一方可以獲得信任,認為正確的軟件在-個已啟用的平臺上的飛地內安全運行。為此,因特爾SGX體系結構生成一個可由遠程實例驗證的認證證明。當一個飛地由SGX創建時,CPU 將生成一個初始狀態的散列,稱為測量。稍后,飛地內部的代碼可以請求由該測量和代碼提供的其他補充數據組成的報告。此報告由硬件保護的密鑰進行數字簽名,以證明代碼已在SGX飛地上成功運行。這份被數字簽名的報告,稱為舉證(quote)。以及“測量”,和補充數據是認證的組成部分,可以實現遠程驗證。
3.4.2 兩層等級認證
PoUW認證遵循兩層等級認證。
● 有效工作認證有效工作認證由”飛地創建。該認證包含來自區塊鏈模板的前綴哈希和難度系數。這類證明可以證明:
1.一個有效的工作任務是在-一個礦工的飛地里適當地運行。
2.這個有效的工作任務是被具有相同前綴哈希和難度系數的區塊模板挖掘的。
●編譯器檢查認證PoUW礦工引入了一個叫做編譯器檢查器的工具,它檢測并確認有效工作任務是否符合PoUW的要求。編譯器檢查器在受信任的環境中運行,如果任務滿足所有下列要求,則生成包含測量有效工作塊的認證。
1.文本部分是不可寫的,這意味著出于安全考慮,它不允許在運行時重寫它。
2.專用寄存器用于指令計數,以便正確地計量工作量。
3.運行時是正確鏈接的。
4.唯一的切入點是PoUW運行時間。
3.4.3區塊認證
除了比特幣或以太坊上存在的塊驗證機制外,PoUW 還需要對每個區塊的認證機構進行驗證。一般情況下,使用分層認證方法來獲取沒有人事先知道的代碼認證。編譯器檢查飛地的測量被硬編碼到需要驗征PoUW的任何組件中。因此,塊驗證按照指示工作,只有當兩個檢查都通過時,才會成功地驗證所討論的新區塊。
1.對編譯器檢查飛地和編譯器檢查認證的測量證明飛地已經成功地通過了編譯器檢查。
2.這個飛地的測量和有效的工作證明說明了這個飛地在礦工的“飛地上正常運行。
3.5 PoUW前景
PoUW為Ankr開創了新的機遇,因為礦工在網絡中的計算能力幾乎可以用于所有的鏈上計算。例如,如果客戶端通過我們的數據饋送服務提交一個私有數據報請求,那么礦工將使用它的資源來幫助對數據報請求中的參數進行加密和解密。過多的計算資源可以貨幣化,然后賣給內部或外部應用程序,以獲得有效的工作。這些有效的工作任務范圍從訓練神經網絡到托管網站服務。與比特幣不同的是,Ankr 會獎勵每個用戶對其計算資源的貢獻。另一方面,在計算周期中,只有一個用戶幸運地擁有生成區塊并獲得額外獎勵的權限。
隨著2015年后啟用sgx的CPU的廣泛使用,PoUW 協議有潛力為有用的工作計算釋放大量空閑的自帶SGX的CPU計算能力。我們設想有用的工作可以來自于區塊鏈鏈上和鏈下的計算任務。這將使分布式云計算成為可能,因為空閑的cpu現在可以用很少的成本為所有者創造價值。此外,在這種分布式計算框架下,任務請求者將能夠訪問比傳統的集中式云計算服務更便宜的云計算服務。目前,亞馬遜、微軟、谷歌、阿里巴巴等云服務巨頭由于壟斷市場,利潤空間巨大(30%)。
4. 去中心化云計算
4.1 區塊鏈技術與去中心化云計算
4.1.1背景
隨著互聯網技術的發展,產生了海量的文本、音頻、視頻等數據。然而,這些數據大多既非結構化的,也不是相互關聯的。以串行方式處理數據變得越來越沒有效率,并且趕不上業務開發的快節奏。
● 分布式運算與并行運算分布式計算是一種解決方案,它通過多個地理上不同的主機(集群)完成巨大的計算任務,而不是通過單個超級計算機。并行計算是指多個cpu的并行處理。并行計算可以提高計算效率,前提是程序算法應盡可能多地進行并行設計。
●虛擬化虛擬化是一種為云計算劃分資源的方法。它包括兩個方面物理資源池和資源池管理。還有兩種虛擬化類型。-種是將多個物理資源虛擬化為一個“大型”邏輯資源層。另一種方法是將一個物理資源劃分為多個“小”邏輯單元。
目前,云計算主要采用第一種虛擬化技術,其主要部署在分布式集群上處理大量數據,并提供按需的I服務,以獲得大量訪問。DCC 是一種快速處理大量數據的優越方法。這個解決方案建議使用更多的硬件來交換處理時間,這需要在多臺計算機上分布數據并同時(并行地)處理它們。然而,大多數I公司無法構建自己的分布式云系統。相反,他們使用來自現有云服務提供商的產品來專注于他們自己的產品和業務。
在靈活的開發I具的幫助下,DCC 可以幫助開發人員根據他們的規格快速地去發布他們的服務或產品。應用程序構建的新基礎將依賴于分布式微服務和執行后小任務的同步交付。隨著
CPU價格的下降,通過云服務的形式人人都能訪問并負擔得起復雜的應用程序(如CGI這染、科學計算、機器學習等)。
4.1.2 網格計算與志愿計算
網格計算是從多個地點收集計算機資源,以達到共同目標。一般來說,網格可以看作是一個分布式系統,其中每個節點集執行不同的任務或應用程序。因此,這可以被認為是解決上面提到的大量數據問題的辦法。
然而,網格的主要來源目前來自志愿者,個人或學術組織。例如,伯克利網絡計算開放設施(BOINC)是各種學術項目尋找公共志愿者的共同平臺。它的目標是將一個異構的、高流動率的、不可信的消費者計算機池轉變成一一個對科學家或研究人員負責的、可預測的、可信任的工作處理系統。盡管該平臺在技術上很先進,但仍面臨以下問題。
● 可持續的計算資源有了志愿者計算,節點可能會時不時地“離線”, 因為它們的所有者可能將資源用于他們自己的主要目的。此外,由于缺乏競爭激勵機制,很難獲得穩定的計算力供應群。
● 資源分配例如BOINC 的分布向北美和西歐等富裕地區傾斜。然而,那些缺乏資金并且高度依賴志愿者計算來進行研究實驗的領域沒有多少計算力供應者在參與。
4.1.3 DCC在區塊鏈上的優勢
P2P網絡允許應用程序所有者和個人用戶(都是請求者)從其他用戶(供應商)那里租用計算能力。目前,比特幣或Ethereum等流行的區塊鏈網絡中的計算資源已經足以處理高吞吐量的計算任務,從而為超級計算機或大型企業云計算提供一種廉價的替代方案。然而,云計算資源是由集中的云服務提供商控制的,并且受制于嚴格的操作模型。一個去中心化的云計算平臺可以引導一個基于區塊鏈的支付系統(比如Ethereum),允許運營商(請求者)、賣家(供應商)和軟件開發人員之間進行直接支付。
4.2 操作模型
4.2.1 代幣經濟模型
下面是代幣經濟模式的概括。
● 請求節點這個節點通常由一些需要計算的企業商家或科研機構執行。由于它們所擁有的計算機無法滿足它們目前的計算需求,因此就使用超級計算機或其他具有成本效益的計算資源,例如全球分布式計算。在將作業發送到網絡之前,可能需要請求節點根據某些規范對代碼或數據進行分類?;蛘?,其他節點也可以來完成此任務。
● 分類或調度節點 該節點用于根據某些規范對任務和數據進行分類,然后將它們分派到合適的處理節點。此步驟的目的是預先處理作業的元數據、特征和優先級,從而選擇最佳節點來處理它們。
● 處理節點此節點用于處理任務或數據。由于有數千種類型的任務或數據從前兩種類型的節點傳輸過來,因此處理特定數據或模型的方法也不同。對于一些復雜的項目,參與處理節點的要求也會更高。在這里舉兩個例子:
1.在醫學領域,數據的處理,如醫學圖像,通常需要有專業知識的人員。此外,并不是每個人都應該擁有手動輸入的訪問權限。
2.在人工智能和機器學習領域,由于數據處理模型(如KNN或決策樹)的特殊性,數據訓練和處理通常由經驗豐富的開發人員進行編碼。此外,單個普通CPU或GPU已經不足以滿足這種計算需求。
●驗證節點該節點判斷并過濾來自-個或多個處理節點的處理結果。這通常只需要一般類型的CPU或計算能力?;旧?,相同的數據處理任務將被發送到多個數據處理節點,以便稍后進行投票以確定滿意的輸出結果。雖然這將導致數據或計算冗余,但最終結果的準確性性可以得到高度保護。此外,使用聲譽機制可以有效地降低故障節點的影響。
4.2.2 Ankr通證系統
Ankr通證是-種作為存儲和傳遞價值的手段。在任何時候,Ankr 通證都可以用來激勵參與Ankr網絡的合作,并且可以用于PoUW的計算費用。Ankr DCC的所有挖礦參與者都可以通過貢獻自己的計算能力獲得Ankr通證。這樣的生態系統是一個良性循環:參與有效工作計算的人越多,他們獲得的Ankr越多;它們擁有的通證越多,就能在生態系統中獲得越多的服務,從而引發進一步的計算需求。
可以通過為有效工作計算提供空閑計算能力來挖掘Ankr通證,并對在區塊鏈上發生的計算和事務付費。這將創造一個真正自我維持的生態系統,并創造-個“去中心化的世界計算機”。用戶需要花費Ankr通征去使用去中心化的計算機,但它將比集中式解決方案(如亞馬遜云或谷歌云)便宜得多,因為去中心化的云計算將利用那些即將被浪費的計算能力,并且不會像互聯網巨頭那樣收取高昂的費用。此外,去中心化計算機的人力資源成本將會大大降低,因為去中心化的解決方案不會花費大量的資金用于管理、營銷和高管薪酬。換句話說,” 去中心化的計算機”將以最低的成本提供最強大的計算能力。
4.2.3名譽系統
區塊鏈DCC不再由志愿者提供。需要建立-種新的機制來衡量每個節點的貢獻,分配更多的任務來給予更多的獎勵。
一種可能是測量完成任務的數量。然而,未來在分布式云計算上運行的項目可能會有很大的不同。例如,一個任務可能需要1小時來處理,而另一個任務可能需要20 小時。這將導致相同數量的任務得到相同的獎勵,但是工作量完全不同。這顯然不是一個可行的解決辦法。同樣,這種方法不能很好地測量CPU 運行時間,因為很難準確地記錄每個用戶實際執行的計算量。為了實現公平、準確的報酬分配,需要建立多啟發式算法。
一個好的名譽系統應該考慮以下幾個方面來計算節點的貢獻:
● 性能測試在網絡中,性能裝備的資源使用和成本差異很大。因此,對于不同設備應采用標準化的性能測量,以獲得合理的性能判斷,以便進一步計算。
● 正確結果的數量DCC服務的關鍵問題是結果的質量。如果結果不正確或由惡意用戶產生,則不可接受。正確結果的數量將是參與者聲譽的一個很好的直接指標。誠實的人將得到更多的獎勵,而惡意的用戶將受到懲罰??赡艽嬖诘膯栴}:
● 不準確的性能測試 這一點在跨 平臺測量時比較明顯。 例如,一臺計算機在Windows系統上的測量值可能與Linux系統有極大的不同。
● 降低作弊障礙DCC需要向公眾開放源代碼。用戶可以下載源代碼,以便根據自己的需要修改和構建邏輯。
4.3 體系結構概述
Ankr致力于構建一個資源高效的區塊鏈框架,該框架真正支持分布式云計算(DCC),并為業務應用程序提供用戶友好的內部結構。為了實現這一點,Ankr 徹底調查了DCC最流行的使用模式和底層技術及平臺。我們的目標是為云用戶提供一個平穩的簡單的用戶體驗,并將轉換成本降至最低從而可以將Ankr的DCC集成到用戶的解決方案中。
工作證明(PoW) 是在缺乏可信執行環境(EE)的情況下發明的。因此,比特幣要求每一個礦工,甚至是攻擊者,都要解決-個異常困難的任務(哈希計算),才能成為下一個共識領袖。但是,有效工作證明(PoUW) 在TEE的幫助下,釋放了每個礦工的計算能力,用于-般用途的任務。此外,這些礦工構成了一個由獨立的無服務器計算單元組成的大型網絡,Ankr 能夠在此基礎上構建去中心化云計算服務。
無服務器架構是云端-個熱門設計范例。通過使用無服務器架構,開發人員可以專注于業務需求的核心邏輯,而不必擔心管理和操作服務器。根據亞馬遜云服務(AWS)的說法,“無服務器架構是一種無需管理基礎設施就可以構建和運行應用程序和服務的方法。你的應用程序仍然在服務器上運行,但是所有的服務器管理都是由AWS完成的。”
在Ankr上,我們展示了Ankr分布式云計算的三層設計,以及這些層次是如何組織在一-起作為一個系統運作的。
4.3.1 區塊鏈基礎設施
區塊鏈基礎設施是Ankr分布式云計算設計的最低級別。這--層提供了除挖掘外的區塊鏈的常規功能,如服務RPC請求、維護塊或交易事務等。所有基于Ankr的區塊鏈構建的Dapp都直接與這一層相關。
由于以太坊的低效率,我們還利用多鏈結構來提高智能合約的吞吐量,這將在第6節詳細討論。
4.3.2 有效工作證明(PoUW) 的礦工
PoUW礦工是堆棧的執行層。如第3節所述,分布式云計算中該層的具體功能為:
1.從區塊鏈結構層獲取帶有事務的區塊模板。
2.從分布式計算引擎層獲取有用的工作,并在TEE中執行這些工作。
3.如果礦工成功獲得發布下一個區塊的特權,這個礦工將把PoUW附加到這個塊,并將它添加到區塊鏈基礎結構層,以便發布。
4.3.3 分布式計算引擎
分布式計算引擎是三者中最重要的一層。這一層的主要目的是接受來自云客戶的有用工作,并以Ankr獨特的方式在PoUW礦工中分派它們。
大多數分布式云計算客戶使用現有的開源引擎(如Spark)來開發大規模的解決方案,如機器學習、模型培訓等。 Ankr希望提供類似的開發經驗,以降低Ankr客戶的切換成本和學習曲線。
● 作業調度器和時間規劃 作業分發機制的最初思想是啟用公平調度程序。在公平分享之下,這一層的節點將在內存中保持一個散列映射來跟蹤所有被管理的礦工并且以“循環”的方式給他們分配工作,以便所有礦工的工作得到一個大致相等的份額數量。一旦確定了這一點,還可以考慮進-步的啟發性因素,如作業大小存儲大小、投標價格、甚至IP地址,以調整作業的優先級,獲得更好的用戶體驗,并防止PoW目前的集中化采礦力量。
● 無服務器 Spark為了消除客戶的操作復雜性,下一代Spark也將走向無服務器計算。Spark的發明者Databricks 已經發布了其名為“serverless Pool“的無服務器產品的第一階段,該產品允許用戶在自己的AWS帳戶中為無服務器工作負載運行一個池。盡管仍處于早期階段,但通過引入適當的適配層,這一舉措帶來了一個實際的解決方案,將來自PoUW礦工的Ankr計算能力與流行的開源工具集成在一起。
● 隱私和安全如第5節所示,NOS提出了一種將鏈外數據轉移到鏈上智能合約的安全可靠的方法。這里可以使用類似但不完全相同的機制,利用英特爾SGX,以確保客戶提交的有用工作(作為一種數據)可以安全地傳輸到礦工中的飛地。在此期間,還應使用TLS和證書來加強層間的溝通。
4.4 安全模型;
Ankr將擁有自己的區塊鏈,它可以從以太坊派生出來,盡管Ankr的共識協議可以很容易地轉換為比特幣或以太坊作為-個新的共識框架。從客戶的角度來看,以太坊是支持智能合約的首選。因此, Ankr的安全水平將保持在與以太坊相同的水平。
一般來說, 安全性是為Ankr的分布式云計算精心設計的。
4.4.1飛地安全性
SGX允許在完全獨立、無篡改的環境中執行可靠的代碼。用戶還可以選擇遠程驗證執行的輸出結果。此外,采用片上數字隨機數發生器(SRNG)來提高系統的安全性。
4.4.2數據源安全性
數據源提供者可以根據需求選擇不同的安全級別。Ankr 支持從非加密到高度機密的所有安全級別。為實現高級別安全,采取了以下措施:
●在傳輸中,提供者可以選擇TLS 1.2/1.3 和PFS(完美轉發保密)。提供者的證書將被驗證。提供者也可以選擇客戶端證書驗證,但是在這種情況下應該配置它自己的提供者節點。
●在數據加密中,數據將使用參數進行加密。因此,即使TLS端點也無法看到數據的明文。數據對稱密鑰和MAC使用目標飛地的公鑰進行加密。只有那個飛地才能解密數據。當一個飛地希望將這些數據傳輸到另一個飛地時,第一個飛地將使用第二個飛地的公鑰加密明文,然后將其發送到第二個飛地。為了保證Ankr數據的機密性和完整性,我們設計了一個簡單的TLS記錄協議。
通過這種方式,即使是在攻擊的操作系統中也只有飛地本身才有機會閱讀清楚的數據文本。
5. 本地驗證數據饋送
我們介紹了本地數據饋送服務(NOS),這是一個構建在可信硬件上的經過身份驗證的數據饋送系統。
5.1組成部分
NOS由三個部分組成:NOS智能合約,飛地和中繼器。 飛地和中繼器運行在 NOS服務器上,NOS智能合約在區塊鏈上執行。
● NOS智能合約 NOS智能合約是NOS系統的前端。它提供了一個API接口來與各種編程語言中的任何形式的智能合約交互。具體來說,NOS智能合約接受基于區塊鏈的智能合約的數據報請求,并使用相應的數據報進行響應。Cnos 也提供了類似于以太坊的貨幣管理服務。此外,它還修復了以太坊存在的許多問題,這些問題將在后面討論。
● 硬件飛地 飛地負責接收來自區塊鏈的數據報請求。它查詢支持httpts的外部網絡數據源,并以數字簽名消息的形式返回數據報。飛地應該被認為是安全的,因為它是離線的,并且完全與任何操作系統和軟件隔離。
●中繼器 中繼器負責代表飛地處理雙向網絡通信。
5.2 協議
●初始化 智能合約向NOS合約發送一個數據報請求。
●監控和中繼器中繼器監控NOS合約并將任何傳入的請求發送到飛地。
●提取飛地通過使用給定參數的HTTPS 與數據源通信。獲取數據報后,通過中繼器將數據報轉發給NOS合約。
●響應NOS合約將數據報返回給智能合約
5.3 數據流
數據報請求以m1 = (params,allback)的形式出現。該參數指定數據源網址、對于內容的任何特定需求以及響應的預期交付時間。接下來,NOS合約將m2 = (id, params)轉發到飛地,其中id是唯一自動生成數字。然后NOS合約從NOS服務器接收m3= (id、params、 數據), 其中數據是被請求的數據報。在檢查和確認請求和響應中參數的一致性后, NOS合約生成了m4 = (data)到用戶的智能合約中。系統中各層之間的消息傳遞需要使用數字簽名進行身份驗證。
5.4 改善安全性和保密性
● 私有數據報請求并非所有交易都必須公開可見。NOS通過加密數據報請求中的參數來支持基于許可權限的用戶機密性。只有有權限的用戶才能看到數據響應。
● 礦工費用的可持續性以太坊需要交易發起者支付礦工費用。這種設計存在惡意用戶觸發竊取礦工費的調用、導致礦工費耗盡和應用程序級別上潛在的“拒絕服務”攻擊的風險。NOS協議確保一個誠實的系統不會耗盡礦工費,一個誠實的請求者不會支付過多的礦工費用。
● 硬件代碼最小化可信計算基礎(TCB)是鏈上和鏈外計算環境的混合。區塊鏈上智能合約的計算是緩慢、昂貴和透明的。為了在組件之間建立幾乎完全安全的通信,我們需要最小化TCB中的代碼。這背后的邏輯是,理論上較小的代碼基更難以攻擊。在TCB中,飛地中的代碼大小和TC合約都被最小化了,飛地只有大約 2000行C或c++代碼,而合約中只有大約100行solid代碼。
5.5使用案例
一個NOS主機每秒可以處理大約65個交易。此外,NOS 可以很容易地在多個主機之間并行化,因為獨立的NOS主機可以提供沒有相互依賴關系的請求。相比之下,以太坊每秒可以處理20到30筆交易,而比特幣每秒處理大約7筆交易。
● 網站API數據抓取NOS可以輕松地將JSON或XML格式的大量數據從啟用http的網站傳輸到區塊鏈。舉個例子,MLS 是所有房地產數據的可信來源。該API支持近期銷售數據、公立和私立學校數據、人口統計數據、房屋價值數據和市場趨勢數據。NOS 將支持從鏈外實體到鏈內環境的實時數據傳遞。
● 遺留系統遷移 NOS能夠使用傳輸層安全協議從傳統SaaS數據潰送系統遷移數據。
● 現代應用程序接口NOS 系統可以將區塊鏈與臉書messenger和微信等現代應用程序連接起來。
6. 未來工作
6.1 延展性
以太坊在一-個鏈條上連續處理所有的智能合約,這會限制吞吐量并顯著降低可用性,特別是當鏈條上有大量合約和復雜數據時。我們將密切關注我們計劃如何通過采用Plasma 和分片技術來擴大區塊鏈。
6.1.1 Plasma
Plasma是一種協議,其目的是通過構建區塊鏈的樹結構來解決可伸縮性問題。主鏈充當整個系統的主干,而每個子鏈都根據特定應用程序的需要進行定制。基本上,主鏈的每個塊都包含對子鏈邊界的引用。當子鏈上生成新的塊時,主鏈將創建新的塊以反映新的子鏈邊界,跨鏈通信作為消息系統而存在,以保持鏈與鏈之間的隔離。
通過將一些事務從主鏈轉移到Plasma鏈,可以顯著提高主鏈的效率,特別是對Plasma操作人員給予適當的激勵。另-個優點是Plasma 鏈實現的靈活性,只要它可以通過父鏈上的合約進行有效的交叉檢驗。使用新的加密方法,我們可以利用zkspuks的環簽名來幫助擴展Plasma 鏈的實現,這是一種零知識驗證機制,可以在不執行代碼的情況下驗證計算的正確性,從而為終端用戶保密。
每個子鏈可以根據不同的技術需求來定制。應用程序專用的智能合約將存儲在子鏈上,主鏈將用于共識和分布式計算。由于主鏈可以利用全球分布式計算能力,子鏈上的事務的計算速度將比傳統單鏈結構上的事務快得多。如果子區塊鏈中的參與者被證明有惡意行為,交易事務甚至可以被逆轉。
在Ankr 中,我們相信主鏈還將為非鏈數據提供-個本地的經過身份驗證的數據饋送服務,以便將其傳遞給每個子鏈。目前,現有的數據饋送解決方案獨立于區塊鏈框架運行,兼容性有限。我們提議為每個子鏈提供一個用戶友好的通用API, 以便連接到鏈外實體。現有業務可以在子鏈上構建分布式的自治應用程序,具有強大的計算能力和主鏈提供的本地數據饋送服務。不同的定制需求可以分為以下幾類:
●交易量小但交易額大,如房地產
●交易量大但交易額小,如電子商務
●實時的需求和響應,例如預測市場
6.1.2分片
分片是另-種延展性解決方案,它使用分片或微鏈在擁擠的區塊鏈上處理不同類型的事務。通過對鏈上的事務進行分類,只有-組節點需要驗證相關的事務。分片消除了整個網絡處理每個單獨事務的需要,從而增加了區塊鏈每秒處理事務的能力(TPS) 。
這兩種擴展解決方案結合在一起,可以疊加提高網絡的TPS,同時在一些流行的區塊鏈協議(如以太坊)上保持安全性,從而創建一個去中心化的生態系統,可能每秒支持大量事務。 因此,如果有一個100倍的分片和一個100倍的Plasma 鏈,這兩個理論上會給底層區塊鏈一個10000倍的可伸縮性的增益,這本質上意味著這個區塊鏈將足夠強大,能夠處理人們在網絡上嘗試做的大多數應用程序。
6.2 存儲
大數據分析是Ankr技術的一個應用實例。盡管Ankr的分布式云計算對數據局部性分析很友好,但一些計算客戶也需要高吞吐量的數據密集型計算。IPFS 是解決方案之一,但是Ankr需要短時間存儲、元數據存儲、自毀和存儲獎勵等特性。因此,Ankr 已經制定了一個計劃,在分布式文件系統IPFS上構建自己的存儲系統。
6.3移動端與顯卡
正如第2節所討論的,TEE未來在移動端或顯卡環境中的進展將使Ankr能夠將潛在的計算資源擴展到新的設備或硬件。
●移動端, 受到電池和個人計算能力的限制,但它可以為數據處理等高吞吐量工作提供大量的算力候選。
●顯卡 ,另一方面,它的計算能力比CPU大得多,可以很好地勝任需要超級計算機的任務,也可以勝任深度學習等高強度計算能力的任務。
簡而言之,與英特爾SGX一樣,TEE 能夠在各種平臺上用最合適的硬件為Ankr提供計算服務,這將非常有助于提高其產品的可用性。Ankr 將密切監控芯片制造商的進展,并盡早將這些可能性納入分布式云計算。
6.4 智能身份證及信用系統
Ankr在區塊鏈上的嵌入式數據饋送服務可以使鏈外資產和數據數字化、通證化,并通過不可改變的日志寫入智能合約中。這允許區塊鏈上的用戶在生態系統中建立智能合約的身份(例如,房子、汽車、債券)。每個用戶都單獨存在于鏈上,平臺有潛力通過區塊鏈的智能合約記錄所有用戶事件。在未來,物聯網將使一個真正創新的信用體系得以實現,使交易雙方都能保持透明和不受干擾。
6.5可編程接口
設計良好的公共API對于業務采用和可用性至關重要。Ankr 的區塊鏈不會改變現有的PRC,因此與大多數現有的dapp兼容。以太坊DApp的開發者可以直接在Ankr的區塊鏈。上工作,無需修改代碼。除此之外,Ankr將為使用云計算的客戶提供額外的RPC和CL來支持分布式云計算。這些RPC和Cu將提供功能,包括但不限于提交、檢索和監控有效的工作任務。
評論