
9 月19 日,由萬向區塊鏈實驗室舉辦的第九屆區塊鏈全球高峰會在上海外灘W 酒店舉辦。高峰會以「下一站,Web3.0 」為核心主題,聚焦Web3.0、AI、DePIN 三大領域,邀請了數十位海內外優秀開發者、專家學者和知名項目創始人共話新紀元下的Web3.0 世界圖景。
DFINITY 首席研究員Jens Groth 以「基於區塊鏈的ECDSA 簽名服務」為主題發表演講。他表示,區塊鏈想要成功的話,必須實現的跨鏈互通性,而且整個世界也需要有這樣的跨鏈互通性。區塊鏈真正吞噬到軟件的世界要達到兩個核心要求,效能與整合。 Jens Groth 表示將持續研究如何持續提升效能,使得IC 上的智慧合約可以直接儲存BTC,並且能和比特幣網路進行互動。
以下為Jens Groth 的演講內容:
Jnes Groth:大家好,我今天想跟大家分享的是我們在Dfinity 的做的工作,就是ECDSA 簽名服務。這裡從宏觀視角介紹一下,區塊鏈想要成功的話,必須要實現的跨鏈互通性,而且整個世界也需要有這樣的跨鏈互通性。所以我們希望在中間做出貢獻,必須做一些硬派研究,我希望從使用者需求的角度一直到加密演算法的角度,來介紹一下要做什麼,以及可以做什麼。首先介紹一下Dfinity 基金會,現在有將近300 員工,是綠色非營利組織。我們在研發方面進行了大量投入,也獲得了大量成果,並發布了許多論文。在幾年之前推出了IC 互聯網計算機,這是我們的區塊鍊網絡,我們希望將所有的傳統技術堆疊到區塊鏈平台上,這就是我們希望實現的目標。我們實現從Web2到Web3的遷移,我們在這個領域已經深耕了多年。
我現在跟大家具體介紹一下,所有的人目前都關注的一個核心問題,就是區塊鍊是否會吞噬軟件棧?從Dfinity 的軟件來說,誠然它有很多優勢,這些優勢使得我們能替換現有的IT 站,這從安全性和用戶保護角度來說,都是一件好事,也是優勢。現在它還只是一條小魚,我們希望這條小魚變得越來越大,我們必須證明這是一個可行的理論,並且也會在未來十看到這個理論到底如何變成現實。
現在再看一下區塊鏈,以及區塊鏈會吞噬整個軟件世界會意味著什麼?區塊鏈意味著公共帳本,需要有區塊鏈協議,區塊鏈協議主要是定義區塊鍊網絡中的節點如何實現協作,以及如何達成共識,成塊的順序是什麼等等。我們需要和區塊鏈平台進行交互,在這個平台上面需要有一些實體機能夠和互聯網進行連接,除此之外還需要有執行的範式,還要有Dapp 部署在區塊鏈平台上。除此之外,還要有區塊鏈項目,需要有一些SDK 為開發者所用,在區塊鏈平台上進行Dapp 的開發。需要有一些方式,使得用戶能和平台進行交互,除此之外還需要有社區,能夠和不同的區塊鏈進行交互。所以這一切都非常重要,只有透過這一切的達成,才能夠讓區塊鏈真正吞噬到軟件的世界。
這裡有兩個核心要求,一個核心要求是效能,因為區塊鏈的效能必須提高。人們要獲得像手機一樣的互動體驗,這是對區塊鏈的核心要求。另外一個核心要求就是集成,也就是區塊鏈上的智慧合約需要彼此之間進行互動。要解決第一個核心訴求,也就是區塊鏈到底是否能獲得具有競爭力的效能呢?這就裡面就存在著挑戰,因為對區塊鏈來說,智慧合約的狀態在不同的機器之間進行複製。如果你需要執行一個指令的話,所有的機器都必須要達到共識,所有的機器要達到共識,這決定了下一個狀態是什麼,才能夠去執行。也就是在區塊鏈上執行是存在一些重複的工作,我們透過研究證明了區塊鏈可以和傳統的雲端運算媲美的。這種複製狀態機,也就是透過研究所傳遞出來的訊息,我們研究顯示複製狀態機可以跟傳統服務器競爭,而這個研究報告是我們在2023 年的ATC 大會上發布的。在世紀中這意味著什麼呢?從區塊鏈角度來說效能能達到怎樣的程度呢?我們可以在寫入時延達到1 秒到2 秒,可以和傳統的網路模式相提並論。而讀的時間只有200 毫秒,雖然寫1 秒到2 秒相對較長,但對許多應用來說是可以接受的。例如你做的是面向媒體的應用,用戶發布了什麼東西,等1 秒到2 秒,再在平台上正式發表,這樣的等待時間是用戶可以接受的。我們還有高吞吐量,這是在世紀中的應用,我們每一秒可以做到處理數十萬筆的交易。除此之外智慧合約使我們變得非常強大,智慧合約以非常低的成本儲存數百QB 的資料。我在這裡做一個數據性能對比,從一般情況來說, 32 GB 是它的上限。區塊鏈的效能上限在哪呢?我們進行衡量的單位就是能耗,所以我們對於能耗進行了衡量,處理每一筆交易的耗能低於一個燈泡所需的能耗。
希望我透過剛剛的介紹,讓大家已經相信了,區塊鍊是有潛力、有能力達到所需的效能,能夠真正取代傳統的IT 軟件堆疊。另外一個要求區塊鏈要和世界進行交互,要實現這一點,區塊鏈必須要能夠和用戶進行交互,能夠為用戶提供很好的終端使用體驗。如果用戶開啟一個瀏覽器,並且定向到區塊鍊或區塊鏈上的Dapp,這就是我們希望實現的用戶無縫體驗。我們也希望給開發者很好的體驗,我們並不希望這些開發者在開發過程中變得非常困難。我們希望開發者的開發體驗能非常流暢,一切都能在智慧合約上面完成。整個底層的區塊鏈平台可以解決後續所有的問題,所以用任何喜歡的軟件進行開發,無論是python 還是其他。有一些其他的區塊鏈,也提供其他的手段,例如提供Web3你喜歡的程式語言,編譯程區塊鏈喜歡的底層語言。這就是如何對區塊鏈平台進行管理、升級、優化,最終將如何進行集成,並且透過這樣的方式,逐漸使得用戶接受你的區塊鏈。
這也是我們一直致力於做的事情。我們一切都在鏈上進行託管,也就是說用戶去了IC,可以在IC 統一的界面上看下一代的dapp。如果他們透過投票方式同意升級的話,這個平台就能夠升級,但它們就可以看到下一代的平台,而且我們每一週都會做這樣的投票。我們稱之為硬分叉。這裡展示的就是一些鏈接,如果大家想感受一下IC 的用戶體驗,可以點擊其中的鏈接看一下用戶的體驗。同時我們也有連結是讓開發者感受開發體驗,一切都直接是託管在IC 之上,也就是沒有任何的中間層。
另外我希望專注的是ECDSA 的簽名服務,以及ECDSA 簽名服務帶來怎樣的可能性,它如何助力與dapp 與世界進行交互,在IC 上部署的Dapp 必須從其他地方獲得數據,並且發給其他應用和平台。我們也可以提供相關的服務,使得智慧合約可以做HTB 的請求,我們提供區塊鏈整合的服務。但今天我的主題是ECDSA,也就是我將聚焦在Dapp 如何在IC 上實現和比特幣網絡之間的互動。
我們主要是做跨鏈之間的通信,以及交互,也就是說在IC 智商運行部署的節點,能夠有多個聯繫的方式,去和比特幣網絡的驗證者建立交互和連接。
即使出現了一些比特幣的網絡驗證者是惡意驗證者,IC 網絡上的節點和比特幣網絡之間的連接也不會喪失。這裡的關鍵,就是聽起來很好,已經可以跟比特幣網路通訊。但是比特幣網絡只會接受已經簽署的交易,因為智慧合約是沒有辦法儲存私鑰的,因為智慧合約是複製的。任何節點儲存的數據,並且是複制了節點,乳鴿這個節點是惡意的話,就會有一些竊取私鑰被盜的風險。是這意味著對於需要有簽名服務,我需要一個公鑰,簽名服務說,這就是公鑰。智能合約說,請給簽名。然後就簽名了。現在智慧合約拿到了簽名的交易以後,就可以跟比特幣網路互動了。
我們現在將這個問題又踢到了ECDSA 簽名服務,以及簽名服務如何實現互通的可能性。例如像匿名分享技術,也就是所有的節點集體擁有簽署的金鑰,但是整個節點網路中沒有一個單獨的節點擁有完整的金鑰。通過建立密鑰,我們可以用多簽計算的協議,對於訊息進行簽名。而且透過這樣的方式,我們也實現了安全性,整個節點網路中沒有任何一個單獨的節點對簽名進行篡改。相其實這樣的技術從20 世紀80 年代就已經存在了,所以它的安全性是久經考驗的。它的難點在於,如果在實現安全性的同時,保證它的行營。我們在這方面提出了整體解決方案,同時我們也可以對於節點有很高程度的容錯性。而且實現了非同步交易和非同步通訊。這和多方計算的檔案是不一樣的,你覺得非同步交易或非同步通訊是個很簡單的模型。但是現實是,有時候的話,在通訊過程中會出現一些通訊中斷的。除此之外,在ECDSA 簽名服務方面,也有大量的研究和效能,這實際上是沒有辦法透過ECDSA 最終能得到簽名,這是我們所關注、所致力於研究的領域。現在大家可以看到,我剛剛已經提出了問題,需要一個有效率的方式來解決問題,有什麼方案呢?我提出一個解決方案。 ECDSA 對訊息進行哈希,再進行後續操作。例如我們在這裡一個切片裡面是智慧合約,另外一個切片是我們想要傳遞的訊息。在這樣的情況下,將整個訊息傳遞的話,對訊息進行哈希,僅發送訊息的哈希,這是所產生的原始簽名。另外兩個效能的提升方案,快速跟大家介紹一下。其中就包括大D,這個金鑰是長算法,用來做簽章的。它裡麵包含了一個Y 作為集體的元素。現在的核心在於你不做多方的計算,你首先有一個階段就是你不需要知道訊息的情況下,就可以進行預與,使得簽名過程更快。因為一旦你做了預計算,收到訊息以後,可以快速對訊息進行簽名。從這個角度來說,還是有問題的,就是它是否還是安全的。你先進行了預警,然後進行發布,這一步是否安全?我們對其進行了安全性分析,最後得出的結論,如果你不跟原始的簽名相結合的話,是完全不安全的。
還最後一個優化方案,就是加法密鑰派生。想一下,我們有ECDSA 的簽名服務,它有數百萬個不同智能合約,管理數百萬個的密鑰,這是很貴的。因為它需要先生成密鑰,如果有些節點離開網絡,就需要進行密鑰的流轉。我們對此的解決方案是,透過單一的主密鑰再衍生或衍生出其他密鑰,透過演算法來實現。這裡的話,已經有相關的標準,比如說像這個標準,就告訴你如何利用智能合約ID 去衍生出公共的數字E。也就是透過這種方式,你只需要管理一個主密鑰。從安全性來說,它和預計算結合,安全性是否符合要求?這是一個值得研究的課題。我們做了很多優化,這些優化都帶來了安全性問題,我們需要有降低風險的措施。其中包括一個解決方案,就是我預先簽名,對簽名預先計算,進行公開隨機化。透過這樣的方法,可以透過預先簽署、預期計算的方式,提升它的效率。
所以我們對所有不同的組合進行了對比,包括預先簽署的公開、加法、密鑰、派生,以及原始簽名等等,這一切都是在2022 年發表的研究論文。這張幻燈片展示的就是我們分析的結果,需要的就是在這些不同的LOGO 之間,依照你的需求進行篩選。這使得我們成功完成IC 與比特幣網絡之間的集成,雖然仍然很慢,但考慮到比特幣的交易處理速度只有每秒7 個交易,我們可以做ECDSA 的簽名服務。無論是和比特幣的集成,還是和以太坊的集成,還是和其他幣的集成,都可以做。我們持續研究的是如何持續提升性能,我們也會看其他簽名,例如石墨簽名,可以實現更快的處理速度,凡此種種,就使得IC 上的智能合約可以直接存儲BTC,並且能和比特幣網絡進行交互,非常感謝各位的聆聽!