Blog

imToken 推出信用卡服務,預先註冊已開啟!

imToken 推出信用卡服務,預先註冊已開啟!

imToken 即將推出一張基於鏈上信用發行的信用卡——imToken Card,旨在無縫連接鏈上數據和日常支付。現在,imToken Card 預註冊已開啟,我們誠摯邀請你成為首批體驗者,享受無需預存的信用額度和低手續費,和我們一同開啟數位旅程的嶄新篇章。 從你的第一個錢包到第一張卡 7 年來 imToken 和用戶共同成長,見證了數位資產領域的蓬勃發展。對許多用戶而言,imToken 不僅是第一個數位錢包,更是探索區塊鏈世界的忠實夥伴。 現在,我們為你推出了基於鏈上信用體系的 imToken Card,這張卡採用Mastercard 標準,只要商家接受Mastercard 信用卡,即可享受 imToken Card 的便利支付服務。 imToken Card 可以用來做什麼 1. 即時獲得信用,即時消費imToken Card 開創了新的模式,提供高達 500 SGD 的信用額度。無需繁瑣的儲值步驟,只需開卡即可享受日常消費、線上購物、服務訂閱等一系列便利體驗。 2. 儲值提限,額度無限擁有數位資產的用戶,只需使用 imToken 充值,即可便捷支付帳單或提升消費限額。搭配 imToken 和 imToken Card,讓你的日常開銷更靈活,購買力更強大。 3. 首年年費減免,享有專屬權益身為卡片持有者,首年零年費,同時尊享 imToken 專屬權益,其中包括 imKey 等產品的折扣。 如何參與 imToken Card 預先註冊 imToken Card 首批限量發行。預先註冊時,使用你最活躍的錢包地址連接,將更有可能透過預先註冊審核。(只限以太坊) <立即預先註冊> 如有疑問,歡迎發送郵件至 [email protected] 與我們聯繫。 imToken 團隊2023.12.25
2024-03-25
探索無界互聯:imToken 的強大連接能力

探索無界互聯:imToken 的強大連接能力

作為一款領先的多鏈錢包,imToken 不僅提供安全可靠的非託管錢包服務,更通過其強大的連接功能,讓用戶能夠在同一個平台上暢遊各類去中心化應用(DApp)並輕松連接其他類型的錢包。 多網絡、跨平台的 DApp 連接 imToken 支持以太坊和所有 EVM 兼容鏈,如 Optimism、Arbitrum、Polygon,無需手動輸入任何參數,在錢包頂部進行一鍵切換或通過 imToken 的 EVM Box 進行快捷添加。借助 imToken 內置的 DApp 瀏覽器,用戶無需離開錢包應用,就能訪問和使用所有這些網絡上的各種去中心化應用。 在主流 Layer2 和 EVM 兼容鏈的錢包首頁,imToken 還提供了「生態應用」入口,匯聚了對應網絡上的熱門 DApp,便於用戶輕松查看和探索體驗。 通過支持 WalletConnect,imToken 實現了跨設備的無縫連接。當用戶在電腦端使用 DApp 時,選擇 imToken 或 WalletConnect 連接錢包,即可從手機端平滑切換至電腦端進行操作。只要所使用的 DApp 具備 WalletConnect 功能,就能無需任何額外許可,輕松與 imToken 連接互動。 在連接 DApp 時,用戶還能夠清晰查看請求連接的網絡名稱,並通過一鍵「授權」操作輕松接入以太坊、Polygon、BSC、Gnosis Chain 等所有網絡。 而面對 DApp 互動中可能存在的惡意簽名行為,imToken 對各種簽名場景及潛在風險點進行了深度優化,我們會標記並封禁存在風險的 DApp,以確保用戶代幣的安全。此外,imToken 錢包首頁設有「授權管理」入口,用戶可以在此查看在各條鏈上的授權詳情,包括授權對象和額度等。如果發現存在風險授權,用戶可以立即取消授權。 這樣的設計為用戶和 DApp 之間安全無縫的互動打開了無窮的可能性,真正實現了無邊界的 Web3 体驗。 安全至上,便利不減的錢包連接 我們深知數字代幣的安全和便捷是用戶最為關注的問題,無論是硬體錢包還是插件錢包,只要它支持通用的 EIP4527 標準,無需任何額外許可,即可使用 imToken 掃碼連接。掃碼連接是一種基於 ERC-4527,通過二維碼在冷錢包(硬體錢包或離線模式的 imToken 錢包)和觀察錢包(插件錢包或在線模式的 imToken 錢包)之間傳輸數據的方法,從而確保冷錢包簽署交易的安全性和便利性。 連接硬體錢包 對於那些尋求最高級別安全性的用戶,imToken 支持連接 imKey 和 Keystone 等硬體錢包。硬體錢包與 imToken 的協同使用為用戶的數字代幣提供了雙重保護。 硬體錢包通過專用的安全芯片離線存儲私鑰,使得私鑰永遠不會接觸到互聯網,從而避免了黑客通過網絡盜取私鑰的可能性。許多硬體錢包支持雙重身份驗證機制,如 PIN 碼和指紋識別等,這進一步增強了對私鑰的保護。 此外,每當使用 imToken 發起交易時,在獲取硬體錢包簽名之前,imToken 會展示所簽署信息的具體內容,讓你直觀掌握交易詳情,減少誤操作和不必要的風險。幫助用戶可以在享受 imToken 用戶友好界面的同時,享受到硬體錢包提供的冷存儲安全保障,真正做到代幣保管與便捷操作的完美結合。 相關閱讀: 如何將 imKey 與 imToken 配對使用? 如何通過 Keystone 使用 imToken? 如何通過 AirGap Vault 使用 imToken? 連接插件錢包 隨著智能設備的快速迭代,利用家中閑置的舊手機下載最新版 imToken,在確保網絡斷開的環境下創建錢包,這樣就輕松獲得了一個私鑰永不聯網的 imToken 冷錢包。接著,將這個冷錢包與 MetaMask、Rabby 等插件錢包相連,以便跟踪冷錢包在鏈上的信息。 以和 MetaMask 錢包連接為例,點開 imToken 錢包的帳戶詳情頁,點擊「連接其他錢包」,imToken 就會顯示一個包含地址信息的二維碼,然後用 MetaMask 掃一掃就能導入這些信息開始跟踪你的錢包。   在進行交易時,插件錢包會將未簽名的交易轉化為二維碼。這時,你只需使用 imToken 冷錢包掃描該二維碼,就會顯示出交易詳情供你確認。如果你對這筆交易無異議並選擇簽署,你的 imToken 冷錢包將為這筆交易進行簽署,並生成一個新的附帶簽名的二維碼。 最後,用插件錢包掃描這個帶有簽名的二維碼,並將包含簽名的交易發送給以太坊網絡。在此過程中,你的私鑰始終保持離線狀態,確保整個過程的安全性。這樣既能享受到私鑰離線存儲的安全性,又能體驗到交易的便利性。 相關閱讀: 如何使用 imToken 冷錢包與 MetaMask 錢包連接? 如何使用 imToken 冷錢包與 Rabby 錢包連接? 最後 imToken 的強大連接能力不僅體現在其對 DApp 生態的無縫集成上,更體現在其對多種類型錢包的廣泛支持和兼容性上。無論你是區塊鏈的新手還是資深玩家,imToken 都提供最適合你的非託管錢包管理方案。
2024-03-26
imToken 2.14.0,輕松連接更多插件&硬體錢包,交易更安全便捷

imToken 2.14.0,輕松連接更多插件&硬體錢包,交易更安全便捷

imToken 2.14.0 引入 ERC-4527 協議,支持通過二維碼連接插件錢包或硬體錢包,實現更安全便捷的交易體驗。同時,imToken 內置 Swap 功能支持 Polygon 網絡兌換,為你提供了更豐富的數字代幣兌換體驗。此次更新還進一步強化了安全風控系統,新增導入 Tron 錢包時的賬戶權限校驗,並提供更詳盡的 imKey 安全使用指引。 本次更新如下👇👇👇 支持連接更多插件&硬體錢包,交易更安全便捷 內建 Swap 功能新增 Polygon 網路兌換 安全風控系統升級 新增導入 Tron 錢包時的賬戶權限校驗 增加 imKey 安全使用指引 支持連接更多插件&硬體錢包,交易更安全便捷 imToken 2.14.0 支持通過二維碼連接插件錢包和硬件錢包,該功能基於 ERC-4527,一種通過二維碼在不同設備間傳輸數據和進行簽名的方法。這為你提供了在不同錢包間靈活操作的可能性,同時確保了交易的安全性和便利性。此次更新主要提供了兩種連接方式: 1. imToken 連接插件錢包 當 imToken 作為冷錢包離線存儲私鑰,並與插件錢包(如 MetaMask)連接時的操作步驟:在 ETH 錢包首頁點擊箭頭,選擇「連接其它錢包」打開二維碼,然後在 MetaMask 選擇「QR-based」進行掃描。 成功連接後,就可以在 MetaMask 中進行轉賬、收款,以及體驗各類 DApp 等操作。這種連接方式實現了私鑰的本地存儲,並且能夠與插件錢包實現無縫連接。 註:將 imToken 作為冷錢包使用時,我們推薦用戶始終將設備保持在離線狀態,即切斷網絡連接。 2. imToken 連接硬體錢包 當 imToken 作為觀察錢包與存儲私鑰的硬體錢包(如 Keystone)連接時的操作步驟:點擊錢包左上角菜單欄進入管理錢包頁面,然後點擊「+」-「連接其他錢包」選擇任一錢包進行連接。 成功連接後,就可以在 imToken 發起轉賬、收款等操作請求,並在硬件錢包中簽名確認交易。對於硬件錢包持有者,將 imToken 作為觀察錢包還可以方便你更便捷訪問各類代幣、體驗更全面的交易安全風控等 imToken 功能。 內置 Swap 功能支持 Polygon 網絡兌換 imToken 內置 Swap 功能支持在 Polygon 網絡進行閃兌,帶來了更豐富的數字代幣兌換體驗。你可以在市場頁面點擊左上角按鈕完成網絡切換,開啟你在 Polygon 網絡的兌換之旅。 此外,為進一步提升在 Ethereum 網絡的兌換安全性,我們還引入了閃兌保護功能,確保你的每一筆交易都不受 MEV 攻擊的影響。 註:目前僅在 Ethereum 上有閃兌保護 強化安全風控系統 新增導入 Tron 錢包時的賬戶權限校驗 imToken 最新版本支持在導入 Tron 錢包時進行賬戶權限的校驗。若檢驗到賬戶權限有所變動,將會暫停導入過程,並提示你確認是否安全,在確保安全後方可繼續導入。如果你想了解更多,可以點擊查看:請警惕 TRX 錢包賬戶權限更改騙局。 增加 imKey 安全使用指引 imToken 2.14.0 將在綁定 imKey 硬件錢包過程中自動檢測該 imKey 的狀態,並根據當前狀態提供安全使用指引,為 imKey 用戶帶來更加貼心且安全的硬件錢包使用體驗,確保你使用 imKey 時能方便、安全地存取和使用數字代幣。 如何下載更新 Android 用戶 新用戶:在 imToken 官網(https://token.im)下載 老用戶:在 App 內即可直接更新 iOS 用戶:需登錄應用商店下載。注:imToken 未上架中國大陸區 App Store。 如果遇到下載問題,可發送「下載」至 [email protected] 獲取最新版 imToken。 最後,還是老提示 升級前請確保各錢包都已備份妥當 不要將私鑰、助記詞或 Keystore 洩露給任何人 了解更多:https://token.im
2024-03-25
以太坊坎昆升級成功! 帶你快速瀏覽 2024 年具有爆發潛力的 Layer2 項目

以太坊坎昆升級成功! 帶你快速瀏覽 2024 年具有爆發潛力的 Layer2 項目

以太坊再一次升級成功! 2024 年 3 月 13 日 13 時 55 分(UTC 時間)【新加坡時間為 3 月 13 日 21 時 55 分】 Dencun 已經在以太坊主網第 269568 個紀元上正式啟動。 這次升級是以太坊實現進一步擴容的關鍵,能夠增加以太坊網路每秒能夠回應的交易量,也將開啟以太坊資料儲存和檢索能力的發展新階段。 imToken 現已支援以太坊上所有的 Layer2 網路和 EVM 相容鏈,Dencun 網路升級完成之後,持有代幣的用戶可以透過 imToken 體驗性價比更高、Gas 費用更便宜的以太坊 Layer2 網路的 代幣交易。 Dencun 升級後的影響 对于持有代币的区块链用户:由于用户在 Layer2 层的交易所支付的交易成本中,有 90% 是由于数据存储造成的,在 Dencun 升级之后,以太坊 Layer2 网络上的代币交易所需的 Gas 费用将显著降低,将降至只有现在的十分之一,甚至更多降幅。​ 据 IntoTheBlock 的统计, Arbitrum 的交易费用将从 $2.02 降至 $0.4;Optimism 的交易费用将从 $1.42 降至 $0.28;Base 的交易费用将从 $0.58 降至 $0.01。 △ 数据来源:DuneDencun 升級對 Layer2 網路交易 Gas 費用的影響 △ 資料來源:I2fees.info,統計於 2023年 12 月 8 日Dencun 升級之後數據為推測 对于区块链开发人员:Dencun 升级之后,需要及时升级客户端,查看本次 Dencun 网络升级中包含的以太坊技术协议,确定这些协议是否会影响相关项目——此次 Dencun 网络升级为以太坊的执行层和共识层都引入了许多令人兴奋的新功能,唯一具有向后兼容性影响的以太坊技术协议是 EIP-6780、EIP-7044 和 EIP-7514。此外,Goerli 测试网将不再能够使用。 对于区块链生态:Dencun 网络升级完成后,以太坊 Layer2 生态因为实现了显著的交易成本降低,将迎来加速发展。在降本的同时,Dencun 升级完成后还将为以太坊 Layer2 网络带来处理数据速度上的增效,或将有机会将交易速度提高 100 倍。这样的发展其实也给 Layer1 公链带来了更激烈的竞争,但对于 Layer2 生态而言,竞争才刚刚正式拉开帷幕,未来将有更多的黑马项目出现。 目前,知名 Layer2 项目 Arbitrum 的总市值体量(TVL) 已经仅次于 Tron 和 BSC 等 Layer1 公链、知名 Layer2 项目 OP Mainnet(原 Optimism) 的总市值体量略低于 Arbitrum,但也已经领先于部分知名公链,比如 Solana 等。 為什麼 Layer2 能夠享受 Dencun 升級帶來的巨大利好? 在 Dencun 升級中實施的所有技術協議中,最重要的一項技術協議是 EIP-4844,這個協議也是推動以太坊 Layer2 生態實現真正降本增效的首要功臣。 一直以來,在 Layer2 生態的運作中,通常使用以太坊主網作為資料可用層(DA 層),這樣可以充分利用主網的安全性和資料完整性,避免 Layer2 上發生的交易遭遇惡意攻擊或篡改。 但是,由於以太坊主網的區塊容量和交易吞吐量有自身的局限,其實在一定程度上難以支撐每秒數據處理量是以太坊主網數十倍的 Layer2 網路交易。 這些矛盾在過去一直存在,也同時導致了在Dencan 升級完成之前,大量Layer2 交易在實際的操作中,常常需要花費大量的時間等待區塊確認,或者為了盡快確認交易而不得不支付更高的Gas 費用。 因此,長期來看,如果 Layer2 只能依靠以太坊主網作為資料可用層,Layer2 的未來發展一定存在著一個顯而易見的瓶頸。 在 Dencun 升級中,EIP-4844 技術協議引入了新的交易類型 Blob。 當有交易進行時,EIP-4844 能夠將交易資料移至一個新的 Blob 中進行暫存。 這個 Blob 的存在,類似於為以太坊主網在外部新增了一個平行的資料儲存通道。 而在實際操作中,Blob 的數據,是由以太坊共識層的節點進行存儲,因此能夠不被執行層的以太坊虛擬機(簡稱EVM)所讀取——正是透過這種數據分離,實現 了幫助以太坊主網承載Layer2 數據的初衷,解決了在Dencun 升級之前,Layer2 網路的交易因需要排隊等待與以太坊主網數據進行驗證確認,因此需要消耗大量Gas 費用和等候時間的難題。 同時,為了減少對主網造成壓力,Blob 的資料會在 18 天之後被刪除。 此外,EIP-4844 技術協定對每個信標區塊增加的儲存空間設定了上限,至多限制在約 0.5 MB 的資料量大小(約 4 個 Blob),但這個上限預計在未來會提高。 可見,Dencun 升級為 Layer 2 解決的核心問題,依舊是資料問題。 在Dencun 升級完成之前,依靠第三方公鏈充當資料可用層的解決方案也受到追捧,最讓人熟知莫過於Celestia 區塊鏈,這條區塊鏈本身可以承載較大的交易量,因此能夠幫助 Layer2 上的交易做驗證,然後把交易狀態批量上傳回以太坊主網,是一種可高度模組化組合的數據可用性解決方案,當下,Cosmos 生態的許多應用鏈都以Celestia 作為數據可用層。 但是,依靠第三方公鏈解決Layer 2 數據容量的解決方案,在短期內肯定不如以太坊主網作為數據可用層能獲得更多的共識或信任,而Dencun 升級實施的EIP-4844 技術協議引入的Blob 暫時存儲,也因此成為了目前Layer2 生態受益更大的方案。 知名 Layer2 網路 2024 年發展展望 Dencun 升級將受益於所有的 Layer2 項目,無論是使用 Optimistic Rolllup 還是 ZK Rollup 開發的 Layer2。 正如在以太坊聯合創始人的博文 The Three Transitions 中所提到:以太坊需要經歷的三個主要技術過渡,分別是向Layer2 的過渡,每個人都轉向Rollup;向錢包安全的過渡,每個人都 使用智慧合約錢包;向隱私過渡,確保保護隱私的資金轉移可行。 在 Dencun 升級完成之後,我們可以繼續緊密關注這些熱門 Layer2 網路的哪些動態? Arbitrum 和Optimism:這是目前區塊鏈世界用戶數量最多、市值累計量(TVL)最大的兩個Layer2 網絡,具有足夠的先發優勢,Dencun 升級之後或將成為新用戶、新資金進入Layer2 領域的 首選網路。 Polygon zkEVM:從公鏈市場轉向擁抱以太坊 Layer2 的 Polygon zkEVM,相比其他 Layer2 專案具有天生的市場動力。 根據2024 年2 月26 日的消息,Polygon zkEVM 主網Beta 測試版升級的10 天時間鎖已啟動,包含Elderberry 提案和升級合約的交易資訊已經在GitHub 和Etherscan 發布,預計將在2024 年3 月上旬 左右在主網上線。 Metis:2021 年已上線,使用 Optimistic Rollup 開發。 2024 年的 Metis 將升級為 Optimistic Rollup 架構與零知識證明(ZK) 結合的 Hybrid Rollup。 目前,Metis 的排序器上線 Holesky 測試網後已於 2024年 1 月 3 日開放了社區測試,還將計劃推出流動質押應用,讓這些社區用戶參與到節點質押,獲得相應的链上协议激励。 Base:2024 年 Base 的發展重點在於加速去中心化,同時提高網路可用性、全面降低網路費用、將 Coinbase 的現有和新用戶、 代幣和產品帶到鏈上等。 Base 在 2024 年路線圖中提及在加強互通性上要實現 OP 鏈之間的通信、持續細化和完善連鎖法則和樂觀 RPGF,致力於建立創新活力的去中心化鏈上經濟生態。
2024-03-18
Ethereum Dencun 硬分叉內容介紹

Ethereum Dencun 硬分叉內容介紹

Dencun 是由 Deneb 及 Cancun 兩個名稱所組成,分別代表 Ethereum 共識層與執行層的硬分叉。Dencun 硬分叉已經在 Goerli、Sepolia 及 Holesky 測試網完成,主網將在 Epoch 269568(約為 2024.3.13 日)進行。 作者:Nic @ imToken Labs 校對:Members at imToken Labs 封面來源:Cancun & Deneb by Midjourney 先備知識: 硬分叉 Ethereum 分為共識層(Consensus Layer)及執行層(Execution Layer) Dencun 內容包含 9 個 EIP,分別是: EIP-1153: Transient storage opcodes(執行層改動) EIP-4788: Beacon block root in the EVM(執行層與共識層改動) EIP-4844: Shard Blob Transactions(執行層與共識層改動) EIP-5656: MCOPY - Memory copying instruction(執行層改動) EIP-6780: SELFDESTRUCT only in same transaction(執行層改動) EIP-7044: Perpetually Valid Signed Voluntary Exits(共識層改動) EIP-7045: Increase Max Attestation Inclusion Slot(共識層改動) EIP-7514: Add Max Epoch Churn Limit(共識層改動) EIP-7516: BLOBBASEFEE opcode(執行層改動) 這篇文章將介紹這幾個 EIP(不包含 4844)的改動與影響,4844 的介紹可以參考: Rollup 的大補帖:Proto-Danksharding(一) Rollup 的大補帖:Proto-Danksharding(二) 接下來介紹與順序會大致區分為「執行層改動相關的 EIP」、「共識層改動相關的 EIP」及「4844 相關的 EIP」。 EIP-1153 執行層改動 EIP-1153: Transient storage opcodes EIP-1153 fan page EIP-1153: Transient storage opcodes 1153 新增兩個 Opcode:TSTORE 與 TLOAD,用來寫入與讀取「暫時的」Storage 資料。它們將可為許多合約開發者省下不少 Gas 成本。 背景 Storage 指的就是智能合約透過 SSTORE 這個 Opcode 將資料寫入到該合約的儲存空間中,資料寫入後是永久存在的,直到合約主動移除該筆資料為止。而「暫時的」這個特質則是相對於「永久存在」,TSTORE 寫入的資料有效期限只有到該筆交易結束為止,該筆交易執行完後 TSTORE 寫入的值就會被丟棄。 運作細節 TSTORE 相比於 SSTORE 便宜非常多,而其有效期限又能橫跨不同合約之間的呼叫(直到交易結束),不像 Memory 雖然便宜但 Memory 裡的值只專屬於每個合約自己,A 合約無法去讀取 B 合約的 Memory。這對許多用途非常有幫助: Reentrancy Lock。目前 Reentrancy Lock 只能用 SSTORE 來模擬,雖然 SSTORE 的規則經過 EIP-2200 後有對 Reentrancy Lock 這樣的用途減輕不少 Gas 成本,但 TSTORE 可以將成本再大幅降低:從 5000 降為 100 使用於單筆交易內的 ERC-20 approve。如果 A 合約和 B 合約進行交互,而 A 合約需要從 B 合約身上轉走 ERC-20,此時 B 合約會先對 A 合約做 approve ERC-20 的動作然後才呼叫 A 合約。因為 ERC-20 的 approve 都是透過 SSTORE 所以成本不低,改成使用 TSTORE 後將能大幅降低成本 透過 CREATE2 部署合約時的部署參數。因為 Constructor 參數會影響 CREATE2 部署的合約地址,所以如果不想被 Constructor 參數影響的話,合約 Constructor 就會設計為去部署者合約的 Storage 讀取參數,例如 Uniswap V3 的 Pool。透過 TSTORE,這樣的模式就能省下許多成本 注意事項 合約開發者在用 TSTORE 改寫自己的 Reentrancy Lock 時,記得還是要在該清空 Lock 時清空,不要想說交易結束後它會自己清空所以可省下清空的 Gas 消耗,否則交易過程中如果有需要再次進入合約的話就有可能因為 Lock 沒解鎖(沒清空)而無法進入 EIP-1153 已經在 Solidity 0.8.24 版中推出,開發者可以提前試用。這裡有開發者實作的 Mutex 範例。仰賴 TSTORE 的 Uniswap V4 也將在 Dencun 後上線 這個 EIP 新增新的 Opcode,所以開發者如果要部署合約到多鏈,要注意是否所有的鏈都有支援最新的 Opcode,否則將導致無法使用 EIP-4788 執行層改動 EIP-4788: Beacon block root in the EVM EIP-4788: Beacon root in EVM EIP-4788 新增一個 BEACON_ROOTS_ADDRESS 合約來讓人讀取共識層區塊的資料,也就是執行層將能讀取到共識層的資料。透過這個合約,Staking 及 Restaking 協議可以在不信任任何第三方的前提下讀取並使用共識層的資料,例如讀取某個驗證者的狀態。 運作細節 使用者或合約可以透過呼叫合約的方式去查詢某個時間點的共識層區塊根(Beacon Block Root)。區塊根如同區塊內容的雜湊值(Beacon Block Hash),是區塊內容透過 SSZ 編碼的方式所得到的 Merkle Tree 的樹根(Merkle Tree Root)。呼叫者將時間戳(timestamp)編碼成 uint256 的值並當作呼叫內容, 合約會以時間戳去 Storage 尋找相對應的共識層區塊根並回傳。 開發者如果要使用共識層的資訊,則他的合約會透過 BEACON_ROOTS_ADDRESS 合約查詢他要讀取的共識層區塊的區塊根,然後再搭配該共識層區塊的資訊(例如某個驗證者的餘額)及 Merkle Proof 來驗證該資訊是否屬於該區塊根。(SSZ 因為將內容都做成 Merkle Tree,所以內容裡任何資訊都可以產生相對應的 Merkle Proof 來驗證該資訊存在於該內容裡。) 使用者提供 Merkle Proof 與共識層區塊的時間戳 Merkle Proof 搭配詢問區塊根來驗證某個時間點的驗證者餘額 不過 BEACON_ROOTS_ADDRESS 合約裡存的共識層區塊根其實是「母」區塊(也就是前一個區塊)的區塊根,而不是和執行層同一個區塊的區塊根。 Block 11001 的時間戳(1234567)對應的是 Block 11000 的區塊根;同樣地,Block 11000 的時間戳(1234555)對應的是 Block 10999 的區塊根 注意事項 BEACON_ROOTS_ADDRESS 合約裡儲存最多 8191 個共識層區塊根,8191 個以前的區塊根會被覆寫。例如假設現在是 Block 18191,則當下能存取到區塊根範圍會是 Block 10000 到 Block 18190 的區塊根。 EIP-5656 執行層改動 EIP-5656: MCOPY - Memory copying instruction EIP-5656 新增一個 MCOPY Opcode,專門用來複製合約執行過程中 Memory 裡儲存的值。合約將可受益於這個 Opcode 節省的 Gas 成本。 合約開發者若要使用 MCOPY Opcode,需要將編譯器版本指定為 0.8.24(或以上)以及 EVM 版本指定為 Cancun: 要使用 MCOPY 需要設定編譯器版本及 EVM 版本 註:0.8.24 版的編譯器只開放透過 Assembly 的方式來使用 MCOPY(mcopy(),link),未來的版本才會自動由編譯器來在需要複製 Memory 的地方套用 MCOPY。 注意事項 這個 EIP 新增新的 Opcode,所以開發者如果要部署合約到多鏈,要注意是否所有的鏈都有支援最新的 Opcode,否則將導致無法使用 EIP-6780 執行層改動 EIP-6780: SELFDESTRUCT only in same transaction EIP-6780: Deactivate SELFDESTRUCT, except where it occurs in the same transaction in which a contract was created EIP-6780 修改了 SELFDESTRUCT Opcode 的行為,為 Verkle Tree 及淘汰 SELFDESTRUCT Opcode 做準備。合約有使用到 SELFDESTRUCT Opcode 的開發者需要特別注意。 背景 SELFDESTRUCT Opcode 目前的行為是:(1) 刪除該合約的代碼及 Storage,並 (2) 將身上的 ETH 全都轉給指定的地址。 一開始設計 SELFDESTRUCT Opcode 搭配 Refund 機制來激勵開發者移除用不到的合約及儲存空間,協助維持 Ethereum 狀態在一個適合的大小。但真的這麼做的人不多,反倒是出現像 Parity Multisig 這樣因為 SELFDESTRUCT 導致數十萬 ETH 凍結的意外,因此 Ethereum 社群希望能逐漸淘汰掉 SELFDESTRUCT Opcode。過去有不少修改或移除 SELFDESTRUCT Opcode 的提案,EIP-6780 是其中一個並且最終被收入進 Dencun 硬分叉中。 註:在 2023 年初的 Shanghai 硬分叉中,EIP-6049 已經正式宣告 SELFDESTRUCT 將會被淘汰。 Verkle Tree 是 Ethereum 社群目前正在積極研究與開發的狀態儲存結構,將用來取代目前的 Merkle Patricia Tree。Verkle Tree 將會讓 Ethereum 狀態的證明大小變得更小,因此也是 Stateless Client 設計中的關鍵。有了 Stateless Client,節點的硬體將會降低,讓更多人可以以更輕量、便宜的硬體來運行節點,提升網路的去中心化程度。 運作細節 在 EIP-6780 後,SELFDESTRUCT Opcode 將會移除 (1) 的行為,只保留 (2)「將身上的 ETH 全都轉給指定的地址」的功能。合約的代碼及 Storage 都將維持不動,除非該合約是在同一筆交易創建然後又進行 SELFDESTRUCT。 所以當 SELFDESTRUCT 被觸發時 如果合約不是在同一筆交易被創建,則合約的代碼及 Storage 都維持不動,但把身上的 ETH 全都轉給指定的地址 如果合約是在同一筆交易被創建,則行為和原本(EIP-6780 以前)一樣:合約的代碼及 Storage 都會被移除,ETH 也會被轉給指定地址 為了 Verkle Tree,必須移除 (1) 的行為 在 Verkle Tree 的設計中,其儲存狀態的方式和 Merkle Patricia Tree 不一樣。Merkle Patricia Tree 儲存狀態可以想像成是兩層(樹中樹)的結構:第一層是所有地址集合成的一棵樹,第二層是每個地址所有 Storage 及合成的一棵樹;而 Verkle Tree 則可以想像是一層、完全打平的結構。因此在 Merkle Patricia Tree 中我們可以很輕鬆定位一個地址的 Storage 並將其移除,但在 Verkle Tree 中則幾乎無法定位一個地址的 Storage,因為所有地址及地址的每個 Storage 值都被打平分散在同一棵樹中,無法輕易知道哪個值是屬於哪個地址的 Storage,所以我們沒辦法在 Verkle Tree 中移除合約代碼及它的所有 Storage。 目前的狀態樹設計(Merkle Patricia Tree)是兩層結構:State Root 對應所有地址集合成的一棵樹,Storage Root 對應一個地址底下所有 Storage 及合成的一棵樹。source: https://fisco-bcos-documentation.readthedocs.io/en/latest/docs/design/storage/mpt.html Verkle Tree 狀態樹則是一層、完全打平的樹,圖中紅色節點是地址,綠色節點是該地址的 Storage 值。source: https://youtu.be/s7fm6Zz_G0I?t=572 如果我們只移除紅色節點但沒移除 Storage(綠色節點們),則要是合約重新部署至同一個地址,它就會直接繼承舊的、沒有被刪除的 Storage,這會成為潛在的高風險漏洞。source: https://youtu.be/s7fm6Zz_G0I?t=572 所以為了迎接 Verkle Tree,我們勢必得禁止 SELFDESTRUCT Opcode 可以移除合約代碼及 Storage 的行為。 注意事項 如果開發者使用 CREATE2 + SELFDESTRUCT 來重複部署到同一個地址,在 Dencun 後這將只會在同一筆交易內同時發生才能完成 如果開發者使用 CREATE2 + SELFDESTRUCT 來達成合約升級的效用(因此 CREATE2 + SELFDESTRUCT 不會是在同一筆交易完成),在 Dencun 後將無法繼續,請改用一般不會 SELFDESTRUCT 的升級模式 EIP-7044 共識層改動 EIP-7044: Perpetually Valid Signed Voluntary Exits EIP-7044: Perpetually Valid Signed Voluntary Exits EIP-7044 讓驗證者用來退出 PoS 的簽章變為永久有效,避免簽章因為網路硬分叉而導致無效。委託給非託管質押服務(例如 Lido)的驗證者們的使用體驗與保障將可以提昇:不必每次硬分叉就要請第三方重新簽名。 背景 Ethereum PoS 的驗證者需要有兩把私鑰:一把用於日常參與驗證(例如產區塊並簽名),稱作 Validator Key;另一把則是在退出 PoS 時領回質押資產及手續費的地址的私鑰,稱作 Withdrawal Key。當驗證者要退出 PoS 時,他會用 Validator Key 簽名,簽名的內容包含當前的網路(硬分叉)版本。 在目前的非託管質押服務中,服務提供商手上會握有 Validator Key,使用者則是握有 Withdrawal Key,因此服務提供商只能執行日常的驗證相關的工作內容,不能領走使用者的質押資產及手續費,達到非託管的目的。而為了避免服務提供商以「不退出 PoS」來威脅敲詐使用者,服務提供商在一開始就會先簽好退出 PoS 證明並將此證明交給使用者,如此使用者就隨時都可以選擇退出 PoS,不受服務提供商影響。 運作細節 但因為退出 PoS 的簽名內容包含當前網路(硬分叉)版本,例如當前的 Shanghai 或前一版的 Capella。而網路會比對「退出證明裡的硬分叉版本」和「網路當前的版本」,如果版本差異在兩個版本以上就會視為無效。也就是說隨著網路不斷更新,進行硬分叉、升級到新版本後,太舊的退出證明就會無效。 例如目前共識層的硬分叉版本從舊到新分別是 Altair、Bellatrix 及(目前的)Capella。那在 Altair 那時簽的退出證明在現在就會變成無效;如果接下來更新至下一個版本 Deneb,那在 Altair、Bellatrix 那時簽的退出證明就會變成無效。為了應付這種狀況,使用者每次硬分叉時就要向服務提供商重新索取一次退出證明,如果使用者沒有提前拿到退出證明,那硬分叉後服務提供商就可能可以以「不退出 PoS」威脅敲詐使用者。 註:不過因為「退出 PoS」是在 Capella 之後才開放,所以可能沒有什麼人提前在 Altair 或 Bellatrix 就簽退出證明。 所以 EIP-7044 將退出證明裡的硬分叉版本固定在 Capella,如此在當前這個版本所簽的所有退出證明都將永久有效。而未來不管更新幾次,退出證明裡也都是簽 Capella,不會再受硬分叉版本所影響。 注意事項 因為退出證明的硬分叉版本已經固定在 Capella,所以如果有驗證者或服務提供商提前就簽了 Deneb 版的退出證明,在 Deneb 後反而會變成無效 EIP-7045 共識層改動 EIP-7045: Increase max attestation inclusion slot EIP-7045: Increase max attestation inclusion slot EIP-7045 延長驗證者們的投票(Attestation)有效期,讓投票有更充足的時間能被收入,增加網路的穩定性。對一般使用者或驗證者無影響。 背景 原本驗證者的投票(Attestation)有一個 Epoch(32 個 Slot)的時間可以被收入,例如假設驗證者 Alice 被分派在 Slot 10000 進行投票,而她因為網路延遲問題可能到了 Slot 10010 才完成投票或到了 Slot 10020 投票才成功廣播到 p2p 網路中,但她的投票都還是會被收入。不過如果她的投票到 10033 Slot 才出現,那就沒辦法收錄她的投票,視同沒有投票。 運作細節 EIP-7045 將投票收錄的有效期限延長至最晚「投票的下一個 Epoch 結束前」都有效。例如假設驗證者 Alice 被分派在 Epoch 100 的 Slot 3205 進行投票,在 EIP-7045 之前,她的投票有效期限最晚是到 Slot 3237 (3237 = 3205 + 32);在 EIP-7045 之後,她的投票最晚到 Epoch 101 結束前(也就是 Slot 3263)都可以被收錄。 註:Epoch 0 包含的 Slot 是 0 到 31;Epoch 100 包含的 Slot 是 3200 到 3231;Epoch 101 包含的 Slot 是 3232 到 3263。 EIP-7514 共識層改動 EIP-7514: Add Max Epoch Churn Limit EIP-7514: Add max epoch churn limit 背景 從 2023 年上海升級開放驗證者退出 PoS 後,反倒吸引更多使用者加入成為驗證者,導致驗證者等待序列(Entry Queue)總是處於爆滿狀態,總驗證者數量也不斷高速上升。 Entry Queue 從開放退出 PoS 後反而激增。source: https://www.validatorqueue.com/ 如果驗證者等待序列持續維持滿載的狀態,則從 2023 年 9 月(EIP 提出時)到 2024 年 5 月,約八個月的時間,就會有 50% 的 ETH 都將質押進 PoS;到了 2024 年 9 月就會有 75% ETH 質押。這麼多 ETH 質押有幾個缺點,例如驗證者數量太多,造成驗證者投票及聚合簽章數量太多,增加驗證者 p2p 網路的負擔及共識鏈的狀態膨脹。另外也有人覺得 Ethereum 所需要的安全性並不需要這麼多 ETH 質押,多質押的 ETH 從安全性的角度是浪費。 而為什麼會持續有這麼多 ETH 湧入呢?因為即便到了 100% ETH 都質押,年化率仍然有約 1.6%,而且 Liquid Staking Token(LST)的出現近一步的提高資本利用效率,再加上 MEV 的收益,種種因素都讓質押變成一個非常吸引人的選項。 所幸質押熱潮在 2023 年下半年逐漸退去,減緩了驗證者數量成長的速度。 2023 年下半年驗證者數量成長放緩,在 2024 年 2 月時約有 25% 左右 ETH 質押。source: https://www.validatorqueue.com/ 運作細節 原本 Entry Queue 的數量上限是隨著當前驗證者人數而變動,每增加或減少 65536 個驗證者,Entry Queue 的數量上限就會增加或減少 1。2024 年 2 月的 Entry Queue 數量上限是 14 個(當前驗證者數量約為 95 萬)。 EIP-7514 會將 Entry Queue 數量上限固定在 8,不再隨著當前驗證者人數增加而提高,藉此減緩驗證者數量成長的速度,讓社群有更多時間能想出長期的解法,例如下一個硬分叉可能會收入的 EIP-7251。 EIP-4844 與 EIP-7516 EIP-4844: Shard Blob Transactions Rollup 的大補帖:Proto-Danksharding(一) Rollup 的大補帖:Proto-Danksharding(二) EIP-4844 新增新的交易種類,一個專門用來放 Blob 資料的交易。透過將資料放在 Blob 裡,Rollup 將可以進一步降低交易手續費。 EIP-4844 並非作為進行擴容升級的改動,而更像是「提升區塊 Gas Limit」並「降低成本」,讓區塊可以放入更多(Rollup)交易的一種提升交易量的改動。但 EIP-4844 同時也是為真正的擴容方案 – Danksharding 在進行鋪路。 另外 Blob 交易會和一般交易會是分開獨立的手續費市場,各自有各自的 Base Fee 及 Priority Fee,所以 EIP-7516 為 Blob 交易的手續費市場新增一個 BLOBBASEFEE Opcode(作用等同於一般交易的 BASEFEE Opcode),讓 Rollup 合約可以透過這個 Opcode 得知該 Blob 的 Base Fee 是多少。 總結與重點 Dencun 硬分叉由共識層的 Deneb 硬分叉及執行層的 Cancun 硬分叉所組成 本次升級的主角是 EIP-4844,引入 Blob 交易格式讓 Rollup 能進一步降低交易成本,並同時為 Danksharding 鋪路 共識層的改動包含 EIP-7044、EIP-7045 與 EIP-7514 EIP-7044 讓使用非託管質押服務的驗證者在選擇退出 PoS 時能不受未來硬分叉所影響 EIP-7045 及 EIP-7514 可視為增加 PoS 網路穩定性的更新 執行層改動包含 EIP-1153、EIP-4788、EIP-5656、EIP-6780 與 EIP-7516 EIP-1153 讓許多合約設計模式上能節省不少 Gas;EIP-5656 也是讓 Gas 成本能稍微降低 EIP-4788 讓執行層能以不需信任第三方的方式讀取到共識層的資訊,開啟更多質押相關服務的可能性 EIP-6780 則是進一步淘汰 SELFDESTRUCT,拿掉它「移除合約代碼及狀態」的能力 開發者需要注意使用 EIP-1153 時不要仰賴「暫時 Storage 在交易後會被清空」的假設,以及如果有使用到 SELFDESTRUCT,務必留意自己的合約會不會受影響 一般使用者不需特別留意,只要等到 Rollup 採用 Blob 交易後就能享受到更低的交易成本 參考資料與推薦延伸閱讀 EIP-1153 EIP-1153: Transient storage opcodes EIP-1153 fan page EIP-1153: Transient storage opcodes Transient storage - The future roadblock of the Ethereum’s AA landscape - HackMD EIP-4788 EIP-4788: Beacon block root in the EVM EIP-4788: Beacon root in EVM EIP-5656 EIP-5656: MCOPY - Memory copying instruction EIP-6780 EIP-6780: SELFDESTRUCT only in same transaction EIP-6780: Deactivate SELFDESTRUCT, except where it occurs in the same transaction in which a contract was created PEEPanEIP #115: EIP-6780-SELFDESTRUCT only in same transaction with Guillaume Ballet #SELFDESTRUCT EIP-7044 EIP-7044: Perpetually Valid Signed Voluntary Exits EIP-7044: Perpetually Valid Signed Voluntary Exits EIP-7514 EIP-7514: Add Max Epoch Churn Limit EIP-7514: Add max epoch churn limit EIP-4844 & EIP-7516 EIP-4844: Shard Blob Transactions Rollup 的大補帖:Proto-Danksharding(一) Rollup 的大補帖:Proto-Danksharding(二) EIP-7516: BLOBBASEFEE instruction EIP 7516 - BLOBBASEFEE Opcode
2024-03-20
imToken 2024 新年紅包活動

imToken 2024 新年紅包活動

你好,imToken 的朋友們  新年快樂! 我們將於2月9日晚上8點,聯合 imKey、Tokenlon、Feee.io,Orbiter、GMX、Galxe、PoolTogether、Lido、DODO、Dopex 計畫方共同在 imToken App 內舉辦幸運拆紅包活動,感謝您和我們一起走過 2023。 📅紅包時間:02/09 20:00~02/14 23:59 SGT 玩法介紹: 不需要做任何任務,打開 imToken App 即可參加 紅包隨機,這是一個講究運氣的活動,抽到什麼全憑手氣~ 活動將在 Arbitrum 網路上進行,請確保您在 Arbitrum 網路上有少量的 ETH 作為礦工費 Twitter 附加活動: 在X(Twitter)關注/轉發imToken活動推文,並在評論區分享你抽到的“好運” 我們抽出中隨機抽出一名用戶獎勵imKey Pro(價值99.99 USD) imToken X(Twitter):https://twitter.com/imTokenOfficial 感謝你一直以來的支持,祝你在紅包活動中好運! 此紅包活動僅供娛樂,不構成投資建議
2024-02-20
波場網 0 手續費轉賬,每日限量 500 個名額!

波場網 0 手續費轉賬,每日限量 500 個名額!

Hello imToken 的朋友們🎉, 現在透過 imToken 在 Feee.io 參與能量租賃,即可享有 0 手續費轉帳。每日限量 500 個名額,先到先得!超過 500 個名額後,能量租賃費用將調整為 3.76 TRX(最高可節省 89% 轉帳費用)。 🚗 活動路徑:在 imToken App 內切換到 TRON 錢包,在功能列左滑找到「能量租賃」入口進入 Feee.io,點擊「領取能量」即可參與活動。 ⏰ 活動時間:2024/01/18 14:30 - 02/18 23:59(SGT) 💪🏻 活動說明 每個錢包地址每天最多領取一次 TRON 每日補貼,有效時間為 10 分鐘。 在有效時間內轉帳可免手續費,超時將回收能量補貼。 根據 TRON 轉帳機制,如果 TRON 收款地址中沒有 USDT,在領取補貼後,只能享有 5 折手續費優惠哦。 每個錢包地址每月最多可領取 15 次。 僅限在 imToken App 內領取,其他錢包 App 無法參與此活動。 👉 查看詳細教程,以了解能量租賃操作步驟。 如果對活動有任何問題,請在 imToken App 內「協助與回饋」與我們聯繫。
2024-03-27
imToken 2023 年度報告

imToken 2023 年度報告

2023 年,加密市場經歷了無數變化。 從年初的矽谷銀行破產引發的穩定幣USDC 脫錨黑天鵝事件,DeFi、NFT 等話題沉寂,以及直到年底,比特幣ETF 和以銘文、DePIN 為代表的話題重新拉動區塊鏈生態發展的新敘事 。 起起伏伏,混沌是業界全年縮影。 在新舊敘事交織的背景下,imToken 和所有持續深耕的建造者一樣,撥開迷霧,找準方向。 imToken 致力於幫助所有人平等和自由地享受有意義的數位生活,其核心是用戶和區塊鏈的連結。 加密用戶需要藉助錢包連接網路、體驗 DApp、操作代幣,更多更好的連結即成為 imToken 的 2023 主題。 安全至上,便利不減的錢包連接 imToken 拓展了連接其他類型錢包的能力,兼顧安全和便利。 連接插件錢包:將 imToken 用作冷錢包,並與 MetaMask、Rabby 等插件錢包連接,即可在確保私鑰安全離線儲存的同時,在桌面端便捷使用 DApp。 連接硬體錢包:支援 Keystone、imKey 等硬體錢包與 imToken 的協同使用為代幣提供雙重保護,使代幣操作更加便捷,兌換更加流暢。 暢連數位場景,支援更多 DApp 和網絡 imToken 新增支援了 zkSync Era、Base、Linea、PlatON、Scroll、opBNB、Mantle、X1、Taiko、Metis  等 Layer2 和 EVM 熱門網路。 同時主流 DeFi DApp,如  Lido、Rocket Pool、PoolTogether、DODO 支援 imToken 登入入口,方便使用者使用體驗,增強簽署流程的安全防護,讓使用者能夠安全便捷地連接和體驗更多有趣應用程式。 安全連接,確保代幣無憂 imToken 推出全新簽名體驗,所見即所簽,同時全面升級安全風控系統,累計避免了 4614 次代幣受損事件。 同時,我們揭示了 18 種新典型騙局,持續打擊了 1w+ 假應用程式 & 假官網騙局。 連結社區,傾聽使用者需求 imToken 七週年之際,我們從社群廣泛收集了產品需求建議,和用戶共同打造安全好用的皮夾產品。 從 8 萬人次投票中精選需求,透過 1 個月的產品打磨,實現了 7 個優先需求,交付了 7 個產品功能。 在過去的一年裡,我們舉辦了 24 場 Meetup 和 AMA,涵蓋了 Layer2、以太坊升級、Staking、NFT、DEX 等多個領域,和用戶共享前沿話題。 連結產業,協助生態建設 在香港Web3 大會、新加坡TOKEN2049 、馬來西亞以太坊Meetup(ETHKL)等重要行業活動中,我們與區塊鏈愛好者交流,分享行業洞察,討論和探索了下一代Web3 錢包交互和產品框架、MEV、穩定 幣、加密支付等重要主題。 2024,探索更多連接可能 imToken 將嘗試探索全新的錢包使用體驗,為加密用戶帶來更低門檻的錢包產品。 同時,imToken Card 即將推出,它將無縫連接鏈上信用和日常支付,期待和你共同探索鏈上信用。 關注我們 官網:https://token.im X(推特):https://twitter.com/imTokenOfficial Discord:https://discord.com/invite/imToken 官方信箱:[email protected]
2024-02-22
L2 交易確認收入的不同階段

L2 交易確認收入的不同階段

L2 交易確認收入的不同階段 什麼時候可以確信一筆 L2 交易會被收入進區塊中?什麼時候可以確信一筆被收入的 L2 交易不會因為 Re-org 而被丟棄? 這篇文章將會介紹一筆 L2 交易的生命週期,以及在週期裡各個階段的安全假設與可靠程度。 作者:Nic @ imToken Labs 校對:Members at imToken Labs 封面來源:Dylan Ferreira on Unsplash 先備知識: 一筆 L1 交易的生命週期 Re-org 發生的原因及影響 知道 Ethereum 目前 PBS 架構中的角色及運作方式 知道 Optimistic Rollup 與 Validity (ZK) Rollup 的不同 首先我們會先複習 L1 的交易生命週期,接著再進入主題 – L2 交易的生命週期及確認收入的可靠程度。 L1 交易 生命週期 使用者產出交易並簽名後,就會發送到 p2p 網路當中,並等待礦工(PoW)或 Proposer(PoS)將他的交易收入到區塊中。當使用者發現他的交易被收入到最新一個區塊中時,他還不能百分之百確認交易一定會寫入該條區塊鏈的歷史中,這是因為區塊鏈會發生 Re-org 的情況,他必須要等到那個區塊發生 Re-org 的機率夠低才能確信交易會被寫入歷史中。 生命週期: 交易收入區塊後還是有可能發生 Re-org,必須要等到 Re-org 不太可能發生才能確信交易已經被 Finalized Re-org 的機率和成本會因為一條鏈的共識算法與代幣的市值而不同,在這裡不會展開介紹 Re-org 成本的計算方式。 L2 交易 生命週期 L2 使用者產出交易並簽名後,通常會直接送給負責排序交易的 Sequencer,由 Sequencer 將他的交易收入到 L2 區塊中。接著當 Sequencer 將 L2 區塊資料透過一筆 L1 交易寫回 L1 上時,使用者就可以看到自己的交易被包含在最新一個 L2 區塊中。而要注意的是,因為 L2 區塊資料是透過 L1 交易上傳到 L1 上,所以還是有可能會碰到 L1 發生 Re-org 的情況導致該 L2 區塊最終沒有被寫進歷史中,也就是等同於 L2 Re-org,因此使用者還是要等 L1 Re-org 發生機率夠低才能確信他的交易會被寫入歷史中。 生命週期: 使用者先等待交易被收入 L2 區塊中,再等待 L2 區塊透過一筆 L1 交易上傳到 L1,最後再等待 L1 交易被 Finalized 雖然和 L1 交易相比,L2 交易多了一段等待 L2 交易被 Sequencer 收進 L2 區塊的時間,但其實在 L2 區塊容量夠大、出塊速度夠快的情況下,這並不會耗費多少時間。主要的等待時間都會是花在 L1 交易確認收入上,所以使用體驗是差不多的。 但如果使用者願意做一些犧牲的話,是否可以換得更好的體驗? Pre-Confirmation/Fast Confirmation/Soft Confirmation 使用者應該要親眼看到(包含他 L2 交易的)L2 區塊被收進 L1 區塊裡,甚至等到 Re-org 機率足夠低的時候才相信他的 L2 交易已經被收入。但如果他願意相信 Sequencer 呢?可能 Sequencer 是由 L2 的開發團隊運營、由一個名聲顯著的機構來運營,如果 Sequencer 在收到使用者交易時就向使用者保證他的交易會馬上被收入、會在第 X 個區塊被收入,那對願意相信 Sequencer 的使用者來說,這個保證其實足夠了。就像一個使用者如果相信他在使用的錢包,他不會在錢包告訴他交易已經被收入後,還疑神疑鬼地到 Etherscan 去反覆檢查。 而這個 Sequencer 提供的交易收入保證會被稱做 Pre-Confirmation、Fast Confirmation 或 Soft Confirmation,可以理解為提前的、軟性的交易收入保證。它不需要等到 L2 交易被收入到 L1 區塊,但它只是 Sequencer 給的口頭承諾,Sequencer 可能因為 Bug 導致它忘記原本的承諾或是惡意的 Sequencer 會直接違反承諾,輕則浪費使用者時間,重則被雙花攻擊。 接下來會介紹幾個不同 L2 的交易收入狀態的呈現方式。 Arbitrum/Optimism 的交易收入狀態 目前在 Arbitrum 或 Optimism 上送出交易後,幾乎都能馬上獲得交易的收據(Transaction Receipt),裡面會是交易執行的結果。這表示 Sequencer 已經在它本地端將交易排序好並模擬執行過一次了,這個交易收據就是給使用者的 Pre-Confirmation。 關於 Arbitrum 更詳細的交易生命週期介紹可以參考官方文件。 關於 Optimism 更詳細的交易生命週期介紹可以參考官方文件。 在 Arbitrum 上檢查交易收入狀態 在 Arbitrum Explorer 上看到的交易會包含 Pre-Confirmation 的交易,也就是還未上傳到 L1 的交易,像是下面截圖中的這一筆交易,可以看到 Block Number 145353000 旁邊有一個 Confirmed by Sequencer 標示: 只有被 Sequencer 確認但還未上傳到 L1 的交易 如果是像下面這一筆已經被上傳到 L1 的交易,它的狀態已經變成 69 L1 Block Confirmations,代表的是它已經被上傳到 L1 且包含這筆交易資料的 L1 區塊已經有 69 個區塊接在它後面了: 包含這筆交易資料的 L1 區塊已經有 69 個區塊接在它後面,越多區塊接在它後面表示越安全 或像是這筆交易,包含這筆交易資料的 L1 區塊已經有 6174 個區塊接在它後面了,已經非常安全。 但其實這邊可以做得更好的地方是結合 L1 的 Finality 資訊來呈現。單純告訴使用者有多少個 L1 Block Confirmation 的幫助有限,使用者還要自己去理解和計算這樣數量的 Block Confirmation 代表的安全程度是多少,而既然 L1(也就是 Ethereum)都已經有 Casper FFG 這樣的 Finality 機制了,Explorer 其實可以直接顯示該 L1 區塊目前在 L1 是否已經被 Finalized。而 Optimism 的 Explorer 就做到了這一點。 在 Optimism 上檢查交易收入狀態 在 Optimism Explorer 上看到的交易也會包含 Pre-Confirmation 的交易,也就是還未上傳到 L1 的交易,像是下面截圖中的這一筆交易,可以看到 Block Number 111526300 旁邊有一個 Confirmed by Sequencer 標示: 只有被 Sequencer 確認但還未上傳到 L1 的交易 不過目前該 Explorer 似乎沒有明確規範 Confirmed by Sequencer的含義,它說「Sequencer confirmations are equivalent to a few block confirmations on L1.」,表示 Confirmed by Sequencer 代表的是已上傳到 L1 且已經有數個區塊接在後面了: 但其實最新出現的交易一樣也都是顯示為 Confirmed by Sequencer,甚至數十天以前,都已經過了挑戰期的交易的狀態還是 Confirmed by Sequencer: 數十天前的交易狀態還是停留在「Confirmed by Sequencer」 註:也有可能是該 Explorer 將不同狀態標示在不同地方:Block Number 後面的 Confirmed By Sequencer 是告訴使用者這個區塊有被 Sequencer 確認,至於上傳到 L1 後的狀態使用者要自己再透過其他資訊來確認,例如下面馬上會提到的「L1 State Batch」資訊。 另外像是下面這一筆已經被上傳到 L1 的交易,它多了兩個資訊:「L1 State Batch Index」 與「L1 State Root Submission Tx Hash」。這兩個資訊所代表的就是這筆 L2 交易被包含在哪個 State Batch 裡,以及這個 State Batch 是透過哪一筆 L1 交易上傳到 L1 的: 點進 3480 這個 State Batch,可以看到它的狀態是 Finalized,這個 Finalized 對應到的是 L1(也就是 Ethereum)的 Finalized 狀態,是順利累積兩個 Epoch 驗證者們投票的、非常安全的狀態。 State Batch 3480 在 L1 Block 18457449 被收入,而 Block 18457449 已經被 Finalized,來源:https://etherscan.io/block/18457449 如果是上傳了但還未在 L1 被 Finalized 的 Batch 的話,就會顯示為 Unfinalized: State Batch 3494 雖然被上傳到 L1 了,但收入該 Batch 的 L1 Block 還未被 Finalized 相較於 Arbitrum Explorer,Optimism Explorer 為交易提供了更多的資訊(State Batch),且它會直接將 L1 Finality 資訊串接到 L2 Explorer 上,直接讓使用者知道 L1 區塊是否已經被 Finalized,而不是自己去判斷 Block Confirmation 數量所對應的安全程度。 StarkNet 的交易收入狀態 目前在 StarkNet 上送出交易後,雖然可以很快就查詢到交易的收據,但通常收據裡顯示的交易狀態會是 RECEIVED 的狀態,代表的是節點已經收到交易且交易經過驗證後沒有問題,會等待被 Sequencer 收入 L2 區塊並執行,而在 RECEIVED 狀態的交易還不會有任何交易執行的結果。使用者可以透過 StarkNet Explorer 上顯示的交易狀態來得知自己交易的處理進度。 註:如果 Sequencer 處理得夠快,那就有可能直接跳過 RECEIVED 狀態,進到交易已經被處理的狀態。 關於 StarkNet 更詳細的交易生命週期介紹可以參考官方文件。 在 Starkscan 這個 StarkNet Explorer 上看到的交易也會包含 Pre-Confirmation 的交易,像是下面截圖中的這一筆交易,可以看到 Status 目前是 Accepted on L2,表示已經被 Sequencer 排進 L2 區塊裡: 「Accepted on L2」表示已經被 Sequencer 排進 L2 區塊裡,但還沒有上傳到 L1 Accepted on L2 前面兩個狀態分別是 Received 與 Pending,代表「交易被收到且驗證通過」與「交易正在被 Sequencer 處理中」,交易處理執行完後就會進到 Accepted on L2 的狀態: 交易被收到且驗證通過 交易正在被 Sequencer 處理中 等到交易資料被上傳到 L1 後,狀態才會變成 Accepted on L1,像是下面這筆交易: 交易資料已經被上傳到 L1 雖然 StarkNet 的交易有更豐富的狀態讓使用者知道交易的處理進度,但交易被上傳到 L1 的時間可能要四五個小時(可能是因為產生零知識證明會需要比較久的時間),等於這段時間使用者都是仰賴 Sequencer 的 Pre-Confirmation。另外 Explorer 針對上傳到 L1 的交易也只有顯示 Accepted on L1,沒有搭配 L1 的 Finality 或 Block Confirmation 的資訊,等於使用者要自己去查 L1 區塊是否有足夠多的區塊接在後面或是是否已被 Finalized。整體來說因為 StarkNet 本身效能瓶頸讓使用者需要仰賴 Pre-Confirmation 很長一段時間,以及 Explorer 沒有支援 L1 Finality 資訊,導致 StarkNet 交易收入確認的使用體驗不太好,這是未來 StarkNet 得改進的地方。 zkSync 的交易收入狀態 和 StakrNet 相似,zkSync 也有 PENDING 的狀態,代表的是節點已經收到交易且交易經過驗證後沒有問題,會等待被 Sequencer 收入 L2 區塊並執行,而在 PENDING 狀態的交易還不會有任何交易執行的結果。使用者可以透過 zkSync Explorer 上顯示的交易狀態來得知自己交易的處理進度。 註:如果 Sequencer 處理得夠快,那就有可能直接跳過 PENDING 狀態,進到交易已經被處理的狀態。 關於 zkSync 更詳細的交易生命週期介紹可以參考官方文件。 在 zkSync Explorer 上看到的交易也會包含 Pre-Confirmation 的交易,像是下面截圖中的這一筆交易,可以看到 Status 目前是 zkSync Era Processed,表示已經被 Sequencer 排進 L2 區塊裡: 這筆交易已經被 Sequencer 排進 L2 區塊,目前正等待被上傳至 L1(Ethereum Sending) 當 Sequencer 製作完 L2 區塊後,接著該區塊及裡面的交易會依序經過 Committed、Proven 與 Executed 三個階段,分別表示「區塊被上傳至 L1」、「區塊有效性已被證明」與「區塊內交易執行完後的 L2 狀態被更新到 L1」。以下分別展示三個處於不同階段的區塊與交易: Batch 292700 已經被上傳至 L1,進入 Committed 階段。來源:https://explorer.zksync.io/batch/292700 Batch 292700 裡面的交易目前狀態,從 Ethereum Sending 變成 Ethereum Validating ,表示等待被零知識證明驗證其有效性 箭頭移到 Ethereum Validating 圖示上還會顯示不同階段,前一階段(Sending)的交易連結也會附上: 這筆交易進入「Validating」階段,前一階段(Sending)上傳 Batch 到 L1 的交易連結在這裡也可以直接看到,相當完整 Batch 292000 的有效性已經被證明,所以進入 Proven 階段: Batch 被證明後進入 Proven 狀態,並附上執行 Prove 動作的交易連結 裡面的交易也會從「Validating」進入到「Executing」階段,也就是等待被執行 當 Batch 被證明後,接著會進入一段等待時間(官方文件說是 21 小時左右),然後才會執行裡面的交易並更新 L1 上紀錄的 L2 狀態。這主要是因為目前還在 Alpha 階段所加上的一個保護措施,確保有任何 Bug 出現時能有充足時間反應。當 Batch 被執行後,就會進入最終的 Executed 階段: Batch 被執行後進入最終的 Executed 狀態,並附上執行 Execute 動作的交易連結 Batch 裡面的交易狀態也更新為「Executed」 相比於 StarkNet 交易從 L2 到 L1 是在一步驟內完成,zkSync 將交易從 L2 到 L1 的過程拆成更細的三個階段:Committed → Proven → Executed。雖然因為保護措施的關係,整個過程拉長到約一天左右才會完成,但 Committed 狀態讓使用者可以很快就知道自己的交易是否已經被收入(交易進入 Committed 後就不再只是 Pre-Confirmation),而不需持續仰賴對 Sequencer 的信任。 而且 zkSync Explorer 針對不同階段都有提供豐富完整的顯示,讓任何人透過 Explorer 就能夠掌握交易最新狀態,甚至能夠親自去驗證每一個階段轉換(例如從 Committed 到 Proven、從 Proven 到 Executed)的交易執行。 但要注意的是目前 zkSync Sequencer 是有權利可以修改歷史紀錄的,主要也是作為 Alpha 階段的保護措施。這表示即便交易可以很快脫離 Pre-Confirmation,進入 Committed 階段,但其實到交易進入 Executed 階段之前,Sequencer 都還是可以從歷史紀錄中移除使用者交易的,所以實際上使用者還是得相信 Sequencer 長達一天的時間。 L1 也可以支援 Pre-Confirmation 如果可以提前知道誰是負責產出區塊的人,那 L1 也可以支援 Pre-Confirmation。以 Ethereum 為例,目前實際產出區塊的人是 Builder,Builder 就可以提供 Pre-Confirmation 的服務,給使用者一個交易收入保證。但因為 Builder 並非一定能獲得某個產出某個區塊的權利,而是必須去競標每個區塊產出的權利,因此這個 Pre-Confirmation 的效力就會比較差,而且還要看那個 Builder 的實力,如果它競爭力不夠強那就很難獲得產出區塊的權利,那它所提供的 Pre-Confirmation 服務就會大打折扣。 比較好的辦法是讓 Proposer 來提供 Pre-Confirmation 服務,因為「第幾個區塊由哪一個 Proposer 來提出」是預先算好、非常肯定的。但因為目前的 PBS 架構中,Proposer 只是提出區塊的角色,實際製作區塊、決定區塊內容的角色是 Builder,所以 Proposer 沒辦法直接在區塊塞入某筆交易或是要求 Builder 塞入某筆交易。等到未來 PBS 架構改變,例如加入 Inclusion List 或是允許 Proposer 能參與區塊製作,那 Proposer 就有機會提供 Pre-Confirmation 的服務。 註:更多關於 PBS 的介紹可以參考這一篇。 改善 Pre-Confirmation Pre-Confirmation 只是 Builder 或 L2 Sequencer 的口頭承諾,對方沒有履行承諾的義務、不履行也沒有懲罰機制。是否可以讓這個承諾更有保證呢?其實是可以的,因為負責產出區塊的人及承諾的內容(例如「在第 1350000 區塊收入這筆交易」)都是可以寫成條件檢查的。因此我們可以藉由智能合約來規範 Builder 或 Sequencer,請它們提供 Pre-Confirmation 服務時順便在智能合約內抵押押金,並且在給出交易收入的承諾時要對內容簽名,當使用者發現 Builder 或 Sequencer 沒有履行承諾時便可將承諾內容及對方的簽名送至智能合約,智能合約便可以檢查承諾是否有被履行(例如「在第 1350000 區塊收入這筆交易」)。 雖然還在概念驗證階段,但下面這個演講是其中一個例子: https://www.youtube.com/watch?v=Uw5HxSYXwYo 總結 L1 交易被收入進 L1 區塊後,發生 Re-org 的機率會逐漸降低,使用者對交易被收入的信心會逐漸上升 相比於 L1 交易,L2 交易的生命週期多了一個階段是「L2 交易被收進 L2 區塊,並等待被上傳至 L1」的階段 但這個階段因為資料還沒上傳至 L1,所以有可能有變數發生。使用者在這個階段所能獲得關於交易收入的保證就是 Sequencer 給的口頭承諾,稱為 Pre-Confirmation 或 Fast Confirmation、Soft Confirmation 如果 Sequencer 是惡意的或是單純出現 Bug,那承諾就有可能被違背,導致使用者的 L2 交易沒被收入 目前大部分 L2 在它們Explorer 呈現的交易狀態都有包含 Pre-Confirmation 的狀態,例如 Arbitrum/Optimism 的 Confirmed by Sequencer 或 StarkNet 的 Accepted on L2。大家看到這樣的資訊時請記得它所提供的交易收入保證的效力 如果不想相信 Sequencer 提供的 Pre-Confirmation,就會需要等待久一點時間,並透過 L2Explorer 所提供關於 L2 資料被上傳到 L1 的資訊去驗證 Pre-Confirmation 可以加上經濟激勵機制的設計,例如在 Sequencer 違反承諾時透過智能合約懲罰它,讓使用者獲得更明確的保障 目前 L1 與 L2 交易在不同生命週期階段所提供的交易收入保證及相對應的風險  
2024-01-02

Load more