我想生成一个没有密钥的地址,以便它可以用作刻录地址 - 一个可以发送令牌并且永远不会从中检索到的地址。如何生成一个?
问问题
421 次
2 回答
2
你可以使用 PolkadotJS 的 keyring 子模块:
const { encodeAddress } = require('@polkadot/keyring');
const zero = '0x' + '00'.repeat(32);
const output = encodeAddress(zero, 2);
console.log(output.toString());
这输出:这是一个永远无法解锁的CaKWz5omakTK7ovp4m3koXrHyHb7NG3Nt7GENHbviByZpKp
Kusama 地址(由于上述原因) - 没有公钥的私钥。2
encodeAddress
0x0
或者,encodeAddress(new Uint8Array(32))
也可以使用 - u8a 用 0 初始化,对于随机地址,您可以使用encodeAddress(randomAsU8a())
.
于 2020-02-03T17:35:54.093 回答
2
我建议不要将你的代币发送到任意账户,而是将你的资金发送到金库地址(如果你的 Substrate 链上有一个)。
否则,考虑到余额模块的当前实施,一种更具技术性的烧钱方式将是利用存在存款逻辑。
基本上,如果一个账户的资金少于现有存款,这些资金就会被烧毁,链上的“总发行量”会正确减少。作为一个有一些资金的用户,你需要做的就是进行许多微交易,将少于存入存款的资金发送到一个空账户。这些转移都将导致余额真正从系统中销毁。
于 2020-02-04T10:13:08.287 回答