地址转换工具
你可以使用以下工具转换任何网络的SS58地址,以便在不同网络上使用
- 便捷的subscan工具(详情请参见:
https://polkadot.subscan.io/tools/ss58_transform)
- 简单的地址转换器(详情请参见:
https://polkadot-address-convertor.netlify.app/)
如何验证公钥的关联地址
你可以通过一系列检查步骤验证公钥的关联地址,其中密钥是一个基础16(十六进制)地址。
1.使用Subkey从SS58地址读取公钥
这是为了展示SS58地址是基于公钥(又名“账户ID”)的。
Subkey工具的检查密钥(The Inspecting Keys)部分介绍了如何使用【inspect】命令重新计算密钥对的公钥和地址。
首先,针对账户地址运行检查命令,检查账户的波卡地址:
$subkey inspect1a1LcBX6hGPKg5aQ6DXZpAHCCzWjckhea4sz3P1PvL3oc4F
Public Key
URI`1a1LcBX6hGPKg5aQ6DXZpAHCCzWjckhea4sz3P1PvL3oc4F`is account:
Network ID/version:polkadot
Public key(hex):
0x192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce
Account ID: 0x192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce
SS58Address: 1a1LcBX6hGPKg5aQ6DXZpAHCCzWjckhea4sz3P1PvL3oc4F
注意:
"公钥(十六进制)"的十六进制字符串。这是你账户的公钥。
在公钥和--【public】参数上运行【inspect】命令,将返回默认网络(substrate)的SS58地址。
$subkey inspect--
public0x192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce
Network ID/version:substrate
Public key(hex):
0x192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce
Account ID:
0x192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce
Public key(SS58):
5CdiCGvTEuzut954STAXRfL8Lazs3KCZa5LPpkPeqqJXdTHp
SS58Address: 5CdiCGvTEuzut954STAXRfL8Lazs3KCZa5LPpkPeqqJXdTHp
使用--【network】标志,你可以定义要检查的网络,SS58地址将基于该网络。现在,使用--【network polkadot】运行【inspect】命令,就能返回原始波卡地址,从而验证公钥。
$subkey inspect--network
polkadot5CdiCGvTEuzut954STAXRfL8Lazs3KCZa5LPpkPeqqJXdTHp
Public Key
URI`5CdiCGvTEuzut954STAXRfL8Lazs3KCZa5LPpkPeqqJXdTHp`is account:
Network ID/version:polkadot
Public key(hex):
0x192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce
Account ID:
0x192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce
Public key(SS58):
1a1LcBX6hGPKg5aQ6DXZpAHCCzWjckhea4sz3P1PvL3oc4F
SS58Address: 1a1LcBX6hGPKg5aQ6DXZpAHCCzWjckhea4sz3P1PvL3oc4F
你会发现Subkey工具能识别正确的地址网络,并返回关联的公钥。公钥以十六进制字符串形式返回(即前缀为"0x")。对于两个SS58地址,返回的是相同的公钥。
2.地址验证
请查看以下案例:
如果你熟悉每个账户参数,可以自行在公钥字符串前加上"0x"前缀:
From: 向波卡账户支付DOT【Pay DOTs to the Polkadot】
【account:192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce】我们可以在地址前面加上"0x"前缀,得到【0x192c3c7e5789b461fbf1c7f614ba5eed0b22efc507cda60a5e7fda8e046bcdce】
使用便捷的subscan工具(详情请参见:
https://polkadot.subscan.io/tools/ss58_transform),你可以验证公钥与地址的关联。将你的公钥复制到"输入账户或公钥"(Input Account or Public Key)文本框中,然后点击底部的"转换"(Transform)。在右侧返回的基于你的公钥生成的波卡和Substrate地址,应该与你检查过的地址一致。
注:
可能需要向下滚动菜单才能找到基于Substrate的地址。你会发现许多网络也使用相同的Substrate地址。
你可以记住波卡地址以"1"开头,而Substrate地址一般以"5"开头(Kusama地址以大写字母开头),从而验证你的公钥。更多详情,请参阅地址(详情请参见:
https://wiki.polkadot.network/docs/learn-accounts#address-format)。
此外,还可以参考实用程序脚本(详情请参见:
https://github.com/w3f/utility-scripts),了解如何进行验证:pubkeyToAddress.js(详情请参见:
https://github.com/w3f/utility-scripts/blob/master/src/misc/pubkeyToAddress.js)演示了单个公钥如何解释波卡、Substrate或Kusama地址。
索引Indices
波卡地址可以有索引。索引类似于地址的缩写,易于记忆。要申请索引,需要抵押10DOT,押金在索引被清空后发放。如果未被他人占用,则可以申请任何索引。
但如果如上所述,某个账户被停用(Reaped)了呢?在这种情况下,索引就会清空。即该槽位会再次释放,可供任何人申请。可以冻结索引,并将其永久分配给某个地址。此操作需要消耗押金,索引将永久绑定到地址,且无法选择释放。
编者注:
账户被停用(Reaped)是指如果一个账户的余额低于存在存款(Existential Deposit),该账户将被停用,并且任何剩余资金都会被销毁。但是,可以随时通过存入大于存在存款的新存款来重新激活该地址。请注意,这不会恢复已销毁的资金。
在链上查询账户索引
当有人分享他们的账户索引时,可以通过Polkadot-JS Apps UI>Developer>Chain state>Storage,在indices pallet上选择状态查询来查找对应的账户地址。
下面为一个示例快照,展示如何使用Polkadot-JS Apps UI查找Westend网络(波卡测试网络)(详情请参见:
https://wiki.polkadot.network/docs/maintain-networks#westend-test-network)上账户索引1988的对应账户地址。输出结果显示了账户地址、存款金额和一个布尔标志,表明该账户是否被永久认领。
通过Polkadot-JS UI中的Developer->Extrinsics菜单,提交一个claim extrinsic到indices pallet来注册一个索引。这是最简单的方法:
向【indices】pallet提交【claim】extrinsic来注册索引。最简单的方法是通过Polkadot-JS UI的"开发者"(Developer)->"外源"(Extrinsics)菜单进行操作:
要在波卡或Kusama上找到可申请的指数,这个辅助工具(详情请参见:https://www.shawntabrizi.com/substrate-js-utilities/indices/)可能会派上用场。
如果要永久保留索引,可以使用上述的冻结【freeze】外置功能。
在DOT/KSM账户中使用ENS
以太坊名称服务ENS(Ethereum Name Service)是以太坊区块链上的一个去中心化开放智能合约系统,允许用户申请bruno.eth等域名。
ENS等效于DNS(域名系统)域名。不过,它提供了一种通过智能合约翻译文本的去中心化安全方式。支持钱包可以允许发送者输入ENS域名,而不是冗长和笨重的地址,从而防止网络钓鱼、欺诈、打错字,并为普通钱包用户体验增加了一层可用性。
注意:
在遵循本指南时,你需要一个ENS名称和一个有以太坊的以太坊账户。要注册ENS名称,请访问ENS App(详情请参见:
https://app.ens.domains/)或任何子域注册商,如Nameth(详情请参见:https://app.ens.domains/)。
请注意,如果使用的是旧版ENS名称,则应确保使用的是新的解析器(详情请参见:https://makoto-inoue.medium.com/ens-registry-migration-is-over-now-what-a-few-things-to-know-fb05f921872a)。访问ENS App时会发出警告。你还需要一些使用以太坊地址的方法--建议在个人电脑上按照本指南操作。像Frame(详情请参见:
https://frame.sh/)和Metamask(详情请参见:
https://metamask.io/)这样的钱包是安全的,可以让你通过浏览器与以太坊区块链轻松互动。
尽管在以太坊区块链上,ENS系统仍支持多链。在本指南中,你将经历向ENS添加KSM和DOT地址的过程。我们将介绍KSM和DOT两种不同的方法。
注意:
目前只能使用Resolver方法添加DOT。KSM可通过以下两种方法添加。
YouTube(详情请参见:
https://www.youtube.com/watch?v=XKjZk-5_mQc)上也有本指南的视频。
通过用户界面添加
ENS App(详情请参见:https://app.ens.domains/)允许ENS域名所有者检查绑定到域的所有记录,并添加新记录。
例如,域名【bruno.eth】附带了一个以太坊和一个比特币地址。现在,我们要附加一个KSM账户。首先,点击记录选项卡中的【+】图标。
然后选择"其他地址"(Other Addresses)和"KSM",输入Kusama地址:
单击保存后,你的以太坊钱包会要求你确认一项交易。完成后,该记录将显示在域名页面上:
DOT地址也可以通过类似的方式添加。
一旦交易被确认,你的地址将绑定到你的ENS域名上。
钱包支持
目前还没有钱包支持KSM或DOT的ENS名称,但加密会计和投资组合应用程序Rotki(详情请参见:https://rotki.com/)支持KSM ENS解析。
相关链接
- ENS文档(详情请参见:https://docs.ens.domains/)
- ENS多链公告(详情请参见:
https://medium.com/@brantly.eth/ens-launches-multi-coin-support-15-wallets-to-integrate-92518ab20599)
- 地址编码器(详情请参见:
https://github.com/ensdomains/address-encoder)
- Namehash计算器(详情请参见:
https://swolfeyes.github.io/ethereum-namehash-calculator/)
- Address to pubkey转换器(详情请参见:
https://www.shawntabrizi.com/substrate-js-utilities/)
将Polkadot-JS App账户/地址从一台计算机转移到另一台计算机
注意:
这将覆盖新计算机上具有相同公钥的现有账户。这通常不会产生影响(因为它仍然可以访问相同的账户),但如果你在旧计算机的扩展中存储了外部账户,而在新计算机上直接在浏览器中创建了该账户,则可能会产生影响。
在Brave和Chrome浏览器上进行了测试,但还未测试其他浏览器。
步骤:
1. 打开Polkadot-JS Apps。
2. 在浏览器中打开JavaScript控制台(可在开发人员工具中找到)。
3. 输入以下命令:
JSON.stringify(localStorage)
4. 复制返回的字符串,并将其保存到文本编辑器中。
5. 检查你粘贴的字符串是否以引号(').slice(1,-1); console.log(key+"->"+val); localStorage.setItem(key,val); } }
11. 刷新Polkadot-JS App浏览器,检查账户和地址页面。现在,你所有的账户和地址都可以使用。