本文作为波卡协议的高级介绍,其中包含可能特定于波卡的术语、与您可能使用过的其他链的显着差异以及处理该链的实用信息。
通证
通证小数:
- 波卡 (DOT):10
- Kusama (KSM):12
基础单位:“普朗克”(Planck)余额类型:u128更多关于u128标准的信息参见:https://doc.rust-lang.org/std/u128/index.html
重定货币单位
波卡进行了一次投票,该投票于2020年7月27日结束(区块888888),在投票中,利益相关者决定重新设定DOT通证的货币单位。重新设定并不改变网络中的基本单位(在波卡中称为“plancks”)的数量。唯一的改变是,单个DOT通证将是1e10 plancks,而不是原来的1e12 plancks。请参阅波卡的博客文章以了解详细信息和投票结果:https://medium.com/polkadot-network/the-first-polkadot-vote-1fc1b8bd357b)
重新设定货币单位在转账启用后72小时生效,即在区块1248326,大约在2020年8月21日16:50 UTC发生。
地址
在波卡(和大多数 Substrate 链)中,用户账户由32字节(256位)的AccountId标识。这通常(但并非总是)是加密密钥对的公钥。
波卡(和 Substrate)使用SS58地址格式。这是一种广泛的“元格式”,旨在处理许多不同的加密方案和链。它与比特币的Base58Check格式有很多相似之处,如版本前缀,基于哈希的校验和后缀以及基于58的编码。
有关编码信息和更全面的网络前缀列表,请参阅Substrate文档中的SS58页面:https://docs.substrate.io/fundamentals/accounts-addresses-keys/#address-encoding-and-chain-specific-addresses
不要使用正则表达式(REGEX)验证地址,始终使用地址的前缀和校验和进行验证。Substrate API Sidecar提供了accounts / {accountId} / validate路径,该路径为提供的地址返回一个布尔值isValid响应。
本指南的相关SS58前缀:
- 波卡:0
- Kusa
ma:2
- Westend:42
密码学
波卡支持以下加密密钥对和签名算法:
- Ed25519
- Sr25519 - 基于Ristretto组的Schnorr签名
- 基于secp256k1的ECDSA签名
请注意,secp256k1密钥的地址是公钥的哈希的SS58编码,以便将公钥从33字节缩减为32字节。
存在存款
波卡和大多数基于Substrate的链使用存在存款(Existential Deposit,简称ED)来防止粉尘账户使链状态膨胀。如果一个账户低于ED,它将被收割,即从存储中完全删除并重置nonce。波卡的ED是1 DOT,而Kusama的是33.3333 microKSM(0.0000333333 KSM)。您始终可以通过检查balances.existentialDeposit常量的链状态来验证存在存款。
同样,如果您将价值低于ED的转账发送到新账户,它将失败。托管钱包应设置大于ED的最低提款金额,以保证提款成功。
为了审计目的跟踪账户 nonce 的钱包和托管人应注意不要有账户被收割,因为用户可以退还地址并尝试从中进行交易。Balances pallet提供了一个transfer_keep_alive函数,如果这样做会导致收割发件人的账户,它将返回错误并中止而不是执行转账。存在存款是中继链的财产:您在中继链上的账户对平行链没有直接影响,因为您在每个平行链上都有单独的账户。尽管如此,平行链仍然能够定义自己的存在存款,但这与中继链ED的存款是分开的。STATEMINT的存在存款:Statemint平行链的存在存款 (0.1 DOT) 低于中继链 (1 DOT),交易费用也较低。强烈建议在Statemint上处理余额转账。Statemint集成将在之后的知识图谱中进行下一步讨论。
自由、保留、锁定与兑换金额
账户余额信息存储在AccountData中。波卡主要处理两种余额:自由(Free)余额和保留(Reserve)余额。
对于大多数操作,免费余额是您感兴趣的。它是例如质押和治理中账户的“力量”。保留余额代表一些操作已经把资金留出,仍然属于账户持有人,但不能使用。
锁定(Lock)是对自由余额的抽象,防止花费用于特定目的。多个锁定可以在同一账户上操作,但它们是重叠而不是相加的。当网络上执行任务时(例如租用平行链插槽或投票),锁定的余额会自动添加到账户上,这些不是可定制的。例如,一个账户可以有200 DOT的自由余额,带有两个锁定:150 DOT用于转账目的和100 DOT用于保留(Reserve)目的。该账户无法进行使其自由余额低于150 DOT的转账,但操作可能会导致保留DOT,使得自由余额低于150但高于100 DOT。
在治理公投中用于质押和投票的绑定代币都使用锁定。
兑现(Vesting)是另一种使用自由余额锁定的抽象。归属设置了一个锁定,该锁定会随着时间的推移而减少,直到所有资金都可以转账为止。
波卡的余额形式对于用户来说拥有了更多保护功能和操作上的灵活性,当然波卡还有更多额外的基础属性和设置,比如外源(Extrinsics)和事件(Events),我们将在下一期的知识图谱中为大家详细介绍。