在過去的幾個月裏,我們致力於開發 Sui Bridge,這是 Sui 生態系統的原生橋樑。這項舉措增強了 Sui 對更廣泛社羣的可及性,並提高了與其他區塊鏈的互通性。 

Sui Bridge是Sui生態系統的重要組成部分,有助於Sui與其他區塊鏈網路之間安全高效地傳輸資產和資料。此功能不僅擴大了基於 Sui 構建的應用程式的覆蓋範圍,還提供了更深入地融入更廣泛的區塊鏈環境的途徑。互通性促進了 Sui 的成長和採用,使以太坊等其他網路上的資產能夠安全、輕鬆地遷移到 Sui。

隋橋背景

在區塊鏈生態系統中,橋樑是一種實現獨立區塊鏈網絡之間交互和通信的協議。橋樑促進了跨邊界數據的傳輸,允許用戶將資產從一條鏈轉移到另一條鏈,甚至可以執行跨鏈消息傳遞等更復雜的操作。

在少數幾種橋設計選擇中,Sui Bridge 採用了鎖定和鑄造機制,這是最廣泛使用的解決方案之一。作爲一種鎖定和鑄造設計,Sui Bridge 在以太坊智能合約中持有以太坊原生資產,而它根據橋交互的方向鑄造或銷燬 Sui 資產。

作爲 Sui 上的原生橋接器,Sui Bridge 無需額外信任。保護 Sui 的實體與保護 Sui Bridge 的實體相同,並且 Sui Bridge 的代碼已嵌入 Sui 框架中。

目前,Sui Bridge 已在測試網上可用,並支持以太坊 Sepolia 和 Sui 測試網之間 ETH、WETH、WBTC 和 USDT 等代幣的橋接。Sui Bridge 在主網上發佈後,將優先支持更多資產。Sui Bridge 的後續版本將添加新功能,例如自定義跨鏈消息傳遞和與其他區塊鏈的集成。

高級架構

Sui Bridge 有四個關鍵組成部分:Sui Bridge 委員會或節點網絡、Sui Bridge 智能合約、在以太坊和 Sui 上運行的全節點以及橋客戶端。

客戶端是用戶和 Sui Bridge 基礎設施之間的接口。它通過提交正確格式的交易並根據需要收集 Sui Bridge 節點簽名來協調用戶橋接操作。客戶端使用完整節點在橋的兩側提交交易。Sui Bridge 節點還運行以太坊和 Sui 完整節點來監聽橋接操作並通過以下交易對其進行響應。雖然橋接客戶端是無需許可的,任何人都可以執行,但許多橋接節點會切換橋接客戶端以確保網絡的活躍性。

Sui Bridge 利用在以太坊和 Sui 上運行的基礎設施以及 Sui Bridge 節點網絡。

當將資產從以太坊橋接到 Sui 時,用戶將資產存入以太坊上的 Sui Bridge 智能合約。然後,客戶端觀察此交易並協調橋接過程。Sui Bridge 委員會運營以太坊完整節點,這些節點也會監聽此類橋接操作,以驗證客戶端的請求是否合法。

驗證後,通過 Sui 上的 Sui Bridge 包爲用戶鑄造橋接資產,完成橋接操作。由於橋接成本如此之低,Sui 驗證者目前補貼與 Sui 上的橋接交易相關的 gas 費用,並允許客戶端自動執行交易,從而在 Sui 上創造無縫的橋接體驗。

當從 Sui 橋接到以太坊時,流程類似,只是用戶必須在以太坊上手動提交認領交易。此交易在交易 calldata 中包含來自 Sui 橋接節點的簽名數據,允許以太坊帳戶贖回橋接合約中鎖定的指定資產。

此外,所有橋接記錄和批准都存儲在鏈上的橋接對象中。這在 Sui 中是可行的,因爲它的存儲和 gas 成本非常低。Sui 橋接合約還處理治理行動,這些行動由 Sui 橋接委員會控制。

橋樑信息

爲了確保較低的 gas 成本,Sui Bridge 以輕量級的方式構建消息,以便接收鏈輕鬆解碼。採用通用的消息格式,確保每條鏈都能高效地解碼和驗證消息和簽名。

移動代碼示例:

公共結構 BridgeMes​​sage 具有複製、刪除、存儲 {message_type:u8,message_version:u8,seq_num:u64,source_chain:u8,payload:vector<u8>}

Solidity代碼示例:

結構消息 { uint8 消息類型; uint8 版本; uint64 nonce; uint8 chainID; 字節有效載荷; }

這些橋接消息的設計充分考慮了簡單性和效率。結構簡單,僅包含消息類型、版本、序列號、源鏈標識符和有效負載等基本字段。這種精簡的設計降低了複雜性和計算開銷,確保了較低的 gas 成本,同時促進了快速可靠的跨鏈通信。

橋樑安全

在開發橋樑以支持繁忙的生態系統和大量流量時,確定橋樑的信任模型是最重要的設計決策之一。橋樑應該既安全又去中心化。雖然在某些橋樑設計中,這些屬性可能相互矛盾,但開發原生橋樑提供了利用 Sui 的安全性來保護 Sui Bridge 的機會。

通過運行驗證器節點來保護 Sui 的相同節點運營商也管理和維護 Sui Bridge 運行的基礎設施。Sui Bridge 繼承了一個去中心化的節點運營商網絡,這些節點運營商具有很強的運行和保護 Sui 基礎設施的能力。

如上所述,大多數 Sui Bridge 操作都在 Sui 上進行,並將 Sui 視爲橋的控制面板。這得益於 Move 中開發的軟件所繼承的安全性。

橋樑委員會

Sui Bridge 的保護機制與 Sui 的保護機制相同。在測試網階段,委員會由測試網驗證者子集組成。在主網上線後,大多數(如果不是全部)活躍的 Sui 驗證者都將成爲橋委員會的成員。委員會的動態管理將在主網後實施,以便新的驗證者加入。僅允許 Sui 驗證者成爲 Sui Bridge 委員會的成員可確保安全假設、屬性和社會共識得到繼承。

爲了保持高安全性和與其他區塊鏈網絡的兼容性,Sui Bridge 採用橢圓曲線數字簽名算法 (ECDSA) 作爲 Bridge 委員會簽名。通過利用 ECDSA,Sui Bridge 可確保無縫互操作性和安全交易驗證,從而增強系統的完整性和可信度。

簽名驗證

Sui Bridge 採用可恢復的 ECDSA 簽名,允許直接從簽名本身恢復公鑰。此功能簡化了驗證過程,使我們能夠檢索公鑰並確認簽名的真實性和完整性,而無需事先了解公鑰。

只有當簽名的總權重達到或超過預定義閾值時,消息才被視爲有效。此閾值機制可確保需要足夠數量的經過驗證的簽名來驗證消息,從而增強系統的安全性和可靠性。通過實施這種方法,我們可以防範欺詐活動並確保僅處理合法交易。

Move 中的代碼示例:

... let mut message_bytes = SUI_MESSAGE_PREFIX; message_bytes.append(message.serialize_message()); let mut Threshold = 0; while (i < signature_counts) { let pubkey = ecdsa_k1::secp256k1_ecrecover(&signatures[i], &message_bytes, 0); // 檢查重複 // 並確保公鑰是委員會的一部分 assert!(!seen_pub_key.contains(&pubkey), EDuplicatedSignature); assert!(self.members.contains(&pubkey), EInvalidSignature); // 獲取委員會簽名權重並檢查公鑰是委員會的一部分 let member = &self.members[&pubkey]; if (!member.blocklisted) { Threshold = Threshold + member.voting_power; }; seen_pub_key.insert(pubkey); i = i + 1; }; ...

Solidity 中的代碼示例:

函數 verifySignatures(bytes[] memory signatures, BridgeUtils.Message memory message) 外部視圖覆蓋 { uint32 requiredStake = BridgeUtils.requiredStake(message); uint16 approvedStake; address signer; uint256 bitmap; // 檢查每個簽名的有效性並彙總批准權益 for (uint16 i; i < signatures.length; i++) { bytes memory signature = signatures[i]; // 從簽名中恢復簽名者 (bytes32 r, bytes32 s, uint8 v) = splitSignature(signature); (signer,,) = ECDSA.tryRecover(BridgeUtils.computeHash(message), v, r, s); require(!blocklist[signer], "BridgeCommittee: 簽名者被列入黑名單"); require(committeeStake[signer] > 0, "BridgeCommittee: 簽名者沒有權益"); uint8 index = commissionIndex[signer]; uint256 mask = 1 << index; require(bitmap & mask == 0, "BridgeCommittee:提供了重複的簽名"); bitmap |= mask; approvedStake += commissionStake[signer]; } require(approvalStake >= requiredStake, "BridgeCommittee:質押金額不足"); }

構建互操作性

Sui 原生橋不僅提供了在區塊鏈網絡之間轉移資產的安全高效方式,還爲更高級的跨鏈交互奠定了基礎。通過利用其強大的信任模型,結合 ECDSA 實現安全且可驗證的交易,並採用基於委員會的簽名驗證流程,Sui Bridge 確保了高安全性和可靠性,同時仍保持靈活性。

Sui 橋接架構的可擴展性和靈活性使其能夠在未來擴展並與其他區塊鏈網絡集成。隨着生態系統的發展,該橋接將支持更廣泛的資產和功能,例如允許進行獨特跨鏈交互的自定義​​跨鏈消息傳遞。

Sui Bridge 代表着 Sui 互操作性領域向前邁出的重要一步,爲跨鏈資產轉移提供了無縫且高度安全的解決方案。隨着 Sui Bridge 在主網上線,用戶可以期待一個日益強大和多功能的橋樑,既能滿足當前需求,又能預測未來的需求。