科普|波卡協議概覽

買賣虛擬貨幣

加入 PolkaWorld 社羣,共建 Web 3.0!

這篇文章是對 Polkadot 協議的概括介紹,主要會介紹 Polkadot 特有的術語、和其他鏈的顯著區別以及使用 Polakdot 的實用資訊。

DOT 代幣

代幣小數位數:12

餘額型別:u128

地址

在 Polkadot(和大多數 Substrate 鏈)中,使用者帳戶是一個 32 位元組(256 位)的 AccountId。這是 Substrate 使用的加密的公鑰。

Polkadot(和 Substrate)使用 SS58 地址格式。這是一種廣泛的“元格式”,旨在處理許多不同的密碼和鏈。它與比特幣的 Base58Check 格式有很多共同點,比如版本字首、基於雜湊的校驗字尾以及 base-58 編碼。

有關編碼和更全面的網路字首列表的資訊,請參見 Substrate wiki 中的 SS58 頁面。https://github.com/paritytech/substrate/wiki/External-Address-Format-(SS58)

本指南的相關 SS58 字首:(SS58 編碼前)

Polkadot: 0

Kusama: 2

Westend: 42密碼學

Polkadot 支援以下加密金鑰對和簽名演算法:

Ed25519

Sr25519 - Ristretto 群上的 Schnorr 簽名

secp256k1 上的 ECDSA 簽名

請注意,secp256k1 金鑰的地址是公鑰雜湊的 SS58 編碼,以便將公鑰從 33 位元組減少到 32 位元組。

小額存款

波卡使用小額存款(ED:existential deposit)來防止灰塵帳戶將狀態擠爆。如果一個帳戶低於 ED,它將被銷燬,即完全從儲存中刪除,並將 nonce 值重置。

出於審計目的追蹤賬戶 nonce 值的錢包和保管人應該注意不要讓帳戶銷燬,因為使用者可能會朝該地址退款,並嘗試與其進行交易。餘額模組提供transfer_keep_alive的功能(即在轉賬時保持賬戶存在的功能),使用了該功能後,如果一筆轉賬將導致銷燬傳送方的帳戶,則會返回錯誤並中止交易,而不會進行轉賬。

自由的 vs 保留的 vs 鎖倉的 vs 鎖倉待釋放的餘額

帳戶餘額資訊儲存在 AccountData 中。Polkadot 主要處理兩種型別的餘額:自由余額(free balance)和保留餘額(reserved balance)。

對於大多數操作,你可能感興趣的是自由余額。例如,它是一個賬戶在 staking 和治理方面的“權力”。保留餘額是指某項業務預留的資金,仍屬於賬戶持有人,但不能使用。

鎖倉(locks)是對自由余額的一種抽象,它暫時無法支出,只能用作某些特定目的。幾個鎖倉可以在同一個帳戶上操作,但它們是重疊的而不是相加的。例如,一個賬戶可以有 200 DOTs 的自由余額,上面有兩個鎖倉:150 DOTs 用於轉賬,100 DOTs 用於保留備用。帳戶不能進行導致自由余額低於 150 DOTs 的轉賬,但卻可以透過跟保留餘額相關的操作,導致自由賬戶低於 150 但高於 100 DOTs。

在治理公投中用於 staking 和投票的繫結代幣都是鎖倉的。

鎖倉待釋放的餘額(Vesting)是另一種使用了鎖倉的自由余額的抽象。Vesting 設定了一個鎖倉,隨著時間的推移,這個鎖倉會減少,直到所有的資金都可以轉移。

更多資訊:

可鎖倉的代幣:https://substrate.dev/rustdocs/master/frame_support/traits/trait.LockableCurrency.html

鎖倉撤銷的原因:https://substrate.dev/rustdocs/master/frame_support/traits/enum.WithdrawReason.html

Vesting:https://substrate.dev/rustdocs/master/pallet_vesting/index.html

外部元素和事件外部元素(Extrinsics)

外部元素包含了來自外部世界的資訊,它有三種形式:

內在因素(Inherents)

簽名的交易(Signed Transactions)

未簽名的交易(Unsigned Transactions)

作為基礎設施提供者,你將幾乎只處理已簽名的交易。但是,你將在你解碼的區塊中看到其他外部元素。你可以在 Substrate 文件中找到更多資訊。https://substrate.dev/docs/en/knowledgebase/learn-substrate/extrinsics

內在因素包含未被證明為真,但驗證人基於某種合理性的方法對其達成了一致的資訊。例如,時間戳無法被證明,但是驗證人可以一致同意它在系統時鐘的某個範圍內。內在因素並沒有在網路上 “八卦”,只有區塊生產者將其插入到區塊中。

已簽名的交易包含釋出交易的賬戶的簽名,並且需要支付費用才能將交易包含在鏈上。由於在鏈上包含簽名交易的價值可以在執行之前識別出來,因此它們可以在網路上的節點之間進行“八卦”,從而降低垃圾資訊的風險。簽名交易符合以太坊或比特幣交易的概念。

某些交易不能由手續費帳戶簽名,並且使用未簽名的交易。例如,當使用者從有 DOT 的以太坊合約向新的 DOT 地址進行對映的時候,新地址還沒有任何資金來支付費用。交易永存性

外部元素可以是有限期的,也可以是永存的。交易負載包括一個區塊號和一個區塊雜湊檢查點,交易從該檢查點開始有效,以及一個有效期(在某些地方也稱為 “era”),該有效期表示交易有效的檢查點之後的區塊數。如果此有效性視窗內的區塊中未包含外部項,則將從交易佇列中丟棄它。

鏈只儲存有限數量的先前區塊雜湊作為引用。你可以從鏈狀態或後設資料中查詢這個名為 BlockHashCount 的引數。該引數在 genesis 設定為 2400 個區塊(大約 4 小時)。如果有效期大於儲存在鏈上的塊的數量,那麼只要有一個要檢查的塊(即有效期的最小值和塊雜湊計數),交易才有效。

使用 genesis 雜湊將塊檢查點設定為零,有效期為零將使交易永存。

注意:如果一個帳戶被銷燬並且一個使用者重新為該帳戶提供資金,那麼他們可以重放一個永存的交易。務必預設使用有限期的外部元素。事件(Events)

外部元素代表來自外部世界的資訊,而事件則代表來自鏈的資訊。外部元素可以觸發事件。例如,當認領 staking 獎勵時,staking 模組發出獎勵事件,以告知使用者賬戶的獎勵金額。手續費

Polkadot 使用基於 weight 的費用,與 gas 不同,它是在排程前收取的。使用者還可以新增一筆 “小費” 來提高擁擠時段的交易優先順序。有關更多資訊,請參見交易費頁面。https://wiki.polkadot.network/docs/en/learn-transaction-fees編碼

Parity 的整合工具應該允許你處理解碼的資料。如果你想繞過它們直接與鏈資料互動或實現自己的編解碼器,Polkadot 使用 SCALE 編解碼器(https://substrate.dev/docs/en/knowledgebase/advanced/codec)對區塊和交易資料進行編碼。

智慧合約

波卡的中繼鏈不支援智慧合約。

其他網路

除了執行專用網路外,Polkadot 還有另外兩個網路,在部署到 Polkadot 主網之前,你可以在其中測試基礎結構。

Kusaam 網路:Kusama 是波卡的瘋狂表親。許多有風險的功能在在進入 Polkadot 之前,都會被部署到 Kusama。

Westend 測試網:Westend 是 Polkadot 的測試網,使用 Polkadot runtime。

其他問題如果沒有相應的鏈上交易,帳戶的餘額是否可以更改?

不,但並非所有的餘額變化都在一個交易中,有些是在事件中。你將需要執行一個存檔節點並監聽事件和交易以跟蹤所有帳戶活動。這尤其適用於鎖倉的操作,如果你將餘額計算為可消耗餘額,即自由余額減去最大鎖倉。什麼樣的鏈深度被認為是 “安全的”?

波卡使用確定性的最終機制。一旦一個塊完成,它就不能被還原,除非用硬分叉。為了取消 runtime 升級,Kusama 已經有了硬分叉,它還原了四個最終確定的塊。使用 10 個區塊的最終深度應該是安全的。

請注意,在 Polkadot 中,區塊生成和終結是獨立的過程,鏈可以有一個長的未完成區塊頭。使用者需要與任何智慧合約互動嗎?

不,使用者直接與鏈的邏輯互動。波卡有狀態租賃嗎?

沒有,Polkadot 使用小額存款來防止灰塵帳戶和其他經濟機制,如為使用狀態的操作鎖定或保留代幣。

檢視當前鏈高度的外部源是什麼?

Polkadot JS 瀏覽器:https://polkadot.js.org/apps/#/explorer

Polkascan 區塊瀏覽器:https://polkascan.io/

原文:https://wiki.polkadot.network/docs/en/build-protocol-info

翻譯:PolkaWorld 社羣

歡迎學習 Substrate:

https://substrate.dev/

關注 Substrate 進展:

https://github.com/paritytech/substrate

關注 Polkadot 進展:

https://github.com/paritytech/polkadot

免責聲明:

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

推荐阅读

;