NEAR 帳戶模型解析:金鑰與儲存
Learn how NEAR's account model works: human-readable IDs, multiple access keys, storage staking, and unified architecture compared to Ethereum.
NEAR 帳戶模型是 NEAR Protocol 的協議層級系統,用於管理帳戶身份、權限以及鏈上狀態。NEAR 上的每個帳戶都擁有一個易於讀取的帳戶 ID,可以持有具有不同權限範圍的多個存取金鑰,並能同時儲存代幣餘額和已部署的智能合約。區塊鏈透過不同的系統來管理價值和身份(Bitcoin 使用未花費交易輸出,即 UTXO 模型,而 Ethereum 和 NEAR 則使用帳戶制模型,其中每個帳戶直接持有狀態),而 NEAR 的帳戶制設計正是讓此處所介紹的架構得以實現的原因。
NEAR Protocol 是一種質押證明 (PoS) Layer 1 區塊鏈,於 2020 年推出了其主網。它由 NEAR Inc.(現營運為 Pagoda)創建,該公司是一家開發者工具組織,持續維護 NEAR SDK 和核心協議基礎設施。NEAR Protocol 使用 Nightshade 分片將網路分割成平行分片,帳戶 ID 在分片分配中扮演角色,這對於考慮跨合約呼叫模式的開發者來說很重要。
NEAR 帳戶模型有四項特性,使其有別於其他 layer 1 帳戶系統:
["- 帳戶 ID 是人類可讀字串,而非隨機的十六進位數列","- 單一帳戶可持有無限數量的存取金鑰,每個存取金鑰都有其自身的權限範圍","- 任何帳戶皆可同時持有代幣餘額和已部署的智能合約,在架構上「使用者帳戶」與「合約帳戶」之間沒有任何區別","- 帳戶必須維持與其鏈上儲存使用量成正比的 NEAR 代幣餘額,此機制稱為儲存權益質押"]
本文依序涵蓋了這些組成部分的內容:帳戶 ID 類型、存取金鑰類型、儲存權益質押、子帳戶、以太坊架構比較,以及一個實際操作範例。
跳轉至章節:
- NEAR 帳戶 ID:具名帳戶與隱式帳戶
- NEAR 存取金鑰:帳戶權限運作機制
- 儲存質押:NEAR 如何將代幣餘額與鏈上儲存連結
- NEAR 子帳戶:階層式帳戶命名空間
- NEAR 帳戶模型 vs. 以太坊:核心架構差異
- NEAR 統一帳戶架構在實務中的意義
- 關於 NEAR 帳戶模型的常見問題
- 重點總結與後續步驟
NEAR 帳戶 ID:具名帳戶與隱含帳戶
每個 NEAR 帳戶都由唯一的帳戶 ID 識別。與以太坊不同,其帳戶由 42 個字元的十六進位地址識別,該地址由公鑰衍生而來,NEAR 的帳戶 ID 則有兩種結構上不同的形式:命名帳戶和隱含帳戶。理解它們之間的差異是使用 NEAR 帳戶系統的基礎。
命名帳戶:人類可讀的識別符
具名帳戶(Named account)是在頂級域名下註冊的人類可讀帳戶 ID:主網(mainnet)上為 .near,測試網絡上為 .testnet。具名帳戶的運作方式類似於網路使用者名稱或域名:它們是唯一的、由註冊人選擇,且易於分享和記憶。例如:alice.near、myprotocol.near 以及 nft.myprotocol.near。與使用者名稱不同,具名帳戶是一個協議層級的物件,它持有 NEAR 代幣餘額,可以部署智能合約,並控制加密存取金鑰。
註冊具名帳戶需要小額的 NEAR 代幣儲值。若要建立帳戶,請造訪 MyNEARWallet 或 Meteor Wallet 等與 NEAR 相容的錢包介面,選擇您的帳戶 ID,並為註冊儲值提供資金。具名帳戶也可以在其命名空間中建立子帳戶(例如,alice.near 可以建立 app.alice.near),此主題將在下方的子帳戶章節中詳細介紹。
命名帳戶是直接內建於 NEAR Protocol 的帳戶模型中的原生協議功能。它們不是疊加在協議之上的外部命名服務,這也是以太坊名稱服務 (ENS) 在以太坊上運作的方式。ENS 是一個獨立的智能合約系統;NEAR 的命名帳戶是協議本身的一等公民。
隱含帳戶:源自公鑰
隱式帳戶是一個由 64 位十六進位組成,並從 Ed25519 公鑰確定性推導出的帳戶 ID。隱式帳戶 ID 的範例如下:98793cd91a3f870fb126f66285808c7e094afcfc4b4a2ca57271d8b8b6a4a7c0。對於來自以太坊的開發者來說,這是結構上最熟悉的帳戶類型,因為其推導過程與以太坊地址從公鑰計算出來的方式類似。
隱式帳戶(implicit accounts)的建立機制與具名帳戶(named accounts)在一個關鍵方面有所不同:不需要註冊交易。當有人向其帳戶 ID 發送 NEAR 代幣時,隱式帳戶即會啟動。這使得隱式帳戶非常適合程式化帳戶建立、交易所儲值地址,以及對人類可讀性非首要考量的場景。
「隱式」(implicit) 描述詞是指其建立機制,而非匿名性。隱式帳戶由衍生出帳戶 ID 的私鑰持有者完全擁有並控制。另一個區別是:隱式帳戶 ID 是從公鑰衍生出來的,但它本身與公鑰並不相同。帳戶 ID 是原始公鑰位元組的小寫十六進位表示。熟悉地址衍生的以太坊開發者會認出這種模式,但不應假設這兩種表示方式是相同的。
具名帳戶 vs. 隱式帳戶:並列比較
這兩種帳號 ID 類型在五個面向有所不同:
| 維度 | 具名帳戶 | 隱式帳戶 |
|---|---|---|
| 帳戶 ID 格式 | 易讀字串 (例如:alice.near) | 64 字元十六進位字串 |
| 建立方式 | 需要註冊交易 | 收到第一筆 NEAR 代幣時即啟用,無需交易 |
| 註冊費用 | 需要少額 NEAR 代幣儲值 | 無註冊費用 |
| 易於閱讀 | 是 | 否 |
| 典型使用場景 | 使用者錢包、協定帳戶、合約識別碼 | 交易所儲值位址、程式化工具、批量帳戶建立 |
具名帳戶適用於使用者錢包和協議部署,在這些情況下可讀性至關重要。隱含帳戶適用於交易所、程式化工具,以及在無需使用者互動的情況下大量創建帳戶的場景。
NEAR 存取金鑰:帳戶權限如何運作
NEAR 存取金鑰是帳戶模型的授權層級。每個 NEAR 帳戶都可以同時持有數個存取金鑰,而每個金鑰都帶有獨立的權限範圍。一個 NEAR 帳戶一次最多可以持有無限數量的存取金鑰。每個金鑰都是獨立的 Ed25519 密碼學金鑰對,您可以新增或移除金鑰,而無需創建新帳戶。金鑰會透過一筆由現有的完全存取金鑰簽署的交易來新增,使用 NEAR CLI (near add-key) 或透過 SDK 以程式設計方式進行。
這與 Ethereum 不同,在 Ethereum 中,每個地址由單一私鑰控制。NEAR 的多金鑰設計可在不損害帳戶連續性的情況下,實現更精細的權限控制。NEAR 支援兩種類型的金鑰:完全存取金鑰 (Full Access Keys) 與函式呼叫存取金鑰 (Function Call Access Keys)。請參閱 NEAR 協議關於存取金鑰的文件 以取得完整的技術規範。
完全存取金鑰:主要憑證
全權存取金鑰(Full Access Key)是一種對帳戶擁有不受限權限的存取金鑰。它可以授權代幣轉帳、智能合約部署、新增或移除其他金鑰,以及帳戶刪除。您可以將全權存取金鑰想像成您房屋的萬能鑰匙:它能開啟每一扇門。與房屋鑰匙不同的是,全權存取金鑰是在 NEAR 區塊鏈上簽署交易的加密金鑰對,因此適用相同的安全實務。請將其儲存在硬體錢包或離線環境中,理由就如同以太坊用戶保護其助記詞一樣。
一個 NEAR 帳戶可以有多個完全存取金鑰。每個裝置一個金鑰是一種常見模式,每個金鑰都具有相同的完全權限等級。這是一個重要的架構考量:不像以太坊帳戶有一個「主私鑰」,NEAR 沒有這種情況。多個完全存取金鑰可以同時存在於單一帳戶上。
開發者筆記: 遭破解的函式呼叫存取金鑰 (Function Call Access Key) 並不具備全權存取金鑰 (Full Access Key) 的權限。權限範圍在協定層級的架構上是分開的。撤銷函式呼叫存取金鑰不會影響同一帳戶上的任何全權存取金鑰,反之亦然。
函式呼叫存取金鑰:dApp 的限定範圍權限
函式呼叫存取金鑰(Function Call Access Key)是一種具備範圍限制的存取金鑰,僅能呼叫特定合約上的特定方法,並可選擇性地設定 NEAR 代幣額度,以限制該金鑰可消耗的 Gas 上限。您可以將其想像成工作階段權杖(session token)或具備範圍限制的 OAuth 權限:它授予特定應用程式代表您執行特定操作的權利,而不會讓其存取您的完整帳戶。與 OAuth 權杖不同,函式呼叫存取金鑰是儲存在鏈上的加密金鑰對,其權限界限是在協定層級強制執行的,而非由應用程式執行。
當您將 NEAR 帳戶連接到去中心化應用程式 (dApp) 並批准函式呼叫存取金鑰 (Function Call Access Key) 時,dApp 可以自動提交特定交易,而無需為每筆交易觸發錢包確認彈出視窗。這能在遊戲、DeFi 協議和社交應用程式中實現基於工作階段 (session-based) 的使用者體驗。在以太坊上,每一項互動都需要單獨的 MetaMask 確認。在 NEAR 上,使用者只需批准金鑰一次,dApp 即可在該工作階段的範圍內運作。
函數呼叫存取金鑰可包含一個可選的 NEAR 代幣額度,此額度用於限制該金鑰可支出的總 Gas 量。一旦該額度耗盡,該金鑰將無法再提交交易,直到使用者為其增加額度或發行新金鑰為止。
常見誤解: 向 dApp 授予「函式呼叫存取金鑰」(Function Call Access Key)並不代表該 dApp 擁有您帳戶的控制權。該金鑰的權限嚴格限制在定義好的合約方法與 Gas 費用額度內。它無法轉移您的 NEAR 代幣餘額,無法部署合約,也無法在您的帳戶中新增或刪除其他金鑰。
開發者筆記: 函式呼叫存取金鑰 (Function Call Access Keys) 在 dApp 中實現了工作階段金鑰 (Session Key) 模式。使用者可以授權一個金鑰用於遊戲工作階段或 DeFi 交易工作階段,且應用程式在該範圍內運作,無需逐筆交易進行批准。這是開發在 NEAR 與以太坊 (Ethereum) 上構建應用時,在使用者體驗 (UX) 方面最顯著的差異之一。
全權存取金鑰與函式呼叫存取金鑰:主要差異
完全權限金鑰與函數呼叫權限金鑰在六個維度上有所不同:
| 维度 | 完全访问密钥 | 函数调用访问密钥 |
|---|---|---|
| 权限范围 | 无限制:所有账户操作 | 仅限于一个合约上的特定方法 |
| 可自由转移代币 | 是 | 否 |
| 可部署合约 | 是 | 否 |
| 可添加或删除密钥 | 是 | 否 |
| 典型持有者 | 账户所有者(存储在硬件钱包或离线状态) | dApp 或应用程序(存储在浏览器或应用程序会话中) |
| 泄露时的安全风险 | 完全损失账户 | 仅限于合约方法和 Gas 限额 |
「完全存取金鑰」歸帳戶擁有者所有,應離線存放或保存在硬體中。「函式呼叫存取金鑰」是核發給應用程式的,帳戶擁有者可以隨時撤銷。
--- ## 儲存質押:NEAR 如何將代幣餘額與鏈上儲存繫結
存儲質押是 NEAR 帳戶架構的一個組成部分,大多數區塊鏈教育資源都忽略了這一點,但它對每一位在 NEAR 上構建的開發者和每一位管理帳戶的使用者都有直接的實際影響。
為什麼 NEAR 需要代幣餘額來進行存儲
定義:儲存質押(在某些 NEAR 文件中也稱為狀態質押)是 NEAR 帳戶必須維持與其儲存的鏈上數據量成正比的 NEAR 代幣餘額的要求。此鎖定餘額作為可退還的儲值,而非費用。
儲存質押的運作方式就像公寓的押金。您的 NEAR 代幣會根據您佔用的儲存空間比例進行鎖定,並在您刪除該儲存數據時退還。與支付租金不同,代幣不會轉移給任何人;它們仍保留在您的帳戶中,僅針對您持有的儲存空間進行預留。
一個值得釐清的區別:儲存質押(storage staking)與驗證人質押(validator staking)並不相同。這兩種機制都會鎖定 NEAR 代幣,但它們服務的目的完全不同。驗證人質押鎖定代幣是為了參與區塊生產並獲得共識獎勵。儲存質押鎖定代幣則與鏈上儲存使用量成正比,以防止狀態膨脹,並將儲存成本與消耗儲存的實體對齊。它們是擁有獨立目的的獨立鎖定餘額。
儲存質押也與 Gas 費分開。Gas 費是每筆交易的執行成本,以 NEAR 代幣支付,並在每筆交易後銷毀。儲存質押是一項持續性的餘額要求,與帳戶持有的數據量掛鉤,而非與發送的交易次數掛鉤。
儲存質押實務:對帳戶與合約的意義
儲存質押會影響三個層級的帳戶:
- 帳戶創建: 需要最低 NEAR 代幣餘額。目前的費率大約是每位元組狀態 0.00182 NEAR(在做出開發決策前,請於 官方 NEAR 儲存質押文件) 中驗證目前的費率,因為協議治理可能會調整此數字)。
- 合約部署: 需要根據編譯後的合約大小按比例增加的儲值。合約的 WASM 位元組碼作為帳戶狀態的一部分儲存在鏈上,儲存的儲值會隨著該大小進行調整。
- 合約狀態數據: 儲存在合約狀態中的數據(例如代幣合約中的用戶餘額或鏈上遊戲中的遊戲狀態)需要由控制該合約帳戶的實體維持持續的餘額。
如果 NEAR 帳戶的餘額低於其儲存需求,該帳戶將無法發送出站交易,直到餘額補足為止。該帳戶不會被刪除,其資料也不會遺失;它僅僅是暫時無法進行出站交易,直到存入足夠的 NEAR 代幣為止。
**開發者說明:**請儘早決定您的應用程式是要在用戶加入過程中為其代付儲值,還是要求用戶自行維持餘額。許多協議會吸收儲存成本以減少阻礙。這是一個影響用戶獲取的實際加入經濟決策,因此請在發布前將其納入您的 dApp 成本模型中。
NEAR 子帳戶:階層式帳戶命名空間
NEAR 子帳戶是指其帳戶 ID 以父帳戶 ID 作為前綴的帳戶。例如,app.alice.near 是 alice.near 的子帳戶,且只有 alice.near 才能在此命名空間下創建帳戶。
有一個需要精確說明的重要細節:在建立子帳戶後,主帳戶並「不」控制它。子帳戶是完全獨立的:它擁有自己的存取金鑰、自己的 NEAR 代幣餘額以及自己的鏈上狀態。主帳戶唯一的特殊權限是在其命名空間中建立子帳戶的能力。除了建立行為之外,這兩個帳戶之間沒有持續的控制關係。
命名層級類似於網路網域與子網域。alice.near 就像是一個網域,而 app.alice.near 則像是一個子網域。正如註冊網域並不會讓你對其子網域上託管的內容擁有持續的控制權,創建子帳戶也不會賦予母帳戶對於該子帳戶後續使用方式的權限。
協議團隊的典型使用模式如下:
myprotocol.near → token.myprotocol.near → staking.myprotocol.near → dao.myprotocol.near
每個子帳戶在創建後都是獨立控制的。每個子帳戶都擁有自己的存取金鑰、持有自己的餘額,並且可以部署自己的獨立智能合約。創建過程由父帳戶發起,可透過 NEAR CLI 或透過合約呼叫以程式化方式進行。在該交易之後,控制權將完全轉移給持有新子帳戶存取金鑰的任何人。
常見迷思: 母帳戶在建立後,並不會管理子帳戶。子帳戶是完全自主的協定層級帳戶。命名慣例反映的是創建者,而非控制者。
開發者筆記: 子帳戶是模組化協定架構的標準模式。將獨立合約部署到各自的子帳戶,可為每個模組提供獨立的存取金鑰管理、獨立的升級路徑,以及更清晰的權限隔離。許多生產環境的 NEAR 協定都採用此模式用於代幣合約、治理模組和質押邏輯。
NEAR 帳戶模型與以太坊:關鍵架構差異
NEAR 帳戶模型與以太坊帳戶模型在解決相同問題上採取了不同的架構方法:如何識別帳戶、如何授權交易,以及如何部署智能合約。對於評估 NEAR 作為建置平台的開發者而言,了解這些差異是做出明智架構決策的先決條件。
以太坊將帳戶分為兩種類型:外部帳戶 (EOAs) 與合約帳戶。外部帳戶由單一私鑰控制,且無法存放部署的程式碼。合約帳戶則由程式碼控制,且沒有私鑰。這種區分意味著,如果您希望一個以太坊地址既能持有 ETH 又能執行智能合約邏輯,您需要兩個獨立的帳戶物件協同運作。
NEAR 採用統一模型。任何 NEAR 帳戶都可以同時持有代幣餘額並部署智能合約。沒有獨立的「合約帳戶」類型。alice.near 帳戶可以持有 NEAR 代幣、運行已部署的 WASM 合約,並維護多個具有不同權限範圍的存取金鑰,所有這些都作為單一的協定物件。任何 NEAR 帳戶都可以同時持有智能合約、代幣餘額和多個存取金鑰。
每個以太坊帳戶都由一個私鑰控制。NEAR 帳戶支援多個具有不同權限範圍的存取金鑰,實現了乙太坊帳戶模型在協定層級不原生支援的階段金鑰和多裝置金鑰管理等模式。
| 維度 | NEAR 帳戶模型 | 以太坊帳戶模型 |
|---|---|---|
| 識別碼格式 | 人類可讀的具名帳戶 (alice.near) 或 64 字元的十六進位隱式帳戶 | 42 字元的十六進位位址 (例如 0x742d...) |
| 帳戶類型 | 統一:所有用途僅有一種帳戶類型 | 兩種類型:外部帳戶 (EOAs) 與合約帳戶 |
| 智能合約部署 | 任何帳戶都可以持有已部署的合約 | 只有合約帳戶持有代碼;外部帳戶 (EOAs) 則不行 |
| 金鑰管理 | 每個帳戶可擁有多個具有範圍權限的存取金鑰 | 每個帳戶僅有一個私鑰 |
| 儲存模型 | 儲存質押:與鏈上數據成正比的鎖定代幣儲值 | Gas 費用包含儲存成本;無需另外的鎖定儲值 |
| dApp 的使用者體驗 | 函式呼叫存取金鑰可實現基於會話的批准,無需每次交易都彈出視窗 | 每筆交易都需要單獨的錢包確認 (例如 MetaMask 彈出視窗) |
請注意:與以太坊兼容的智能合約可透過 Aurora 在 NEAR 上運行,Aurora 是一個作為智能合約部署在 NEAR 上的 EVM 兼容層。Aurora 是一個獨立的層;原生 NEAR 開發使用從 Rust 或 JavaScript 編譯的 WebAssembly (WASM),而非 Solidity。請參閱 以太坊帳戶模型文件) 以獲取完整的以太坊帳戶規範。
NEAR 的統一帳戶架構在實際應用中的意義
NEAR 帳戶模型的組成部分(帳戶 ID、存取金鑰、儲存質押和子帳戶)形成了一個統一的系統,在應用程式的運作方式和用戶體驗方面產生了顯著差異。
假設有一個 NEAR 帳戶 alice.near。Alice 的帳戶可以同時:
- 持有 NEAR 代幣餘額
- 其上部署了智能合約,該合約由 Rust 編譯為 WebAssembly (WASM)
- 擁有三種存取金鑰:儲存在硬體錢包中的完全存取金鑰、筆記型電腦上的完全存取金鑰,以及授權給 DeFi dApp 以進行基於會話交易的函式呼叫存取金鑰
- 擁有兩個子帳戶(
app.alice.near用於已部署的遊戲合約,vault.alice.near用於儲蓄合約),每個帳戶獨立控制
Alice 的帳戶 ID 易於閱讀且可供分享。她從不需要複製 42 位字元的十六進位字串來接收代幣或與合約互動。
對於開發者而言,其對實踐的影響非常重大。對話金鑰模式消除了遊戲與社交應用程式中每筆交易產生的錢包摩擦。子帳戶架構讓協議團隊得以部署具有獨立升級路徑的模組化合約。儲存質押為鏈上數據建立了一個可預測的成本模型,這必須被納入用戶引導的經濟考量中。帳戶也可以透過 Rainbow Bridge 進行互動,在 NEAR 與以太坊之間轉移資產,並透過與 NEAR 相容的錢包介面(例如 MyNEARWallet 或 Meteor Wallet)進行管理。
對於終端用戶而言,此賬戶模型可轉化為如同用戶名般易讀的賬戶 ID、不會因錢包彈窗而中斷體驗的 dApp 會話,以及一種無需依賴單一助記詞即可實現賬戶恢復的金鑰輪換模型。
關於 NEAR 帳戶模型的常見問題
NEAR 上的具名帳戶和隱式帳戶有什麼區別?
命名帳戶是註冊在頂級域名之下的、人類可讀的識別符(例如 alice.near),在註冊時需要少量 NEAR 代幣儲值,且由使用者選擇。隱含帳戶是源自 Ed25519 公鑰的 64 個字元的十六進位 ID,不需要註冊,且當 NEAR 代幣發送到帳戶 ID 時自動啟用。命名帳戶通常用於使用者錢包和協定部署;隱含帳戶常見於交易所和程式化工具。有關完整的並排細節,請參閱上方的 命名帳戶與隱含帳戶比較表。
一個 NEAR 帳戶可以有多少個存取金鑰?
NEAR 帳戶可以同時持有無限數量的存取金鑰。每個金鑰都有自己的權限範圍:一種是擁有無限制權限的「完全存取金鑰」(Full Access Key),另一種是限制於特定合約方法的「函式呼叫存取金鑰」(Function Call Access Key)。這讓使用者能夠為不同的裝置或 dApp 維持獨立的金鑰,而無需建立新帳戶。您可以隨時新增或撤銷個別金鑰,而不會影響其他金鑰。請參閱「存取金鑰」部分,瞭解每種金鑰類型的詳細資訊。
NEAR Protocol 中的儲存質押是什麼?
儲存質押要求 NEAR 帳戶維持與其儲存鏈上資料量成正比的 NEAR 代幣餘額。這些代幣會被鎖定為儲值,而不是被花費,若儲存的資料被刪除,則會被釋放。此機制可防止網路上的狀態膨脹,並確保儲存消費者承擔其佔用資源的費用。儲存質押獨立於 Gas 費用(Gas 費用會因每筆交易而銷毀)以及驗證者質押(用以保護網路共識)。請參閱 儲存質押區塊鏈 以取得完整說明。
NEAR 帳戶是否可以持有智能合約?
是的。任何 NEAR 帳戶都可以部署智能合約。與以太坊不同,後者將外部擁有帳戶(無法持有程式碼的使用者帳戶)與合約帳戶(沒有私鑰的持有程式碼的帳戶)分開,NEAR 使用統一帳戶模型,其中任何帳戶都可以同時持有 NEAR 代幣餘額和部署的合約程式碼。NEAR 上的合約是從 Rust 或 JavaScript 原始碼編譯為 WebAssembly (WASM),而非 Solidity。請參閱以太坊比較章節以取得完整的架構細節。
如果我的 NEAR 帳戶餘額低於儲存要求會發生什麼事?
如果 NEAR 帳戶的餘額低於其存儲使用量所需的最低餘額,則在補足餘額之前,該帳戶無法發送外出的交易。帳戶不會被刪除,其數據也不會丟失;在存入足夠的 NEAR 代幣之前,它只是暫時無法進行外出的交易。存儲的數據在鏈上保持不變。有關餘額要求的詳細資訊,請參閱存儲質押實踐部分。
什麼是 NEAR 上的子帳戶以及誰控制它?
NEAR 子帳戶是指其 ID 以父帳戶 ID 為前綴的帳戶。例如,app.alice.near 是 alice.near 的子帳戶,且只有 alice.near 可以在該命名空間中建立帳戶。建立後,父帳戶並「不」控制該子帳戶。子帳戶完全獨立,擁有自己的存取金鑰、自己的 NEAR 代幣餘額以及自己的鏈上狀態。父帳戶的命名權限僅限於建立行為。請參閱 子帳戶章節 以取得完整說明。
NEAR 協議在帳戶方面與以太坊有何不同?
核心的架構差異在於帳戶結構。Ethereum 有兩種獨立的帳戶類型:外部持有帳戶(由單一私鑰控制,無程式碼)和合約帳戶(由程式碼控制,無私鑰)。NEAR 採用統一帳戶模型,任何 NEAR 帳戶都可以同時持有代幣餘額和已部署的智能合約。NEAR 帳戶也支援具有不同權限範圍的多個存取金鑰,而 Ethereum 帳戶則各自由單一私鑰控制。NEAR 帳戶 ID 可以是人類可讀的具名帳戶,而 Ethereum 地址則始終是十六進位字串。請參閱 完整比較表 以查看並列對照。
NEAR 上的完全存取金鑰 (Full Access Key) 與函式呼叫存取金鑰 (Function Call Access Key) 有何區別?
「完全存取金鑰 (Full Access Key)」對帳戶擁有不受限制的權限:它可以授權代幣轉帳、部署合約以及新增或移除其他金鑰。完全存取金鑰是帳戶擁有者最高信任的憑證,應儲存在硬體錢包或離線環境中。而「函式呼叫存取金鑰 (Function Call Access Key)」的權限範圍僅限於呼叫特定合約上的特定方法,並可選擇性地為 Gas 費提供 NEAR 代幣額度。它無法轉移代幣餘額或修改其他金鑰。完全存取金鑰供帳戶擁有者使用;函式呼叫存取金鑰則核發給 dApp,以在不要求完整帳戶存取權限的情況下實現類似工作階段 (session) 的互動。請參閱金鑰比較表以瞭解完整分析。
NEAR 帳戶 ID 看起來像什麼樣子?
NEAR 帳戶 ID 有兩種形式。命名帳戶看起來像可讀的使用者名稱或網域名稱:alice.near、myprotocol.near、app.alice.near。隱含帳戶是源自於公鑰的 64 個字元十六進位字串,在視覺格式上類似以太坊地址但更長:例如 98793cd91a3f870fb126f66285808c7e094afcfc4b4a2ca57271d8b8b6a4a7c0。命名帳戶在主網上使用 .near 後綴,在測試網路上則使用 .testnet。請參閱 帳戶 ID 章節 以取得完整說明和比較表。
NEAR Protocol 是權益證明嗎?
是的。NEAR Protocol 使用權益證明 (PoS) 共識機制。驗證者質押 NEAR 代幣以參與區塊生產並賺取協定獎勵。驗證者帳戶是部署了質押合約的標準 NEAR 帳戶,這說明了統一帳戶模型的實際應用。驗證者質押是與儲存質押分開的機制;兩者都會鎖定 NEAR 代幣,但用途完全不同。
重點摘要與後續步驟
NEAR 帳戶模型在單一架構中,統一了帳戶身份、權限以及鏈上儲存管理。與其將使用者帳戶與合約帳戶分離,或將每個帳戶限制為單一私鑰,NEAR 直接將靈活性與範圍性權限整合到帳戶層。
關鍵要點:
- NEAR 帳戶 ID 是易於辨識的具名帳戶(例如:
alice.near),或是源自公鑰的 64 字元隱式帳戶,而非十六進位地址 - 具名帳戶在註冊時需要儲值 NEAR 代幣;隱式帳戶則在首次接收代幣時自動啟用
- 每個 NEAR 帳戶可以同時持有複數個存取金鑰,每個金鑰都有不同的權限範圍
- 全權限金鑰(Full Access Keys)可授權所有帳戶操作,並歸帳戶所有者所有;函式呼叫金鑰(Function Call Access Keys)的權限範圍僅限於特定的合約方法,並發放給應用程式使用
- 任何 NEAR 帳戶都可以同時持有 NEAR 代幣餘額與部署的智能合約。並沒有獨立的合約帳戶類型
- 存儲質押(Storage staking)需要鎖定與鏈上存儲消耗量成比例的 NEAR 代幣餘額。這是一筆可退還的儲值金,而非手續費,且與燃料費(Gas fees)及驗證者質押(Validator staking)不同
- 子帳戶遵循層級命名規範,但母帳戶在建立子帳戶後並不會對其進行控制。每個子帳戶都是完全自主的
準備在 NEAR 上開發的開發者,可以從 NEAR Protocol 帳戶模型文件,) 開始,其中提供了技術規格和 SDK 參考資料。有關質押儲存的具體細節和目前費率參數,在做出架構決策之前,請參閱 官方 NEAR 儲存質押文件),因為協議參數可能會透過治理進行變更。創建其第一個 NEAR 帳戶的使用者,可以透過 NEAR 兼容的錢包介面進行,例如 MyNEARWallet 或 Meteor Wallet。
技術準確性說明:NEAR Protocol 是一個活躍且不斷演進的區塊鏈。技術規格,包括儲存質押費率和帳戶創建要求,可能會隨著協議更新而改變。在做出開發決策之前,請根據官方 NEAR Protocol 文件驗證目前的規格。