隱私最強之盾遭遇威脅,區塊鏈如何抵禦側通道攻擊?

買賣虛擬貨幣
在遊戲《最終幻想》中,來自蘭迪斯共和國的全能戰士巴修被稱為最強之盾,他身經百戰、勇猛果斷,被子民視為英雄。而在區塊鏈世界,Zcash、門羅幣、零知識證明等存在,也被稱為隱私的最強之盾,它們可以有效確保交易資訊不被洩露,然而,這個世界真的存在密不透風的牆嗎?本期的學術分享,我們重點推薦斯坦福大學教授Dan Boneh等人最新的研究成果《針對匿名交易的遠端側通道攻擊》。而在硬核技術文章精選部分,我們還會看到zkSNARK 證明最佳化、Taproot/Schnorr升級、閃電網路侷限性、Substrate等內容。

另外,在過去的一週當中,以太坊1.X、以太坊2.0以及Layer 2也迎來了眾多技術進展。

比特幣作為最大的加密貨幣,其交易其實並不是匿名的,眾多學術研究已經表明,比特幣的交易圖可以被有效去匿名化,即使是很多所謂的匿名加密貨幣也是如此。
而對於那些希望在公共區塊鏈上獲得交易隱私的使用者而言,像Zcash、門羅幣(Monero)這樣的匿名加密貨幣系統,因使用了相當高階的密碼學原語,例如簡潔零知識證明(zkSNARKs)和環簽名(ring signatures),從而提供了更高程度的不可連結性。那使用這樣的系統,使用者可以高枕無憂了嗎?

實際上,儘管它們擁有了強大的密碼學原語保護,但還是會存在一些協議層的隱私攻擊方式會對這些系統的隱私性構成威脅,這也是斯坦福大學教授Dan Boneh等密碼學大牛最新的研究成果。

原論文連結:https://crypto.stanford.edu/timings/paper.pdf

(注:研究者向Zcash和Monero安全團隊披露了這些攻擊,並且他們已在最新版本客戶端中修復了相關漏洞。例如,Zcash v2.0.7-3版本客戶端引入了初始修復,v2.1.1-1版本客戶端為區塊處理中的時間側通道引入了進一步的修復。而Monero則在v0.15.0版本客戶端中引入了修復。將客戶端更新到最新版本的使用者,將不易受到此類攻擊的威脅。另外,由於攻擊需要監視和參與Zcash或Monero網路,因此此類攻擊並不能追溯以往的交易。)

1、1 匿名支付系統的架構

在描述相關攻擊之前,我們先來了解下隱私加密貨幣(以Zcash和Monero為例)的一些核心設計概念。這些加密貨幣是建立在比特幣的UTXO(未花費交易輸出)模型之上的,即每筆交易會花費以前交易的輸出,併產生新的輸出。這些UTXO的集合會記錄在區塊鏈中,並表示流通中的總貨幣。

貨幣的每個使用者都擁有一個或多個公鑰(也稱為地址),並且連線到P2P網路以傳送和接收交易。

隱私目標:在比特幣中,UTXO是一個(amount,pk)元祖(tuple),其中pk代表接收者的公鑰。為了以後使用這個UTXO,接收者在相應的金鑰下生成一個簽名。這樣,一筆交易就顯示了所用貨幣的數量、資金的來源(即使用了哪些UTXO)及其目的地(即新UTXO所有者的公鑰)。

此外,使用者的公鑰可連結至其向網路傳送交易時連線到的P2P節點。

而Zcash和Monero等匿名加密貨幣,旨在提供以下更強的隱私保障:

1. 保密性:交易不披露交易金額;
2. 不可追蹤性:當交易花費UTXO時,很難識別交易生成了該UTXO;
3. 不可連結性:給定兩筆傳送到網路的交易(最多有一筆是由對手傳送),則對手無法判斷它們是否支付相同的地址。此外,給定兩個地址,對手無法確定它們是否屬於同一使用者;
4. 使用者匿名:給定使用者地址(即公鑰),對手無法確定該地址的所有者如何連線到P2P網路;

而這些隱私保障,通常是透過密碼學技術的組合來實現的,下面我們將簡單地描述下這些技術:

1. 保密交易技術(CT)隱藏了交易資金的數額,一筆保密交易的UTXO形式為(Commit(amount), pk),也就是說,它們只顯示交易金額的密碼學承諾。交易還包括證明其總餘額為0的一個證明。

2. UTXO匿名集透過隱藏交易輸入的身份提供不可追蹤性。具體來說,匿名交易不會顯示它花費的UTXO,而只顯示一個超級UTXO集,以及這個集合中某些UTXO所有權的零知識證明。

3. 混淆及多樣化地址保證不可連結性。為了防止傳送到同一地址交易的可連結性,匿名交易的UTXO包含一個“混淆”公鑰(例如,Zcash中對該金鑰的承諾)。多樣化地址(或Monero中的子地址)使得使用者能夠匿名地與多個實體進行交易,而無需管理多個金鑰。透過單個金鑰sk,使用者可以建立多個公鑰pk1,…… pkn。這些金鑰是不可連結的:很難確定兩個公鑰pk、pk0是否來自於同一個金鑰。

區塊鏈掃描是不可連結性的技術後果。由於匿名交易的UTXO並不會清晰顯示接收方的公鑰,因此使用者必須掃描每筆新交易並執行各種密碼學操作,以檢查交易是否和它們有關。

使用者匿名性由不可追蹤性和不可連結性保證。由於交易不會顯示傳送方或接收方的公鑰,因此使用者的公鑰不能連結至其用於傳送或接收交易的P2P節點。

(1)使用者的錢包建立一筆交易,這涉及到生成一個密碼學證明。此計算可以在本地執行,也可以外包給遠端服務。(2) 錢包將新交易傳送到P2P節點,P2P節點將其廣播到網路中。(3)P2P節點與連線的錢包共享接收到的交易,連線可以是本地的或遠端的。在交易建立期間,對手1a可以計時外包的證明生成,以洩漏某些交易秘密。在處理一筆新交易時,錢包作為交易的收款人時,其行為可能會發生變化。如果錢包連線到遠端節點,這可以由觀察錢包和節點之間通訊模式的對手1b,或控制該節點的對手3來推斷。如果錢包和節點位於同一位置,則與使用者的P2P節點互動的對手2,就可以推斷錢包行為的變化。

匿名交易的生命週期。圖1說明了如何透過P2P網路建立匿名交易,並與節點和錢包進行共享:

1. 為了傳送新的交易,使用者的錢包選擇一些UTXO,併產生零知識交易有效性證明;

2. 交易被髮送到連線至錢包並與網路共享的P2P節點。P2P節點將這些交易儲存在它們的“儲存池”(Mempool)中;

3. P2P節點與連線的錢包共享這些交易。錢包掃描每一筆新交易,以檢查它是否是交易的收款人。一旦一筆交易被納入區塊當中,就會執行步驟2和步驟3。當一個區塊被挖掘時,該區塊及其包含的交易將被廣播到所有P2P節點。然後區塊的交易就和使用者的錢包進行共享了。

1、2 攻擊結果

瞭解完匿名支付系統的架構,我們來簡單認識下研究者提出的攻擊,究竟會帶來什麼樣的後果。
據悉,這些攻擊是利用了系統不同部分洩露的通訊模式或時間資訊,攻擊者透過系統的方法,觀察匿名交易在系統中的生命週期。在每一步,研究者都會尋找側通道,並評估它們對使用者隱私的影響。

在圖1所示的匿名交易生命週期當中,攻擊者可在這些步驟中的每一步觀察側通道資訊,並嘗試瞭解有關交易的資訊,例如:預期收款人的身份(例如,他們的公鑰或他們的P2P節點的IP地址)、交易轉移的資金量或資金來源。

下面是研究結果:

1、在Zcash中,使用者的錢包和P2P節點是在單個程序中執行的。錢包透過嘗試使用它的金鑰對其進行解密,以檢查它是否是每個傳入交易的收款人。而這導致了側通道洩漏的兩個來源:(1)如果解密成功並且解密的交易(稱為Note純文字)格式正確,則錢包將執行額外的Pedersen承諾校驗; (2)如果解密成功,但是解密的交易格式不正確,則錢包會丟擲一個異常,而該異常會傳播到節點的P2P層。

在第一種情況下,執行額外Pedersen承諾檢查所花費的時間,會導致P2P節點對後續網路訊息的響應出現延遲。

因此,研究者提出了一種稱為PING的攻擊,攻擊者可使用ping響應中的延遲,來推斷節點是否為交易的收款人。這破壞了交易的不可連結性。

在第二種情況下,研究者提出了一種REJECT攻擊,其中攻擊者小心地處理格式錯誤的交易,在已知(但匿名)公鑰下對其進行加密,並將其傳送到目標P2P節點。如果解密成功,則會觸發異常,並且目標節點將明確的“reject”訊息傳送回攻擊者。

攻擊者在收到此訊息後,其就能知道所選的公鑰屬於目標P2P節點的所有者,而這違反了匿名性。

有關PING和REJECT攻擊的詳細資訊,有興趣的讀者請參見原論文第四節。

2、對於Monero而言,其錢包和節點也在單獨的程序中執行,研究證明,支付接收會更改錢包及其節點之間的通訊模式。

如果錢包連線到遠端節點(在移動錢包中很常見,或者在首次與網路同步時很常見),則被動網路對手可以推斷該錢包是否是最近交易的收款方。(有關細節,請參見原論文第五節)

此外,即使使用者的錢包和節點位於同一位置,研究者也表明,遠端對手可引起和觀察節點資源的鎖競爭(Lock Contention),來推斷錢包到節點的通訊模式。

研究者在廣域網中驗證了這種時間攻擊,一位位於倫敦的攻擊方可推斷受害者(在蘇黎世執行的節點和錢包)是否收到了付款。

對於Zcash和Monero而言,這類攻擊使遠端對手能夠透過識別每個交易收款人的P2P節點來連結匿名交易。如下面所述,攻擊可進一步被利用於:(1)根據使用者的公鑰識別其P2P節點的IP地址;(2)打破屬於同一使用者的各種地址的不可連結性。

對於Zcash,這些攻擊還能夠:(3)在給定使用者公鑰的情況下遠端導致Zcash節點崩潰,以及(4)在涉及使用者長期秘密檢視金鑰的(非恆定時間)ECDH金鑰交換上建立遠端時間側通道,這可能導致檢視金鑰的洩漏。

這些攻擊可能會使關注隱私的加密貨幣使用者處於危險之中。例如,將使用者的匿名公鑰連結到其P2P節點的對手,可以發現使用者的真實身份或位置,一個打破不可連結性的對手,可以推斷哪些P2P節點屬於正在進行交易的使用者。

3 zkSNARK生成中的側通道,此外,研究者還觀察到,在Zcash中,生成zkSNARK的時間不是恆定的,而是取決於交易金額的漢明權重(hamming-weight)等秘密資訊。研究實驗表明,目前的zkSNARK實現在實際中並非是零知識的:從時間洩露中收集的資訊會使零知識屬性失效。如果對手能夠測量zkSNARK生成過程的執行時間,則可以提取此資訊。當然,正如下文所解釋的,在當前的Zcash系統中,可能很難利用這種洩漏。

1、3 攻擊方式概述

瞭解完了攻擊帶來的後果,我們重點來認識下這類通用攻擊方式,以及針對zkSNARK Prover的時間攻擊,而針對Zcash和Monero的具體攻擊方式,則省略不談。

1、威脅模型

本文所描述的攻擊屬於遠端側通道攻擊。因此其並不要求受害者的軟體被替換,我們可以考慮這樣一個遠端對手,如圖1所示:

1. 一個網路對手(圖1中的對手1a和1b)監視受害者錢包和遠端服務(例如節點或驗證程式)之間的加密通訊量。
2. 一個P2P對手(對手2)參與P2P網路。攻擊者可能會偏離P2P協議。
3. 一個遠端節點對手(對手3)控制一個第三方P2P節點,並監視受害者的錢包與該節點之間的(明文)通訊。

2、攻擊型別一:接收方側通道

研究發現,最實用和最普遍的側通道攻擊,會影響圖1所示的匿名交易生命週期的最後階段(即錢包處理新交易時)。這些攻擊使遠端對手能夠破壞系統的不可連線性和匿名性保證。

這種攻擊利用了相關匿名加密貨幣普遍存在的設計缺陷,即使用者的錢包會定期檢查它是否是任何新交易的收款人。

目標:這類攻擊針對的是交易不可連結性和使用者匿名性。因此,攻擊者的目標是:(1)確定兩筆交易是否支付相同的地址,(2)確定已知地址的使用者如何連線到P2P網路。

這種攻擊針對的是錢包與P2P節點的常見部署,其實際目標是識別交易收款人正在使用的P2P節點。在多個使用者將其本地錢包連線到共享遠端P2P節點的設定中,網路對手或遠端節點對手發起的攻擊,可進一步識別出交易收款人使用的實際錢包。

這裡考慮兩種不同的攻擊場景:

1. 對手知道一個匿名公鑰,並向該金鑰傳送一筆交易,以確認金鑰所有者用於接收交易的P2P節點(或錢包)。
2. 誠實的使用者傳送一筆交易,對手不知道預期的收款人或其公鑰。對手決定交易的收款人使用哪個P2P節點(或錢包)。

實際上,後一種攻擊場景包含了第一種情況,因為對手可以將精心編制的交易傳送到已知公鑰。後一種場景會直接導致交易不可連結性的中斷。

給定傳送到網路中的兩筆交易,對手只需要確定兩筆交易的收款人是否使用了相同的P2P節點還是錢包。此外,這兩種攻擊場景都代表了使用者匿名性的中斷,並且可被用於其它隱私侵犯:

1. IP地址恢復,對手可以將公鑰連結到所有者P2P節點的IP地址(如果連線到遠端節點,則可以連結到其錢包),除非所有者使用匿名工具(如Tor)。而此資訊可被用於識別受害者,並對其進行地理定位。

2. 連結多樣化地址,給定兩個公鑰,攻擊者可以確定它們是否屬於同一使用者。攻擊者向每個公鑰傳送一筆交易,並檢查是否標識了同一節點或錢包。這打破了多地址的不可連結性。

3. 恢復私鑰,這些攻擊背後的漏洞,也為透過時間側通道提取受害者的“檢視”金鑰開闢了途徑。竊取此金鑰,可以讓對手將傳送給受害者的所有交易連結起來(但無法竊取受害者的資金)。

攻擊策略

研究者的攻擊利用了加密貨幣錢包(收款人和非收款人)處理交易的方式差異。

這種錢包行為的差異,其本身並不是問題,因為遠端攻擊者無法直接與使用者的錢包互動。然而,研究發現,由於各種設計缺陷,錢包行為的差異影響了錢包與其P2P節點之間的互動。反過來,這就使得遠端攻擊者可透過各種側通道推斷錢包到節點互動的變化。

對此,研究者提出了兩種通用攻擊策略:

策略1,錢包到節點通訊的流量分析。如果錢包連線到遠端節點,則網路對手或遠端節點對手可觀察錢包到節點互動的變化。
策略2,從P2P層推斷錢包行為。如果錢包和節點位於同一位置,則遠端對手無法觀察它們的互動。然而,如果錢包行為的變化,影響了使用者的P2P節點和遠端對等節點之間的互動,資訊仍然會洩漏給對手。

這兩種策略,不僅適用於在建立交易並將其傳送到P2P網路時,而且也適用於將其包含在區塊中時。在這一點上,區塊及其所有交易都與每個對等方共享,錢包重新處理交易以確保它們有效(例如確保它們沒有雙花)。

3、 攻擊型別二 : 傳送方側通道

上面描述的攻擊,打破了匿名加密貨幣交易的不可連結性以及使用者的匿名性,這是利用了P2P客戶端和錢包系統設計中的缺陷。因此,它們並不是直接針對協議密碼學保護的攻擊。為了擴大對匿名交易中側通道漏洞的調查範圍,研究者還對密碼學工具展開了研究,而這些工具保證了交易建立時的機密性和不可追蹤性,論文中特別提到的,便是當前加密貨幣行業使用最多的簡潔零知識證明zk-SNARKs。

注意,這部分描述的攻擊實際上更偏向於理論性質。雖然它們不太可能影響到當前的使用者,但這類攻擊的存在,再次說明了無側通道密碼學實現對於匿名系統的重要性。

攻擊目標:負責確保交易保密性和不可追蹤性的交易傳送者。

正如下面討論的,遠端攻擊最可能的目標是恢復交易金額,從而破壞交易的保密性。

然而,針對交易建立的遠端側通道攻擊,實際面臨著很多挑戰:

1. 非互動性:使用者可以在不與任何其他方互動的情況下建立交易;
2. 短暫秘密:許多交易秘密(例如交易金額,以及與UTXO相關的秘密)是一次性的。因此,即使存在一個側通道,對手也可以嘗試一次提取這些秘密;
3. 高熵秘密:用於建立交易的長期秘密(例如使用者的金鑰)具有高熵,並要求提取高精度的側通道;

研究表明,對手理論上可以克服這些挑戰,其目標是交易建立過程的證明階段,並旨在(部分)揭露交易的保密金額。
我們知道,零知識證明是匿名交易的基本構建技術,在zk-SNARK協議中,證明者(prover)有一些秘密輸入(稱為witness),並使驗證者(verifier)確信該witness滿足給定的斷言,而不透露關於witness的任何其他資訊。在Zcash和Monero中,此類proof證明了交易的有效性,同時保留了交易的隱私性。例如,在Zcash中,證明witness包含已用UTXO的列表、接收者地址、交易金額,以及保證這些UTXO存在並且屬於支出者,且所有資金都轉移至接收者的證明。

zk-SNARK證明者中的時間側通道。研究者的論題是,在當前的zk-SNARK實現中,生成證明所花費的時間,會洩露有關prover秘密witness的資訊,特別是關於花費幣的數量,然而,如上所述,由於交易建立的非互動性質,遠端對手可能很難在證明生成過程中獲得時間側通道。而更糟糕的是,證明生成的時間可能不足以提取短暫或具有高熵的秘密。

儘管存在這些挑戰,但我們在下文中指出,在某些部署方案中,對匿名加密貨幣的zk-SNARK prover進行遠端時間攻擊是可能的,並且演示了證明生成時間,可以洩露有關秘密交易額的重要資訊。

關於非互動性,研究者提出了兩個觀察結論:

1. 如果弱客戶端(例如移動錢包)將證明外包給遠端服務,則網路對手可以計時prover。雖然證明外包的情況並不常見,但Zcash協議是支援這項功能的,遠端證明服務是為早期版本的協議設計的,因而,會有一些使用者可能會選擇將證明委託給遠端服務;

2. 更一般地說,對手可以透過監控P2P網路來獲取有關交易建立過程何時開始的帶外資訊,並觀察何時結束。例如,使用者可以設定定期付款,其中交易是在固定時間建立的。對手還可以觸發一筆交易,以作為某些外部協議的一部分。研究者為數字簽名繪製了一個時間側通道連線。雖然簽名是非互動的,但使用它的協議(例如TLS)可以引入遠端側通道。

對於攻擊者而言,攻擊的目標就是交易量,這是一個非加密值,即使是粗略的近似值(透過單個時間測量洩漏)也構成了對隱私的侵犯。

攻擊策略。研究者考慮了一種利用算術運算中的時間變化(取決於運算元的值)密碼學時間攻擊。

研究利用了這樣一個事實:產生證明的時間與prover的witness值有關。由於witness包含交易金額,攻擊的目標就是該金額與證明時間有關。例如,Zcash的證明將交易量分解為bit,併為每個非零bit計算一次橢圓曲線運算。因此,證明時間與交易金額的漢明權重是密切相關的,也就是說,證明時間與交易金額的值也是相關的。

1、4 關於zkSNARK Prover的時間攻擊

下面,我們進入到zkSNARK Prover的時間攻擊部分,按照上面描述的策略,我們的目標是從證明生成的單個時間度量中,恢復有關保密交易金額的資訊。

在下面的部分當中,研究者演示了這種時間攻擊如何揭示Zcash中有關交易量的資訊。

而對於Monero中實現的特殊用途證明,類似的攻擊則是無效的。

1、Zcash Prover中的時間側通道

研究者表示,對於Zcash的zkSNARK系統,證明時間在很大程度上取決於證明者witness的值。也就是說,對於匿名交易,證明時間與交易的秘密值是密切相關的。

為了傳送一筆交易,傳送方建立兩個證明,其中一個證明已花費UTXO的所有權,另一證明新的UTXO是結構良好的。

Zcash使用的是Groth26證明系統,對於攻擊目的而言,只要知道證明者將witness編碼為一個向量(a1,……,am)欄位元素,並且證明者的主要計算是以下形式的“多重指數運算”:

其中Gi是固定的橢圓曲線點,重要的是,Zcash的實現最佳化了aiGi,其中ai = 0。因此,證明時間與證明者的witness中非零欄位元素的數量相關。

由於witness中的交易量是二進位制編碼的,其漢明權重值就會影響證明時間。而且,由於二進位制表示的權重,與數字的絕對值相關,因此證明持續時間洩露了有關保密交易金額的資訊。

2、評估

為了評估時間攻擊,研究者進行了一個實驗。

下圖顯示了每個量的證明時間的平均值及標準差。結果顯示,證明時間與交易金額具有很強的相關性(R=0.57)。雖然時間洩露只能得出金額的粗略近似值,但這足以讓對手識別出價值巨大的罕見交易。

1、5 討論和結論
與論文中提到的針對Zcash和Monero的攻擊(已被修復)相比,上述時間攻擊是不容易應用的,它要求對手可以對證明生成進行計時,這取決於使用者的常用模式(例如重付款)或部署策略(例如,將證明外包給遠端服務)。
如果確實存在計時機會,研究表明這種洩露會允許攻擊者對私人交易金額進行粗略估算。

當然,本地側通道攻擊會是更加有效的,然而,Zcash明確地否認了這種威脅。

最終,這種攻擊的存在,對於非恆定時間加密貨幣實現而言,可能會帶來潛在的威脅。Zcash開發者正在開發一個更成熟版本的橢圓曲線演算法,並可能在未來部署到主客戶端中。

灑脫喜簡評:這類攻擊的提出,為匿名交易系統的設計帶來了新的挑戰。研究者希望這項工作能夠提醒相關專案方及使用者關於側通道洩露的威脅,並推動開發諸如恆定時間的zkSNARK prover之類的密碼學原語實現。

二、硬核技術文章一週精選

2、1 zkSNARK 證明最佳化,將DEX的結算成本降低到每筆交易0.000124美元

在這篇文章中,Loopring首席架構師Brecht Devos解釋瞭如何透過最佳化libsnark原始碼,將DEX的總結算成本降低到每筆交易0.000124美元,並使證明者(prover)的成本降低到每筆交易0.000042美元,這一成果較之前的驗證成本降低了大約15倍。
文章連結:https://medium.com/loopring-protocol/zksnark-prover-optimizations-3e9a3e5578c0

2、2 乾貨 | 一文讀懂比特幣的Taproot/Schnorr升級

在這篇文章中,萬向區塊鏈、PlatON首席經濟學家鄒傳偉介紹了比特幣目前使用的ECDSA 簽名演算法,以及即將採用的Taproot/Schnorr簽名升級的技術細節。
文章連結:https://www.8btc.com/media/562991

2、3 突破區塊鏈不可能三角(五):閃電網路,鏈下技術,以及它們的侷限性

區塊鏈共識演算法學者maxdeath在這篇文章中介紹了閃電網路的基本原理、HTLC的基本原理,以及這類offchain技術存在的侷限性。
文章連結:https://www.8btc.com/media/563219

2、4 Substrate極簡版概括:功能、特性與共識

作者DmitriyKashitsyn在這篇文章中介紹了Substrate 框架的主要目標和特性。雖然這還不足以讓你學會編寫相關程式碼,但至少可以讓你瞭解該框架存在的一些優勢。
文章連結:https://www.8btc.com/article/560185

2、5 BM最新作:區塊鏈背後的取捨之道

自2009年以來,BM一直在從事區塊鏈技術的研究,他發現,一件有幫助的事是思考人們可以做出的所有設計權衡,這不像“最快”,“最具擴充套件性”,“最去中心化”或“最佳治理”那麼簡單。 在選擇哪種區塊鏈技術最適合你的應用時,本文將探討一些不太常見的問題。
文章連結:https://www.8btc.com/article/562686

三、以太坊開發更新進展

以太坊1.X更新內容:

最新無狀態以太坊客戶端研發更新:Witness格式與資料檢索問題;
最新的Nethermind客戶端解決了一些對等節點問題;

以太坊2.0研發更新內容:

關於以太坊2.0的最新知識點科普;
Nimbus客戶端更新:discv5、BLS簽名、輕量級棧跟蹤 ;
火車與旅館EE;
以太坊2.0中的獎懲;

Layer 2 研發更新內容:

Loopring推出基於zk-rollup技術的DEX,初始TPS為100;
幾分鐘內在NodeJS中執行Fuel optimistic rollup;
PlasmaLeap轉向rollups;

本期的分享就到這裡啦,下週再見~

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;