編者按:本文由Dfinity社區“聊聊IC與BTC集成的那些事”主題圓桌內容整理,由HashKeyCapital投資總監肖曉對話DFINITY核心工程師Paul,從IC集成比特幣的條件、技術實現路徑、面臨的挑戰、未來可集成的其它協議、應用的發展等方面做出深入探討,值得一看。星球日報經授權發布。
肖曉:大家好,我是HashKeyCapital投資總監肖曉,也是今天AMA的主持人,我們接下來正式進入正題。
相信大家都知道比特幣是Crypto領域共識最強的一個資產,但是到今天為止它的主要的用途還是在價值的存儲和交換。而DFINITY社區在去年9月份就通過ICP和比特幣網絡直接集成的提案,也是計劃通過智能合約給比特幣帶來更多的應用場景,為它賦能,同時也為IC生態帶來一些優質資產。這個提案當時也是超過了96%的人支持它通過,也足以見得社區對這個技術的期待。
在這個提案通過之后近期又出現了一個非常重要的里程碑,就是今年6月10日,當天DFINITY基金會宣布完成了比特幣和直接集成第一階段,也就是我們之前聊的比較多的閾值ECDSA簽名,可以說是一個比較重大的進展,它也是解決IC集成比特幣一個重要的先決條件。
相信大家對技術如何實現?如何運用?包括未來如何去發展都充滿了好奇。我們今天非常榮幸請到了DFINITY核心技術工程師Paul劉老師為大家答疑解惑,接下來的時間先交給Paul。
PaulLiu:謝謝肖總,很高興有機會能夠和大家來一起分享,我是DFINITY的工程師,我叫Paul,大概四年前加入DFINITY,算是比較早期的員工了。我們主網也在去年上線,上線以來也經過了很多新的發展,最重要一個新發展就是跟比特幣集成的計劃。
今天大概跟大家介紹一下我們關于InternetComputer集成比特幣的技術的一些概述,不會講到特別深入的技術細節,但是前前后后的具體情況希望能給大家講清楚一點。
我們先來回顧一下在比特幣鏈上交易的過程,假如有兩個同學,一個Alice,一個Bob,Alice要給Bob發送一些Satoshi,她要發送40萬個。這邊圖示我們用鑰匙來代表公鑰,帶虛線是私鑰。Alice跟Bob都有各自的公鑰和私鑰,她創建比特幣的交易需要用私鑰來簽名才能夠發起一個交易到比特幣的鏈上。
這個具體的過程我們來看一下,她要創建一個交易,她需要有一定的比特幣在手上,她的比特幣是之前的交易產生的輸出,我們通常叫做UTXO。每一筆交易它的來源、它的輸入都必須是前面的某一筆或者多筆交易的輸出。比如這里Alice從之前的兩筆交易里面,一個拿到10萬,一個拿到30萬,然后組成40萬的輸出傳給Bob,她前面交易必須是沒有被使用過的她才能使用,這是比特幣特有的UTXO的模型。
之前的兩筆交易用于創建新交易,指定這個新交易給Bob,可以看到是綠色,這個綠色是指發送給Bob的公鑰所對應的地址。在這之后她要發起這個交易交給了比特幣網絡,比特幣網絡里面礦工也好,叫節點也好,他們就會把收到用戶的交易放在一個區塊里面,每個區塊大概有1500來個交易,這樣的區塊就組成了比特幣的區塊鏈,當然這當中還有很多的細節這里忽略掉。
我們所關注的就是整個創建交易的過程,我們可以看到它必須有自己的私鑰才能為自己的交易進行簽名。而且必須知道她之前的UTXO才能夠引用,并簽發一個新的交易。
????我們看完比特幣的過程我們來簡單介紹一下InternetComputer,可能有的聽眾不是特別熟悉。我們把它叫做互聯網計算機。它是運行在一個協議上面,我們叫做InternetComputerProtocol,它提供的一個公共區塊鏈的服務平臺,最底層是數據中心,數據中心里面的節點是由社區節點運營商獨立運營的,比如你是一個節點運營商你可能會跟某一個數據中心有協議,在他那邊跑一個節點。節點可以加入ICP網絡,加入之后的所有的節點組成了這個底層的網絡,之上我們是跑Internet協議,就是IP,在IP之上我們跑ICP協議。節點分成了多個子網,在每個子網內部跑共識協議,但是所有的子網共同組成了合在一起的網絡。在這個網絡上面我們把它抽象看做是這個網絡提供了的計算平臺,或者是一個虛擬機,虛擬機上可以跑智能合約這樣的程序。
美國銀行:TradFi公司仍然是機構加密投資者的首選交易對手方:4月14日消息,美國銀行(Bank of America)在周四發布的報告中表示,盡管去年經歷了市場調整和破產事件,但加密生態系統仍在繼續發展。機構需求正在推動機構級產品的出現,納斯達克是在數字資產領域提供更多服務的傳統金融(TradFi)公司中的一員。美國銀行表示,機構投資者將繼續參與并關注區塊鏈技術長期的顛覆性。
報告補充說,美國SEC的增強版保護規則可能會限制注冊投資顧問在大多數加密原生交易所為客戶代幣提供托管的能力,這將進一步推動TradFi機構進入該領域。該行表示,TradFi機構仍是首選的交易對手方。[2023/4/14 14:04:34]
它主要的特點就是智能合約可以直提供網絡HTTP服務,查詢的響應是毫秒級別的,如果是發起一個可以改變狀態的交易的話,那可能需要2-3秒的時間,但是2-3秒的時間在當前的區塊鏈的時間里面也是最靠前的。因為主要目的是為了讓智能合約可以跑網站,所以我們是不能夠向用戶收費,用戶無須付費就能訪問到智能合約,比如直接用瀏覽器訪問一個網站,是不需要為這個付費的,這叫反向gas模型。子網之間的通信,和子網與外部用戶的通信,用的是一個類似于RTC或者是遠程調用這樣一個模型。可以把HTTP也看作是調用。
我們為什么說它計算成本是比較低廉而且是穩定的,不是說剛發布用的人少,所以計算成本低廉。其實是因為里面用到最先進分片技術,我們可以通過增加新的子網來分擔整個網絡的負載,所以它實際上是沒有理論上限的,是可以無限擴容的,只要硬件允許。之所以能做到這點是因為它的每個子網相互之間驗證對方的計算結果是有非常先進密碼學的知識在里面,我們不需要子網歷史交易記錄就可以驗證子網當前的計算是否是可信的。這也是我們為什么可以直接把網站的服務寫在智能合約里面,因為我們直接可以在手機或者瀏覽器里面驗證智能合約運行結果是正確的,因為它只需要通過一個公鑰就可以。
IC在應用層可能最突出的一個特點就是其中有一個自主投票的治理系統,可以通過智能合約來投票,并且可以自動實施投票的決策。DAO這個模式發展到今天,我相信通過手動投票,通過一個一個人找他多簽這個模式是要被淘汰了,需要用智能合約的方式實現自動化。
IC的開發環境剛才提到上面跑的可以看做是一個虛擬機,所以是開發者直接上傳智能合約代碼就可以部署到IC上,就跟在云服務上部署代碼是相似的。每一個部署之后的代碼是成為一個獨立的容器,我們叫它Canister,在IC上面我們每個容器不光有智能合約的代碼,還包括它的狀態,所有它能修改到的狀態都是存在容器內部。如果你要訪問其他容器的狀態你必須通過其他容器的接口才能訪問到它,訪問這樣這個接口就相當于是一個遠程的調用。但是如果對方不開放這個接口或者說開放的接口不提供你所需要的數據的話,那你是訪問不到的。所以這是一個比較主要的區別,可能跟現在其他的區塊鏈區別比較大的一點,尤其是開發者需要注意一下。但是跟傳統的互聯網的Docker或者MicroService開發模型是比較接近的,可能傳統的開發者在IC上面開發會相對而言比較熟悉一點。
所謂智能合約跟比特幣的集成到底是怎么回事呢?我們之前也看到比特幣的交易,比特幣發起一個交易要簽名,這邊我們可以看到假如說是用Alice跟Bob,他如果直接給容器發比特幣,如果這個容器也可以直接接收比特幣的話,容器之間也可以像用戶一樣來回簽發交易,實際上就可以實現一個智能合約對比特幣資產的一個管理,換句話說我們可以為比特幣提供一個智能合約的平臺。
所以它里面比較重要的一個假設就是說假如每一個IC上面的Canister,IC上面的智能合約,如果每一個IC上面的Canister都能得到一個比特幣地址,也就意味著它可以通過程序邏輯來管理比特幣的資產。這是一個設計的初衷,我們必須要讓每一個Canister它都能夠有自己的比特幣地址,它有自己的地址意味著它需要能夠簽發自己的交易。
TradFi:比特幣和恒生指數出現漲勢停滯可能意味著更大范圍的避險情緒:金色財經報道,TradFi公司表示,比特幣一個月前開始的上漲在本周遇到了瓶頸,上漲勢頭在關鍵技術阻力位附近失去了動力。香港基準股指恒生指數也出現了類似的情況。Spectra Markets的交易員兼總裁Brent Donnelly在周一晚些時候發給客戶的一份報告中說,比特幣和恒生指數的失敗是技術警告,表明2023年初的寧靜可能不會持續一整年。
Donnelly的言論證明,比特幣在經驗豐富的交易員中作為風險情緒先期指標的信譽正在增強。過去,比特幣在主要頂部和底部領先了標普500指數幾周。
比特幣周一跌幅接近4%,從2.4萬美元開始下跌。去年8月在24000美元上方也出現過類似的沖擊失敗。恒生指數也從阻力位轉低,阻力位可以追溯到2022年6月。[2023/2/1 11:41:20]
我們來看一下具體實現的過程,集成首先是在底層的協議層,協議層做了一個跟比特幣網絡的接入,就是跑的比特幣的輕節點,可以得知比特幣網絡上交易的狀況和它最新的區塊,但是它并不參與比特幣挖礦的行為,它只是用來收發用戶交易。但是這些區塊的信息可以被IC上面的每一個節點得到,它這個節點就可以把這個信息向上傳遞給虛擬機里面就是用戶跑的Canister。所以Canister可以得到他所擁有的這個BTC地址所有的UTXO。
假如用戶要轉移資產到你Canister里面來,也就是我給你的Canister發比特幣,那這樣通過監聽比特幣的網絡Canister可以收到這個信息,因為最新的區塊可以知道,可以得知到是有人往它這個地址已經發了比特幣了,它可以得知這個信息。
它怎么發呢?他簽發需要把自己的交易能做一個簽名,他做的簽名還要能發送到比特幣網絡上,所以不光有一個輸入到Canister的過程,還有一個從Canister輸出,這個輸出可以流通到比特幣的網絡上。所以這是由底層節點提供的服務。相對于一個IC本來的節點而言,它多提供了一點服務就是跟比特幣網絡直接交換信息的一個過程。
剛才講了其中最主要因為我們可以做到讓每一個Canister合約都有自己的比特幣地址來掌控比特幣的資產,它的前提就是我們需要實現一個叫ThresholdECDSA門限簽名的技術,這個技術也正在開發中,我們已經取得了比較好的進展。它這個技術讓我們可以給每一個Canister分配一個它自己的BTC地址,所謂自己一個地址就是它有一個自己的公鑰。它可以進行簽名,但是這個簽名并不是他自己保存自己的私鑰,而是說他這個簽名是通過IC網絡上面子網來進行簽名的,子網可以代替Canister去給Canister所要簽署的合約來做簽名。這個稍后會詳細一點講。
如果每個Canister有自己的比特幣地址了,它又可以獲取鏈上相關的UTXO的交易,那它就可以自己通過程序來做決定了,它是否需要發起新的交易還是說我希望得到用戶更多的信息,這樣它不但可以跟比特幣網絡交互,而且還可以同時跟用戶直接通過瀏覽器進行交互。它還可以發送新的交易發送到網絡進行交易,這整個循環如果能跑下來,就相當于在IC上面跑的用戶代碼已經可以為比特幣的網絡提供一個智能合約的服務。所以這三點是最主要的我們所說的IC跟BTC的集成,我們能做到這三點就可以。
開發者來使用這個功能,肯定還是要通過一些系統接口,這個接口比較簡單,直接可以拿到自己的balance或者發送比特幣,還有一個提供簽名的接口。最主要的是提供簽名,這個技術是怎么實現的呢?首先IC主要的核心技術就是DKG,也就是分布式的密鑰生成協議。DKG它主要的過程是我們在子網節點里面每一個節點它自己可以先各自生成一個私鑰的份額,理論上不算一個完整的私鑰,雖然可以用于簽名。每個節點它都保留自己的秘密,這個私鑰份額只是屬于這個節點,它不會告訴任何其他人知道。經過DKG協議之后,每個參與的節點他都能夠生成自己的私鑰份額,互相不知道對方的,但是自己知道自己的。
Coinbase:DeFi和TradFi資產之間的結合將成為2023年的主要趨勢:金色財經報道,Coinbase在發布的《2023年加密貨幣市場展望》報告中表示,DeFi和TradFi資產之間的合作將是2023年的主要趨勢,預計機構實體將計劃使用獲得許可的DeFi平臺,并推動現實世界資產(RWA)代幣化創新,會有更多的dapp調整其平臺,以適應“受監管的機構實體尋求更多地參與這一領域”的DeFi活動。(thedefiant.io)[2022/12/24 22:05:35]
這個協議生成另外一個結果這個子網會有一個公鑰,這個公鑰是一個唯一的,每個節點擁有自己的私鑰份額之后可以通過私鑰份額來進行獨立的簽名,如果這些節點對同樣消息進行簽名,并且把這個簽名廣播出去,知道了其他節點的簽名之后可以把這些簽名合在一起成為一個最終的簽名,這個最終的簽名是可以用子網的公鑰來驗證。這也就是最后完成的簽名可以用固定的一個公鑰來驗證,但是沒有任何一個單獨的一方它知道與這個公鑰所對應的私鑰。
形象來說就是分配給大家所有的節點每個人有一份,然后大家都簽,簽完了之后最后能合成一個最終簽名的話,那么公鑰可以驗證,但是相對應的私鑰的秘密沒有任何一方他有,必須要多數節點參與進來才能合成所有的簽名。通常需要三分之二以上的節點能夠完成這個簽名,那么最終獲得了對某個交易的簽名是可以用公鑰來驗證。IC最主要的技術是這個,但是我們之前做的簽名是基于BLS密碼學簽名的技術來做的,現在我們需要完成對ECDSA做一個類似的技術,它也支持ECDSA的簽名,相對BLS來說要復雜很多,而且在之前也有不少論文對密碼學前沿的研究也是討論比較多,但是一直沒有找到一個特別符合安全性的辦法,它總是有這樣或那樣的一些妥協。所以我們在這方面是取得了最新的突破,設計了整套系統現在還算是比較滿意。當然也需要經過密碼學的專家來審核,經過多方面的驗證才能夠最終確定它的安全性。
但它具體的做法跟整個的DKG整個流程在抽象的理解層面上是一致的,它一開始通過跑一個DKG的協議,子網的節點得到自己的私鑰,通過自己的私鑰簽名,簽名之后把它合在一起,大概就是這樣。合在一起的簽名它這個簽名跟普通的ECDSA簽名是沒有辦法區分,因為它的公鑰是普通的ECDSA公鑰,所以比特幣的網絡用的是ECDSA的簽名,它后來引入了Schnorr簽名,Schnorr簽名要做DKG的話會比普通的ECDSA簡單一些。我們之所以選擇支持普通的ECDSA,也是應用范圍不只局限于比特幣,可以有一些其它的方向。
剛剛講子網是有公鑰。在比特幣ECDSA簽名里面,有一個BIP32的標準,通過這個標準可以從一對密鑰生成更多的密鑰對。用這些子鑰來簽名,簽名它有自己的地址,收到的交易對方也不知道你的母鑰是什么。用的這套系統是通過BIP32這個標準,這個標準同樣在我們門限簽名里面也適用。所以每一個Canister它的公鑰就是通過它的CanisterID,這個是被創建的時候就被分配的獨一無二的ID,這個ID它在IC網絡上也是經過共識是做不了假的。
所以通過這個ID來用BIP32這個標準來配合子網的公鑰生成每個Canister的公鑰,這個是完全可行的。甚至一個Canister假如你在里面想要簽發交易,使用更多的不同的公鑰來做不同的事情,這也是可以的,因為每個公鑰對應一個地址,所以基本上有任意多的公鑰可以提供給一個Canister使用。這樣每個Canister進行簽名的時候它是把自己的簽名需求發送到了子網,然后子網通過BIP32每個節點用自己的私鑰簽名最終合成最終簽名。
所以IC集成BTC不是一個橋接。橋接是為了方便資產跨鏈,通常說在其中一個鏈上通過一個智能合約把它鎖住,也就是把資產發到這個智能合約,然后在對應的另外一個鏈上也是同一個開發者開發另外一套智能合約,在那邊給你簽發新的資產,這樣可以實現一個資產的互換。
Dfinity創始人:即將宣布主網創世啟動時間:4月17日消息,Dfinity創始人Dominic Williams發推稱:互聯網計算機RC2版本進展順利,現在為“創世啟動”設置日期。Dfinity基金會通過推特發出“現在開始倒計時”的摩斯電碼圖片。[2021/4/17 20:30:39]
這樣做主要的問題是大家需要信任提供橋的開發者,但是在IC上面因為這個簽名是不需要信任單獨的一方,也不需要信任單獨的開發者,它是可以直接通過發布我的智能合約源代碼在這里,我的智能合約跑到IC這個平臺上來,如果你信任IC子網里面是一個去中心化的平臺,信任它的運行的結果是正確的話,如果有這樣一層信任在里面的話,實際上是一個去中心化的一個信任,這樣能做的事情會更多一些。
尤其通過橋接你需要質押你的資產,不是所有的應用都需要橋接的,比如你就是想定期給某個賬號發一些比特幣,那完全用不到橋接或者質押,直接能夠簽名就可以發送了。
大概總結一下我們技術特點也就是每個智能合約都有自己的獨立的BTC的地址,核心技術就是ThresholdECDSA的門限簽名。需要重點指出比特幣的交易還是走的比特幣的網絡,我們所有關于比特幣的交易最終都是發送到比特幣網絡上面經過比特幣網絡確認,這樣才能夠確認UTXO交易是被正確記錄在比特幣鏈上的。合約它是可以通過API查詢UTXO、簽發和發送交易,它的安全性來自于IC子網的安全性,通過IC區塊鏈跟比特幣區塊鏈的結合,兩者安全性一起來保障智能合約的安全性。
大概我簡單的介紹就先到這里,看大家有什么問題。
肖曉:好的,非常感謝Paul哥的分享,我們接下來進入今天的Q&A環節,我們在過去一周里面也從開發者社區和普通用戶社區也收集了很多問題,包括我自己在研究的時候也是遺留下一些問題。今天我們挑了其中一些比較重點,比較普遍性的問題來請教一下。另外在觀看AMA的朋友大家有其他朋友也可以打在直播間的交流討論區里面,如果時間允許的話我們后續也可以從現場再抽取幾個問題來提問。
首先第一個問題大家最關心也是對用戶和開發者來說最重要一個問題具體的上線時間表包括開發者端和用戶端什么時候可以正式使用這個功能?
PaulLiu:大概時間表我也不好說太死,我們目前已知做好的技術一個是ECDSA的簽名,不能說完全做好,因為還有很多的測試工作沒完成,但是目前簽名的demo可以通過。用戶可以發一個消息,請求Canister對它進行一個簽名,Canister收到這個消息,對系統API進行一個調用,然后系統API傳到每一個節點,每個節點可以進行一個簽名,簽名之后把所有簽名合在一起,最后得到一個最終簽名,最終簽名反饋給Canister,然后Canister再反饋給用戶。這樣一個流程是已經在內部已經跑通了,接下來整個開發過程會加速。
所以我們初步的計劃是在第一個季度能夠推出一個ECDSA測試的版本,可以讓開發者使用到真正的ECDSA簽名。比特幣這方面跟比特幣的集成收聽比特幣網絡、發送交易這些也是有一個初步的版本,可能是這個月底就會推出一個專門對開發者能夠使用API,在本地做一些調試工作,這個用到的是測試網絡而不是比特幣的主網。這個我相信在這個月底會推出一個developerpreview版本,具體上線日期也是在第一季度3月份會集中推出一個測試版,希望不要把真正大額資產放在里面,測試還是需要一定的時間才能夠確信它的安全可信和使用起來各方面沒有更大的問題,大概是這樣。
肖曉:從理論上來說真正直接實現直接集成之后,大概比特幣轉賬速度會加快到什么程度?
PaulLiu:所有關于比特幣的交易還是在比特幣網絡上,所以我們并不是要加快比特幣的交易速度,簡單理解我們做的這一套東西是給開發者使用的,我們是屬于做的是底層的基礎設施。開發者利用這個技術做他想做的應用。我可以舉幾個簡單的例子,一個是我就做一個橋,假設我是開發者我就做一個橋接,我就可以用一個智能合約既面向比特幣用戶,它也面向IC的用戶,它可以接收比特幣。這是可以直接做的事情。現在市場上是這種橋需要一個中心化的公司運營,你需要相信他們。如果這個可以到合約里,你直接用這個合約發的WBTC在IC網絡上進行交易,最終需要settlement你再把它轉換為BTC,還是在BTC網絡上。這個有點像閃電網絡的意思,你真正的交易是發生在其它地方,它速度比較快。比特幣的交易還是放在比特幣網絡上,并不會有任何加速。
前Coinbase員工創建DeFi貸款協議Goldfinch:金色財經報道,前Coinbase員工Mike Sall和Blake West正在為無抵押貸款構建DeFi貸款協議Goldfinch。目前,Goldfinch已經從包括Kindred Ventures、Coinbase Ventures、IDEO CoLab Ventures和Dragonfly Capital聯合創始人Alex Pack在內的行業利益相關者那里籌集了100萬美元。[2021/2/3 18:44:39]
肖曉:但是在這個過程會不會出現轉賬的延時,在本身比特幣所需的時間之外還需要多長時間?
PaulLiu:這個是不需要太多時間。我們額外增加的時間都是幾秒鐘之內完成的。比如簽發簽名也就是幾秒鐘的時間,獲取UTXO基本上就是直接調用的事情,所以我覺得我們這個集成額外增加的時間是可以忽略不計的,相對于比特幣這種需要確認10到20次才比較安全的方式,可能額外增加的時間可以忽略。
肖曉:明白,剛剛也有提到比特幣的集成也是受制于子網的節點,想請問一下官方有沒有專門打算為比特幣開一個專用的子網?
PaulLiu:我覺得這是一個比較好的主意,我們有幾個不一樣的方案,目前還沒有特別決定用哪一種,我個人認為有必要專門為它開一個子網。專門開一個子網里面更加有效率一些,因為它不需要跑其他種類的智能合約。它可能在計算上面專注于為比特幣做簽名會更有效一些。
肖曉:了解,剛剛也提到密鑰派生BIP32標準,麻煩Paul哥進一步介紹一下這個標準的優勢在哪里?為什么選擇BIP32這個標準來做密鑰開展,而不是用傳統的獨立的密鑰這種方式?
PaulLiu:比特幣采取ECDSA曲線就有這方面的考慮,就它希望大家能夠通過不同的公鑰來使用不同的地址,更加靈活一些,你的資產并不一定只需要一個地址,你可以通過不同的地址,因為不同的地址是你自己生成的,你可以進行管理。至于為什么這種BIP32派生方式會比較有優勢,因為它不依賴于你保存每個每個單獨的密鑰,它是通過一個密鑰根據一個派生法則,你可以自己決定它的前綴、后綴達成一個階梯型的結構,這種方式會更靈活一些。但是在安全性方面或者在其他的方面可能有人有不同的需求,也需要用不同的公鑰、私鑰對。
比如我可以用硬件的設備我生成一對公鑰私鑰,這樣我可以把硬件設備交給其他人,對方可能也比較放心如果是直接通過硬件來生成的公鑰私鑰。
換成用這種派生的方式就不現實了,因為你不可能把你主要的私鑰交給第三方。所以各有各的優勢吧,在我們集成里面我剛剛提到一個子網有自己子網的公鑰,這個公鑰是唯一的。但是我們可以有不同的子網,不同的子網都可以提供不同比特幣簽發的服務,不同的子網可以是跑同樣的公鑰私鑰,也可以跑不同的公鑰私鑰。因為不同的子網之間它是可以通信的,不管你的智能合約在哪個子網上,你都可以使用到另外子網提供的比特幣的服務。你就把你的簽名的需求發給那個子網,那個子網通過他的子網里面的節點進行簽名,簽名的結果相對應的就是那個子網的公鑰。
所以我們也可以實現更多對的公鑰私鑰對,可能重點不是放在這方面,重點還是在能夠派生出更多不同的地址。直接通過派生關系,這個派生關系在我們這邊的應用主要是為了支持所有的Canister,而不是說每一個Canister給你單獨生成一個公鑰、私鑰。單獨生成主要的麻煩就是因為這里面背后用到的技術它是有比較大的overhead,不像我剛剛講的那么簡單保存一個私鑰份額就可以給你簽名了,這個過程是比較復雜的。這里面簡單講就是它不只是一次DKG,是有多次DKG在里面,而且很多是臨時的,他做一次里面結果用完就要丟掉。所以一個子網只使用一個公鑰對,對我們節點更好接受一些。在安全性方面如果一對不安全,多對更不安全。所以我們至少要保證一對是安全的。每個Canister它的ID是唯一,那么每個Canister它被分配到的地址以及被分配到的公鑰也是安全的,大概是這樣的。
肖曉:了解,想問一下實現集成之后可不可以通過Canister去查詢比特幣資金的來源和去向,或者是它的交易歷史?這個查詢過程是需要消耗IC網絡的資源還是可能在APP研發的過程中我直接把比特幣的瀏覽器集成起來去做這個查詢?
PaulLiu:這個查詢我們直接提供系統的API進行查詢,因為每個IC節點會跑一個比特幣的輕節點,能夠驗證比特幣網絡上面所有新的交易。所謂輕節點也不是特別輕,要從創世記的區塊開始。
保持的賬號也都是UTXO,而且我們也不需要信任其中每一個節點,因為節點都是獨立的跑一個BTC的一個輕節點,每個子網的節點他跑的計算必須是一樣的,才能對計算結果進行一個驗證。因為它要經過一輪共識,所以它得到的結果需要共識,經過多個子網節點進行共識之后證明你UTXO查詢是準確的,是沒有經過串改的才能返回到我們的智能合約。
還有一個是它消耗的資源,這個是跑在IC網絡上,你對API的調用是需要為這個付費的,我之前提到是終端用戶不需要為這個付費,但開發者需要在自己的合約里調用或者簽名都需要為單獨的每一次調用進行付費。
肖曉:說到開發者付費這個問題,剛剛提到比特幣轉賬本身還是在比特幣網絡上,所以可能還是會消耗一些比特幣網絡的gas,這個gas可不可以在用戶端做到無感,反向gas模型可以cover這種類型的gas嗎?
????PaulLiu:這種類型的Gas是可以cover,因為每個智能合約有一個BTC地址,應該是合約付費,所以這個還是轉嫁到了開發者頭上去。如果開發者決定我的用戶的交易我也愿意付費的話,那他當然可以為此在BTC網絡上付費。
????肖曉:另外一個問題是剛剛有提到WBTC,想請問一下通過IC方式去集成之后的BTC是以一個什么樣的標準或者以什么樣的格式存在,還是原始的UTXO還是有針對比特幣新的標準出來?
PaulLiu:我覺得基金會不太會做這個標準,還是把這個留給開發者來做,我們做的是每一個Canister有一個BTC的地址,你決定怎么來用里面的BTC,這個都是存在于比特幣網絡上,不存在IC網絡。所以你可以選擇做一個WBTC,但是也有其他的開發者做類似的,這個公平競爭交給市場決定。當然也不一定非要做WBTC,有很多應用不需要這種方式。
肖曉:如果社區建立的資產標準,官方會去選擇站隊或者選擇去支持某一種標準嗎?
PaulLiu:這個我覺得我們最重要的考慮是不要出現太多騙子,還是對安全性方面的擔憂多一些,至于哪個標準最后會勝出是不一定,基金會也不會去站隊。
肖曉:我們同時也在關注一些其他的生態,比如從我們的視角來看比特幣從古早時期到現在很多項目都想在比特幣上面衍生智能合約,比如像RSK或者是Blockstack,想請教一下IC直接集成和現在市面上能夠看到的智能合約層協議層的項目從技術上來說大概有一些什么樣的優勢?或者最重要的區別在哪里?
PaulLiu:我覺得比較主要的區別是私鑰的保存方式,我剛剛說門限簽名沒有人知道它的私鑰是什么,每個節點只是知道自己的份額,所以這個相對是一個去中心化的保存私鑰的方式,現在可以負責任說沒有人真正做到這個。之前有提出為比特幣提供智能合約,他們都是通過一些方式把這個繞過去,有通過硬件,可信的硬件存放私鑰,可以信任硬件簽名。但是信任硬件簽名到底信任在什么地方,你可以信任簽名不被盜出來,但是你是否可以信任這個簽名是被正確使用的。所以他們如果要設計一個復雜的過程來取信用戶,這樣一個方式是比較困難,也可能里面有一些技術難點或者需要妥協的地方。
我覺得在IC上面它主要的方式是把簽名以去中心化的方式做出來,我們想象一下DeFi,我們強調DeFi而不是CeFi。CeFi比如一個交易所,交易所簽名正確的方式就是錢包要小心的管理,一不小心泄露造成大麻煩。錢包它的使用次數跟它的使用方式都是要非常多的程序和規則,也帶來了不方便。
但現在有了一個去中心化方式來做簽名或者來做計算。現有的去中心化方式可以讓大家相信智能合約的計算結果,但它不能持有秘密,現在DKG這個技術是可以去中心化的方式可以相信這個簽名,我覺得這是一個突破。不光是從密碼學的角度來講,如果能夠大規模應用的話肯定是一個新的突破。
肖曉:這個ECDSA看起來是非常底層的技術,是不是說明這個技術真的實現了之后后期去集成其他的網絡,比如集成以太坊或者集成現有比較成熟的協議也是相對容易的?
PaulLiu:是的,我們也是對這樣的前景抱有希望。之所以首先選擇比特幣是比特幣目前而言還是集中在一個資產的網絡,它缺乏一個可信的智能合約的架構。所以我們首先選擇比特幣作為我們結合的試點,下一步馬上就有以太坊的計劃,以太坊本身也有2.0的改變,所以處在這樣一個階段,所以它的改動我們目前還在觀望。但是對以太坊的集成也是發起了提案,正在研發當中。所以同樣的技術可以用在以太坊,我們可以對以太坊的交易進行簽名,這個沒有太多問題。
因為以太坊是一個智能合約的平臺,我們對BTC的集成還是集中在資產上,可以有BTC的地址,可以做簽名。但是以太坊不是光做簽名而言,它有一個智能合約的事情,我們需要能夠調用以太坊的智能合約。調用以太坊的智能合約可能也就是發個消息做一個簽名,但是以太坊調用我們IC上的合約,這當中就還有些事情需要做,所以跟BTC的集成還略有差別。如果能實現雙向調用,那跟橋接的區別就更大了,因為橋接只能是一個資產的抵押,那邊換出來一個等值的資產,不同的資產。如果能夠實現智能合約雙向調用,我相信對跨鏈來說也是一個很大的突破。
肖曉:明白,除了智能合約這個難點之外,您覺得像資產端會是另外一個難點嗎?因為其實以太坊賬戶模型和比特幣UTXO也有一些不太一樣,這整套邏輯需要從頭開始重新寫嗎還是說其實這塊不是特別難?
PaulLiu:這塊應該沒有什么問題,因為賬戶模型不一樣,實際上就取決于你的應用是怎么利用這些賬戶模型的,我們只是提供一個接口你可以查詢到,所有在比特幣的UTXO你都可以查得到。所有在以太坊的狀態也能查得到,我們保證查詢是分布式進行的,它查到的結果是可信,做到這一點不難。我們既然每個IC子網節點可以跑比特幣的客戶端,也可以跑其他鏈的客戶端。
肖曉:在很長遠的未來,再結合很多條主鏈之后,從同一個Canister可以實現同時調用各個鏈上的智能合約和資產嗎,到時候可能就不會有一個多鏈的概念了,其實一個Canister就可以去控制你所有的鏈或者所有的錢包資產?
PaulLiu:這是一個非常好的前景,我們也希望能夠做到這一點。
肖曉:從應用的角度,剛才也提到閃電網絡,發展速度非常快,我想問一下未來集成比特幣之后會不會跟閃電網絡有一些協同或者有結合的點?
PaulLiu:閃電網絡主要的技術就是可以把交易合并了,它在閃電網絡之間轉賬可以不通過BTC,它是通過密碼學的一些知識,把最后合并的交易通過單獨一個交易就可以驗證完成,它是這樣一個技術。同樣的技術在IC上面也可以實現,至于這樣有沒有什么意義我就不是特別清楚,但是我想指出的是這里應該沒有太大的技術難點,跟閃電網絡結合的技術完全是可以發生在應用層,不需要我們在IC的底層在基礎設施上做新的東西。
但是閃電網絡它能做的就只是這些,它之所以能夠把這些交易合并,也就是因為有這一套密碼學的知識能做到這一點,但是你要想做更多的事情,比如更復雜的邏輯,比如我通過一些條件能不能判斷這些交易成功,給那個地方發一點給這個地方發一點。凡是要能編程的地方用閃電網絡就行不通了。需要智能合約的整套的東西在里面,我相信閃電網絡它也是努力在尋找這個突破口。所以IC上面的智能合約說不定也能為閃電網絡提供下一個發展空間。
肖曉:明白,應用這方面除了支付還會有些其他的方向,比如把比特幣帶到DeFi里面,或者有自己的生態或者把比特幣自己加進去,我不確定現在有沒有對未來應用的規劃,下一步去發展比特幣支付還是去發展比特幣加Defi這些應用?
PaulLiu:這些我們都留給應用層或者我們開發者,我相信現在也有很多開發者非常關注這個事情,包括集成之后能推動他們自己的應用。我覺得從我們基金會目前所做的事情來說,貫穿所有的一個主題就是我們希望推動IC網絡去中心化,我們希望它變得更可信,變得更可信之后我們才能有更大的發展空間。
所以一個是IC節點去中心化,另外一個是我們投票機制的去中心化,這也就意味著我們作為基金會不希望在應用層跟其他的應用開發者進行競爭的,除非是底層應用需要用到的技術我們會參與,如果是能夠在應用層完成我們盡量交給應用層完成,基金會是不需要在里面有一個特殊的定位。
肖曉:明白,按照剛才的時間線這個月底開發者可以做一些基本的測試和基本的嘗試了,這是一個非常好的消息。
Tags:比特幣TERCANANI大學生玩比特幣賺了上億的人biteternityshibmerican幣大莊METANIA幣
親愛的PEARCOIN用戶:近日,PEARCOIN的安全衛士-梨小安發現,有部分居心叵測的網絡水軍和直播間惡意詆毀PEARCOIN平臺,已經對我方造成了嚴重的負面影響.
1900/1/1 0:00:00Gate.ioHODL&Earnwilllaunchits53rdsharkfinstructuredproduct“SharkFinBTC6-DayNo.53”onJan29th.
1900/1/1 0:00:00原文作者:HarithKamarul?原文來源:etherscan-blog本文來自微信公眾號ETH中文,Odaily星球日報經授權轉載發布.
1900/1/1 0:00:00Gate.io今日已正式上線MOBI、PSB、MEAN、LAND、MPH多個幣種USDT、ETH交易對礦池,並開啓新版流動性礦池獎勵.
1900/1/1 0:00:00尊敬的用戶:??????????BKEXGlobal即將上線LQDR,詳情如下:上線交易對:LQDR/USDT??幣種類型:FTM充值功能開放時間:已開放交易功能開放時間:2022年1月27日1.
1900/1/1 0:00:00據Cryptodaily1月27日消息,切爾西傳奇球星約翰·特里最近在推特宣傳其NFT,其中包括英超獎杯、歐足聯冠軍聯賽和歐聯杯獎杯的圖片,似乎因此陷入困境.
1900/1/1 0:00:00