NEAR 帳戶模型:名稱、金鑰與儲存
Learn how NEAR's account model works: human-readable names, multi-key permissions, sub-accounts, and storage staking explained for developers and user...
目錄
- 什麼是 NEAR Protocol?
- 重點摘要:NEAR 帳戶模型概覽
- 什麼是 NEAR 帳戶模型?
- 命名帳戶與隱含帳戶:NEAR 如何識別使用者
- 子帳戶:NEAR 上的階層式帳戶組織
- NEAR 存取金鑰:完整存取權 vs. 函式呼叫權限
- 儲存權益質押:為什麼 NEAR 帳戶需要最低餘額
- NEAR 帳戶模型與以太坊比較:並排比較
- 開始使用:建立與管理您的 NEAR 帳戶
- 常見問題:NEAR 帳戶模型
- 結論:NEAR 帳戶模型對開發者與使用者的意義
什麼是 NEAR Protocol?(簡介)
NEAR Protocol 是一條第一層 (Layer-1) 權益質押證明區塊鏈,旨在提升開發者的易用性,具備低廉且可預測的交易手續費,並採用分片架構,在不犧牲可用性的情況下實現擴展。NEAR Protocol 由 Illia Polosukhin 和 Alexander Skidanov 共同創立,從設計之初就將開發者體驗和終端用戶易用性視為主要目標,而非在為其他用途構建的架構上事後補強其可用性。
NEAR 透過 Nightshade 分片機制進行擴展,該機制將帳戶狀態與運算分散至平行處理鏈,使網路能夠處理大量的交易而不會不成比例地增加費用。該協議支援編譯至 WebAssembly 的智能合約,並透過設計保持 Gas 費用低廉,這與那些費用波動性為開發者和用戶造成摩擦的區塊鏈不同。生態系發展由 NEAR 基金會負責監督,該基金會是先前營運官方 NEAR 錢包的非營利治理機構,之後轉移至社群維護的替代方案。
這項以開發者為先的理念,最清晰的體現就是 NEAR 的帳戶模型,這是一項從根本上重新思考區塊鏈身份和權限管理如何運作的設計。
TL;DR:NEAR 帳戶模型速覽
快速摘要(適合快速閱讀者):
- NEAR 帳戶使用人類可讀的名稱(例如
alice.near),而非像以太坊那樣的雜湊字串地址(0x742d35Cc...)。 - 每個帳戶可以同時持有複數的存取金鑰,每個金鑰都有其獨立的權限等級,從無限制的控制到特定範圍的合約互動。
- 任何 NEAR 帳戶都可以部署智能合約;與以太坊不同,並沒有單獨的合約帳戶類型。
- 子帳戶遵循分層命名空間(例如,
myapp.near下的contract.myapp.near),其作用類似於區塊鏈帳戶的子網域。 - 帳戶必須維持最低限度的 NEAR 代幣餘額,該餘額與其鏈上儲存使用量成正比,這是一種稱為儲存質押的機制。
- NEAR 的原生多金鑰權限系統,透過一種從一開始就內建的不同架構方法,實現了以太坊透過帳戶抽象(EIP-4337)正在努力達成的許多目標。
NEAR 帳戶模型是什麼?
NEAR 帳戶模型是鏈上身份和權限架構,定義了帳戶如何命名、儲存什麼狀態、如何透過細緻的密鑰權限管理存取,以及它們與 NEAR 區塊鏈上的智慧合約的關係。
在區塊鏈背景下,「帳戶模型」是指協議用於在鏈上代表參與者的系統:包括帳戶包含什麼內容、如何識別、如何授權交易,以及是否可以執行程式碼。Ethereum 使用一種帳戶模型;Bitcoin 則使用完全不同的範式(UTXO 模型,其餘額是以未花費的交易輸出來追蹤,而非帳戶餘額)。NEAR 使用基於帳戶的模型,但其實現方式與 Ethereum 有顯著不同,這些差異對於可用性和應用開發都至關重要。
一個 NEAR 帳戶同時包含五個要素:唯一的帳戶 ID、NEAR 代幣餘額、帳戶狀態(鏈上數據存儲)、可選的已部署並編譯為 WebAssembly(WASM,支持以 Rust 或 JavaScript 編寫合約)的智能合約,以及一個或多個具有不同權限級別的存取密鑰。這種統一的結構意味著,不像以太坊那樣區分「用戶帳戶」和「智能合約帳戶」。任何 NEAR 帳戶都可以選擇託管智能合約,而不會變成不同類別的對象。未部署合約的帳戶作為普通用戶帳戶運作;而已部署合約的帳戶則同時具備用戶帳戶和合約託管者的身份。
理解這為何重要的實際背景是去中心化應用程式 (dApp),這是一種運行在區塊鏈網路而非中心化伺服器上的軟體應用程式。NEAR 的帳戶架構旨在使 dApp 互動比現有的區塊鏈帳戶模型更安全、更易於存取。帳戶 ID 系統是這種設計理念最直接體現的地方,也是架構導覽開始的地方。
如需完整技術規格,請參閱 NEAR Protocol 帳戶模型文件,網址為 docs.near.org/concepts/basics/accounts/model.
命名帳戶與隱含帳戶:NEAR 如何識別使用者
NEAR 透過兩種帳戶格式在鏈上識別使用者和應用程式:命名帳戶,使用如 alice.near 這種易於閱讀的字串;以及隱含帳戶,這是由公鑰衍生的 64 字元十六進位字串。
命名帳戶:易於閱讀的區塊鏈身分
NEAR 上的具名帳戶是人類可讀的帳戶識別符,其結構類似網域名稱,在主網上以 .near 結尾,在測試網上以 .testnet 結尾,取代了以太坊等區塊鏈使用的加密雜湊字串。
這種對比顯而易見:alice.near 與 0x742d35Cc6634C0532925a3b844Bc454e4438f44e。兩者都是有效的區塊鏈識別碼,但前者易於閱讀,而後者則需要仔細地進行複製貼上驗證。您可以將 NEAR 具名帳戶想像成電子郵件地址:它易於閱讀且與身分相關聯,而不是一串需要逐個字元比對驗證的隨機字元字串。
命名帳戶遵循特定的命名規則:帳戶 ID 是字母數字字串,可以使用點作為分隔符,長度必須在 2 到 64 個字元之間,並且在主網上必須以 .near 結尾,或在測試網上以 .testnet 結尾。點分隔的結構創建了類似網域的層級結構:myapp.near 是一個頂層命名帳戶,而 contract.myapp.near 是其下的子帳戶(更多關於子帳戶的資訊請見下一節)。
命名帳戶背後的 UX 理念不僅僅是為了美觀。易讀的識別碼降低了將交易發送到錯誤帳戶的風險,使合約地址更易於發現,並減輕了管理鏈上身分的認知負擔。對於任何在發送交易前曾三次檢查 MetaMask 地址的人來說,alice.near 相對於 42 位十六進制字串的吸引力是具體而非抽象的。使用者透過 MyNEARWallet (mynearwallet.com) 註冊並管理命名帳戶,這是目前主要由社群維護的帳戶介面(由 NEAR 基金會營運的原 wallet.near.org 已停止服務)。
隱式帳戶:另一種帳戶格式
隱式帳戶是 NEAR 上的第二種帳戶格式:由公鑰直接衍生的 64 字元小寫十六進位字串,只要 NEAR 代幣被發送到該帳戶 ID 即可生成,無需現有帳戶執行任何操作。
| 功能 | 具名帳戶 | 隱含帳戶 |
|---|---|---|
| 帳戶 ID 格式 | 人類可讀字串 (例如:alice.near) | 64 個字元的十六進位字串 (從公鑰派生) |
| 如何建立 | 透過現有帳戶的交易進行註冊 | 一旦有 NEAR 代幣被發送到帳戶 ID,帳戶即存在 |
| 典型用途 | 使用者帳戶、dApp 合約、可讀身分 | 交易所存款、程式化/自動化情境 |
| 建立時需要現有帳戶 | 是 | 否 |
關鍵的實際區別在於:具名帳戶需要現有的鏈上帳戶透過交易贊助其註冊,而隱式帳戶則是在資金到達衍生出的帳戶 ID 時自動產生。這使得隱式帳戶在需要從零開始引導,或是無需易於閱讀的名稱的情境中非常有用。加密貨幣交易所在為用戶存入 NEAR 入帳時,通常會使用隱式帳戶,直接從用戶的公鑰產生唯一的帳戶 ID,而不需要預先存在的鏈上帳戶。
值得明確指出的一點澄清:隱式帳戶並非匿名的。它們是由公鑰確定性地推導而出的,且在鏈上完全透明。「隱式」一詞是指帳戶 ID 的推導方式(從公鑰本身推導,無需顯式的註冊步驟),而非指任何隱私特性。
命名帳戶與隱式帳戶確立了 NEAR 如何在鏈上識別參與者。帳戶也可以在其命名空間下包含其他帳戶,這種階層式結構便是子帳戶的由來。
子帳戶:NEAR 上的階層式帳戶組織
NEAR 上的子帳戶運作方式就像網路上的子網域:正如 docs.myapp.com 和 api.myapp.com 是 myapp.com 網域下的不同地址,token.myapp.near 和 staking.myapp.near 也是 myapp.near 命名空間下的不同區塊鏈帳戶。
子帳戶是指其 ID 存在於母帳戶命名空間下的帳戶。帳戶 contract.myprotocol.near 是 myprotocol.near 的子帳戶。只有母帳戶可以建立子帳戶:myprotocol.near 可以建立 contract.myprotocol.near,但未經母帳戶授權,任何其他帳戶都無法在該命名空間下建立帳戶。
重要事項: 子帳戶建立後,主帳戶無法存取子帳戶的資金或狀態。子帳戶是完全獨立的帳戶,僅共用命名空間,而非由主帳戶控制的附屬帳戶。
這種獨立性常引起誤解。父子關係僅在創建時適用。一旦 contract.myprotocol.near 存在,它就擁有自己的存取金鑰、自己的 NEAR 代幣餘額以及自己的鏈上狀態。父帳戶 myprotocol.near 對它沒有任何特殊權限。
對 dApp 開發者來說,子帳戶提供了一種實用的架構模式。由於任何 NEAR 帳戶都可以部署智能合約(編譯為 WASM),子帳戶便成為為每個合約元件提供可讀、有組織的帳戶 ID 的自然方式。例如,一個 DeFi 協議可能會為其代幣合約部署 token.myprotocol.near,為其質押合約部署 staking.myprotocol.near,以及為其治理合約部署 governance.myprotocol.near。每個都是獨立的帳戶,擁有自己的合約、自己的狀態和自己的金鑰管理,但命名空間讓鏈上的任何人都能立即辨識元件之間的關係。有關建立子帳戶的分步說明,請參閱 NEAR 子帳戶文件:docs.near.org/concepts/basics/accounts/model#named-accounts.
瞭解帳戶的命名和組織方式,為下一個架構層級奠定了基礎:如何透過存取金鑰來確保其安全並授予權限。
NEAR 存取金鑰:完全存取權限 vs. 功能呼叫權限
NEAR 存取金鑰 是控制在 NEAR 帳戶上可執行哪些操作的權限層,也是系統在架構上最獨特的特點:單一 NEAR 帳戶可以同時持有數個獨立的金鑰對,每個金鑰對都有其自身的權限級別。
NEAR 多金鑰系統的運作方式
與大多數由單一私鑰控制一切的區塊鏈帳戶不同,單一 NEAR 帳戶可以持有數個獨立的金鑰對,每個金鑰對都被賦予特定的權限類型,從無限制的控制到範圍狹窄的合約互動。
NEAR 存取金鑰預設使用 Ed25519 密鑰對(也支援 secp256k1 以實現以太坊工具鏈的相容性)。建立在這些密鑰對之上的權限系統,造就了 NEAR 模型在架構上的獨特性。您可以將其想像成一個鑰匙圈:完全存取金鑰 是打開所有鎖的主鑰匙;函數呼叫存取金鑰 則是只能打開特定門的專用鑰匙。帳戶上由任何存取金鑰簽署的交易都會消耗以 NEAR 代幣支付的 Gas,但 NEAR 的交易費用在設計上低廉且可預測,這與以太坊歷史上經常變動的 Gas 定價形成對比。
關於以程式設計方式新增和管理存取金鑰的詳細資訊,請參閱 NEAR 存取金鑰參考文件,網址為 docs.near.org/concepts/basics/accounts/access-keys.
完整存取金鑰:無限制帳戶控制
NEAR 上的完整存取金鑰是一組金鑰對,能夠對其附加的帳戶執行任何操作:轉移代幣、部署智能合約、創建子帳戶、新增或刪除其他金鑰,以及刪除帳戶本身。
由於「全權存取金鑰」控制整個帳戶,其風險程度與主密碼相同。對於持有大量資金的任何帳戶,「全權存取金鑰」絕不應與第三方應用程式共用,且應存放於冷存儲(硬體錢包或離線存儲)中。如果「全權存取金鑰」外洩,攻擊者將完全控制該帳戶,除非事先已配置相關機制,否則沒有原生的恢復機制。
與 Ethereum 的比較在這裡很有啟發性。在 Ethereum 中,外部擁有帳戶 (EOA) 的單一私鑰充當「全權限密鑰」:它控制一切,而且沒有原生方法可以為特定合約互動授予 dApp 低權限密鑰。透過 MetaMask 進行的每個 dApp 連線都會將您的完整帳戶密鑰暴露於交易簽署流程中。這種單一密鑰的限制正是 Ethereum 上 EIP-4337 帳戶抽象化旨在解決的問題。而在 NEAR 上,這個解決方案已內建於基礎帳戶模型中。
函式呼叫存取密鑰:dApp 安全性的範圍限制權限
一個 函數呼叫存取金鑰 是一種受限金鑰,僅能於單一指定智能合約上呼叫指定方法,並可選擇性設定 Gas 額度上限,以限制總費用支出。
相較於無限制的「完全存取金鑰」,「函式呼叫存取金鑰」則有精確的限制。此金鑰指定了:可呼叫的單一合約帳戶 ID、該合約上可呼叫的方法(若未進一步限制,則為所有公開方法),以及一個可選的 NEAR 代幣額度,用以限制金鑰在需要補充前能花費的 gas 量。一旦額度用盡,此金鑰將無法簽署進一步的交易,直到被儲值或替換為止。
以工作階段為基礎的身份驗證案例,正是函式呼叫存取金鑰(Function Call Access Keys)在 dApp 開發中展現其實際價值的所在。當您將 dApp 連接到您的 NEAR 帳戶時,dApp 會請求一個僅限於其自身合約範圍的函式呼叫存取金鑰。此金鑰會儲存在您的瀏覽器工作階段中。從那時起,dApp 就可以代表您提交交易(例如核准交易、鑄造 NFT、與遊戲合約互動),而無需提示您簽署每個單獨的操作。您的完整存取金鑰(Full Access Key)永遠不會離開您的安全錢包。如果 dApp 遭到入侵或具有惡意,損害也是有限的:攻擊者只能呼叫該金鑰範圍內的特定合約方法,且金額上限不超過預設的額度(allowance)。函式呼叫存取金鑰的功能就像 Web 應用程式中的工作階段權杖(session token):它授予特定操作的臨時、具備範圍限制的存取權限,而不會洩露完整的帳戶憑據。
| 功能 | 全權存取金鑰 (Full Access Key) | 函式呼叫存取金鑰 (Function Call Access Key) |
|---|---|---|
| 範圍 | 所有帳戶操作 | 僅限指定的合約方法 |
| 代幣轉帳 | 是 (無限制) | 否 (除非特別啟用) |
| 合約部署 | 是 | 否 |
| 金鑰/帳戶管理 | 是 (新增金鑰、刪除帳戶) | 否 |
| Gas 寬限額度上限 | 無上限 | 選填額度上限 |
| 典型儲存位置 | 硬體錢包 / 冷儲存 | 瀏覽器工作階段 / dApp |
| 遭破解風險 | 遺失整個帳戶 | 僅限於額度與指定的合約 |
| 類比於 | 主密碼 / 房屋主鑰匙 | 工作階段權杖 / 權限受限的門禁卡 |
存取金鑰控制帳戶可執行的操作。存儲質押規定帳戶存在於鏈上必須持有的資產。
存儲質押:為什麼 NEAR 帳戶需要最低餘額
NEAR 上的存儲質押(Storage staking)是一項機制,規定每個帳戶必須維持與該帳戶所使用的鏈上存儲(狀態)量成正比的最低 NEAR 代幣餘額。
此機制運作方式如下:NEAR 以位元組為單位分配鏈上儲存空間。針對帳戶中儲存的每個位元組狀態(餘額記錄、合約程式碼、儲存數據、訪問金鑰),帳戶餘額中必須持有相應數量的 NEAR 代幣。這些代幣並非被消耗或銷毀,而是作為鎖定餘額,用於對應儲存佔用空間。如果您透過刪除狀態或合約數據來減少帳戶儲存量,相應的代幣將會解除鎖定並返回您的可用餘額。儲存質押的運作方式類似於可退還的押金(儲值):您根據帳戶使用的儲存空間鎖定比例數量的 NEAR 代幣,並在減少儲存佔用空間時取回這些代幣。
此設計的目的是經濟性的:它透過確保從鏈上儲存獲益的一方承擔儲存成本,來防止狀態膨脹。如果沒有類似的機制,區塊鏈網路會累積大量來自被棄用帳戶或合約的死狀態,進而損害所有參與者的效能。
具體來說,儲存質押率大約是每 10 KB 鏈上儲存空間需要 1 NEAR 代幣,而一個新建立的空白 NEAR 帳戶最低需要大約 0.00182 NEAR 的餘額來支付其基礎狀態佔用空間。在依賴這些數字進行開發規劃前,請對照 NEAR 儲存質押文件 docs.near.org/concepts/storage/storage-staking) 核實當前數據,因為協議參數會隨著升級而改變。
對於智能合約開發者來說,儲存質押的意涵需要積極規劃。當 NEAR 帳戶部署合約時,合約程式碼本身會在帳戶狀態中佔用儲存空間。較大的合約二進位檔需要按比例增加預留餘額。如果您的合約儲存了大量數據(使用者紀錄、代幣餘額、治理投票),託管該合約的帳戶必須維持足夠的餘額,以同時涵蓋合約程式碼和累積的狀態。這是一項隨著應用程式使用量而增加的資本要求,在部署前就需要納入您的經濟模型中考量。
儲存質押創造了實際的資本鎖定要求。與那些不要求預留儲存餘額的鏈相比,一些開發者認為這受到限制。這種權衡是刻意的:這種限制可防止網路狀態無限制地增長,而且代幣是可取回的。但這種限制是真實存在的,應該提前規劃,而非在部署後才發現。
儲存質押 vs. 驗證人質押: 這是 NEAR 上的兩種不同機制。儲存質押 會鎖定 NEAR 代幣以對應您帳戶的鏈上數據足跡;這些代幣作為與使用儲存量成正比的預留餘額。驗證人質押 會鎖定 NEAR 代幣以對應共識機制,驗證人透過質押代幣來參與區塊生產並賺取質押獎勵。本文僅涵蓋儲存質押。請勿混淆「質押」這兩個用途。
Gas 費用(交易執行成本)與存儲質押是分開的。Gas 費用按每筆交易消耗,並在簽署時以 NEAR 代幣支付;存儲質押是一筆預留餘額,只要相關狀態存在,該餘額就會隨帳戶一直保留。
理解儲存質押,便能完整理解 NEAR 帳戶的獨立運作方式。下一個問題是,此架構與以太坊的相比如何?
NEAR 帳戶模型與以太坊:全面對比
NEAR 與以太坊在鏈上帳戶架構方面採取了根本上不同的方法,而這些差異對開發者如何建構去中心化應用程式以及使用者如何管理他們的鏈上身份都具有重要意義。
以太坊的雙帳戶系統 vs. NEAR 的統一帳戶模型
下表從八個架構維度對比了兩種帳戶模型。最顯著的區別在於,以太坊將用戶帳戶(外部帳戶,簡稱 EOA)與智能合約帳戶分為兩種不同的類型,而 NEAR 則對兩者使用單一的統一帳戶類型。
| 功能 | NEAR Protocol | Ethereum |
|---|---|---|
| 帳戶類型 | 單一統一類型(任何帳戶都可以是智能合約) | 兩種類型:EOA(用戶)和智能合約帳戶(程式碼) |
| 帳戶識別符 | 人類可讀名稱(例如:alice.near) | 密碼學雜湊(例如:0x742d...) |
| 金鑰管理 | 每個帳戶有多個金鑰,並帶有範圍限制的權限 | 每個 EOA 單一私鑰 |
| 智能合約託管 | 任何帳戶都可以部署智能合約 | 需要單獨的智能合約帳戶 |
| 權限範圍 | 函式呼叫存取金鑰原生限制 dApp 存取 | 無原生權限範圍(EIP-4337 作為一個層級添加) |
| 儲存模型 | 帳戶預留與狀態成比例的 NEAR 代幣(儲存質押) | Gas 費用涵蓋計算;無每帳戶儲存押金 |
| 子帳戶支援 | 是(階層命名空間:contract.myapp.near) | 無原生子帳戶系統 |
| 帳戶抽象 | 原生設計(多金鑰和範圍限制的權限) | EIP-4337 作為一個單獨的協議層添加 |
以太坊的外部擁有帳戶 (EOA) 與合約帳戶的分離,在實際應用中造成了阻礙。大多數 dApp 互動都需要 EOA 來呼叫合約帳戶,這意味著使用者必須將這兩種帳戶類型視為獨立的個體來管理。EOA 由單一私鑰控制,且沒有內建的方式來限制權限範圍:任何連接到 MetaMask 帳戶的 dApp 都可以要求簽署,將完整的帳戶金鑰暴露在交易流程中。以太坊的模型具有清晰的設計理念,且很好地達成了其原始目標,但隨著 dApp 互動變得越來越頻繁和多樣化,單一金鑰的限制變得明顯。
NEAR 的統一帳戶類型消除了 EOA 與合約之間的區隔。每個 NEAR 帳戶都具備作為合約宿主的潛力,且其具備「函數調用存取金鑰」(Function Call Access Keys)的多重金鑰系統,在無需額外協議層的情況下解決了單一金鑰的限制。NEAR 與 Ethereum 皆運作於帳戶制範式,這與 Bitcoin 的 UTXO 模型不同,後者的餘額是被視為「未花費交易輸出」而非帳戶狀態進行追蹤;NEAR 與 Ethereum 的差異在於帳戶的結構化方式與權限設計,而非基本範式的不同。
NEAR 的帳戶模型與 Ethereum 帳戶抽象(EIP-4337)
EIP-4337 (帳戶抽象化) 是以太坊的一項努力,目標是為 EOA (外部擁有帳戶) 賦予 NEAR 帳戶模型自創始以來就內建的可程式化權限與工作階段金鑰 (session-key) 功能。
EIP-4337 是一個已上線的以太坊標準(而非理論性提案),可讓智能合約錢包(Smart Contract Wallets)能像一等公民一樣運作,支援可程式化的交易驗證、會話金鑰、社交復原和贊助交易。它需要特定的 Bundler 基礎設施來運作,並且已積極部署到整個以太坊生態系統中,儘管它並非自動套用至所有帳戶的通用升級。
NEAR 的 Function Call Access Keys 與之有著真實的相似之處:這兩種方法都解決了為 dApps 授予針對特定互動的、範圍限定的、有限權限的存取權的問題,而無需暴露完整的帳戶金鑰。熟悉 EIP-4337 session keys 的開發者會覺得 NEAR 的 Function Call Access Keys 在概念上很熟悉。重要的細微差別在於,它們是重疊概念的架構上獨特的實作,而非相同的系統。NEAR 的多金鑰權限模型是基礎協定原生提供的;EIP-4337 則是在以太坊現有的 EOA 模型之上疊加智能合約錢包的邏輯。它們解決的問題顯著重疊;機制則有所不同。如需完整的 EIP-4337 規格,請參閱 EIP-4337 帳戶抽象規格,網址為 eips.ethereum.org/EIPS/eip-4337.
對於正在評估 NEAR 的 Ethereum 開發者而言,有兩個生態系統橋接器值得注意。Aurora (aurora.dev) 是一個構建在 NEAR 之上的 EVM 相容環境,允許 Ethereum 開發者在 NEAR 基礎設施上部署 Solidity 合約,同時以 NEAR 帳戶作為底層身份層。在兩個生態系統中工作的開發者可以使用 Rainbow Bridge (rainbowbridge.app) 在 NEAR 帳戶與 Ethereum 地址之間轉移資產,而無需依賴中心化託管。
既然架構已經清晰,以下是實際操作中創建與管理 NEAR 帳戶所涉及的具體內容。
入門指南:建立與管理您的 NEAR 帳戶
您可以透過 MyNEARWallet 網站 mynearwallet.com 建立您的第一個 NEAR 帳戶,這是社群維護的主要 NEAR 帳戶註冊與金鑰管理介面。請在閱讀時確認目前的官方推薦錢包,因為 NEAR 錢包生態系持續演進;除了 MyNEARWallet 之外,還有其他相容的錢包應用程式。
如果您是來自 Ethereum 和 MetaMask 的用戶,在開始之前了解其中的概念差異非常重要。MetaMask 錢包主要是一個針對 Ethereum EOA 的私鑰管理器和交易簽署器:它持有您的私鑰,並將其提供給 dApp 以進行交易簽署。而 NEAR 帳戶則是一個完整的鏈上身分,擁有可讀的名稱、鏈上狀態存儲、可編程的密鑰權限以及可選的合約託管功能。錢包應用程式(MyNEARWallet)僅是介面;NEAR 帳戶才是鏈上的物件。這兩者是不同的概念,這種區別對於您思考私鑰管理的方式至關重要。
建立 NEAR 帳戶需要少量的初始 NEAR 代幣餘額,以支付基礎儲存質押需求(如上述儲存質押部分所述,空帳戶約需 0.00182 NEAR)。此初始餘額可用於支付新帳戶的基礎狀態占用空間。
在您開始之前,有三個風險值得了解。第一,如果您在未配置恢復機制的情況下遺失了完全存取金鑰 (Full Access Key),該帳戶將無法恢復。請將您的完全存取金鑰儲存在冷儲存中,並在需要之前配置好任何可用的恢復選項。第二,為存儲質押預留的 NEAR 代幣只要相關狀態存在就會被鎖定;這是一項資本承諾,而非費用。第三,在 NEAR 上刪除帳戶是不可逆轉的。如需完整的逐步帳戶建立指南,請參閱位於 docs.near.org/concepts/basics/accounts/model 的 NEAR 開發者文件.
以下將回答有關 NEAR 帳戶模型最常見的問題。
常見問題:NEAR 帳戶模型
以下問題針對 NEAR 帳戶模型中最常見的疑惑進行了解答,並為希望深入瞭解的讀者提供了上方相關章節的交互參照。
任何 NEAR 帳戶都可以部署智能合約嗎?
是的。在 NEAR 中,任何帳戶都可以選擇部署編譯為 WebAssembly (WASM) 的智能合約。沒有獨立的合約帳戶類型,這與以太坊不同,在以太坊中部署合約需要創建一個特定的合約帳戶。沒有部署智能合約的帳戶可作為標準用戶帳戶運作;已部署智能合約的帳戶則同時作為兩者運作。請參閱上面的 NEAR 帳戶模型是什麼 章節以取得完整的架構說明。
NEAR 存取金鑰如何讓 dApp 更安全使用?
函式呼叫存取金鑰可將 dApp 限制在特定的合約方法,並可選擇設定燃氣額度上限。當您使用僅限於該 dApp 合約的函式呼叫存取金鑰連線至 dApp 時,您的完整存取金鑰 (以及您完整的帳戶餘額) 絕不會暴露給第三方應用程式。如果 dApp 被盜用,損壞範圍將受限於額度以及指定的合約。請參閱 NEAR 存取金鑰區段 以獲得完整說明。
如果我遺失了我的完整存取金鑰,會發生什麼事?
若未預先設定復原機制,全權存取金鑰的遺失將導致帳戶永久無法復原。您無法像重設密碼一樣重設或復原全權存取金鑰,因為沒有中央權威機構能夠控制該帳戶。請務必將全權存取金鑰儲存在安全的離線儲存中,並在您需要之前,透過您的錢包應用程式設定任何可用的帳戶復原選項。部分錢包提供社群復原或多金鑰復原設定。
燃料費與質押儲存相同嗎?
不。Gas 費是用戶在簽署交易時消耗的、用於執行交易的成本;它們以 NEAR 代幣支付,並且在交易完成後不會持續存在。質押儲存(Storage staking)是一種最低限額的 NEAR 代幣儲備金,只要與之關聯的鏈上狀態存在,該儲備金就會與帳戶一同保留。兩者都涉及 NEAR 代幣,但它們作為完全獨立的機制運作。請參閱 質押儲存部分 以取得完整說明。
NEAR 的帳戶模型與以太坊的帳戶抽象(EIP-4337)有何關聯?
NEAR 的原生多金鑰權限系統實現了許多 EIP-4337 旨在為以太坊增添的目標,包括針對 dApp 互動的範圍限定對話式權限,以及可程式化的金鑰邏輯。兩者是在重疊理念上的不同架構實現:NEAR 的方法是基礎協議原生的,而 EIP-4337 則是在以太坊現有的 EOA 模型之上層疊了智能合約錢包邏輯。它們透過不同的架構解決了相似的問題。詳細分析請參閱 NEAR 與以太坊比較章節。
NEAR 上的具名帳戶與隱式帳戶有什麼區別?
具名帳戶是可讀性高的人類識別碼(例如 alice.near),透過現有帳戶發送交易進行註冊,在主網上以 .near 結尾,在測試網上以 .testnet 結尾。隱含帳戶則是直接由公鑰產生的 64 位元十六進位字串,當 NEAR 代幣被發送到該帳戶 ID 時會自動建立,無需註冊交易。請參閱 具名帳戶與隱含帳戶章節 以獲取完整的比較表。
單一 NEAR 帳戶可以持有多少個存取金鑰?
一個 NEAR 帳戶可以同時持有多个存取金鑰,每個金鑰都會被分配其自身的權限類型(完全存取金鑰或函式呼叫存取金鑰),對於函式呼叫存取金鑰,還包括其自身的合約範圍和 Gas 限額。帳戶的金鑰數量沒有明確記錄的上限。這種多金鑰功能是 NEAR 的權限模型與 Ethereum 的單金鑰/每 EOA 方法不同之處。有關詳細資訊,請參閱 NEAR 存取金鑰 部分。
儲存權益質押(Storage Staking)是否意味著我會失去我的 NEAR 代幣?
NEAR 代幣保留用於儲存權益質押,它們是被鎖定的但並未被花費。它們會以保留餘額的形式留在您的帳戶中,如果您透過刪除狀態來縮減帳戶的鏈上資料足跡,這些代幣將會被釋放回您的可用餘額。這些代幣是作為儲存空間使用的「儲值金」,而非手續費。請參閱「儲存權益質押」部分(連結:#storage-staking-why-near-accounts-require-a-minimum-balance),以了解機制與目前數據。
結論:NEAR 帳戶模型對開發者與用戶的意義
NEAR 帳戶模型反映了一系列深思熟慮的架構選擇:人類可讀的帳戶名稱降低了進入門檻並減少了交易錯誤;多密鑰權限系統透過限定第三方存取範圍且不暴露主密鑰,降低了 dApp 互動的安全性風險;儲存質押建立了資源使用與成本之間的經濟一致性;而統一的帳戶合約結構則消除了為以太坊開發增加阻礙的 EOA 與合約分離機制。
儲存質押的最低餘額要求是一項必須實際規劃的限制,而非附帶說明。如果您的應用程式儲存了大量的鏈上狀態,則保留餘額的要求會隨之增加。請務必在部署前,將其納入您應用程式的經濟模型預算,而非部署後才處理。
依角色後續步驟:
- 開發人員: 開始在 NEAR Protocol 上建構,請前往 docs.near.org/develop
- 使用者: 建立您的 NEAR 帳戶,請前往 MyNEARWallet at mynearwallet.com
- 研究人員: 深入研究完整的帳戶模型規格,請參閱 NEAR Protocol account model documentation at docs.near.org/concepts/basics/accounts/model
本文中的技術規範反映了撰寫時 NEAR Protocol 的狀況。NEAR Protocol 正在積極開發中;在將特定數值用於開發或運作規劃之前,請先參閱 docs.near.org 核實目前數據。本內容僅供參考,不構成財務或投資建議。