原文链接:《对 DFINITY 的去中心化身份、账户与钱包介绍,开发者能如何利用?》 6 月 3 号,ICP League 联合社区开发者举办了第二期的开发者电话会,探讨了 DFINITY 的底层账户结构,以及上层去中心化身份认证的方式,介绍了两者的联系方式。 本期亮点:
账户地址一般用户在互联网身份的包装下并没有接触到转账地址,但 DFINITY 作为区块链系统具备与比特币 / 以太坊类似的账户,账户验证的主要机制是经典的数字签名方案。即从种子派生公私钥对,并将公钥匙处理编码为字符串地址,通过私钥签名发送交易,使用公钥验证鉴别交易。 在选取的算法上,DFINITY 的账户与比特币更相似, 以 Python ECDSA 和 secp256k1 为主,如果使用已有的比特币账户在 DFINITY 上能生成一样的公钥,但在地址表现形式上有所不同。 DFINITY 的账户地址的长度为 64 个字符,这种格式只用于表示普通账户,DFINITY 容器(合约)使用专门的 23 位的容器 ID 表示,并 5 个字符串一组,用「-」隔开,如「h5aet-waaaa-aaaab-qaamq-cai.raw」,加上「https」与「.ic0.app」后可以在浏览器直接访问,如「https://h5aet-waaaa-aaaab-qaamq-cai.raw.ic0.app/」。这是其与以太坊账户体系一个很大的不同。 在 nns.ic0.app 下的 Accounts 下能看到这些账户地址,可以直接用于 ICP 的转账,但目前还没有易用的加密原生钱包。 但官方其实开源了这类钱包的实现方法,在 keysmith 库 中实现了一个命令行钱包。 互联网身份(II)DFINITY 在账户系统外又开发了一套身份系统称之为「互联网身份(Internet Identity)」,以下简称 II。II 是部署在 DFINITY 的一个智能合约,智能合约的状态存储中对地址与身份建立了映射。 注意的是,身份和钱包账户是两回事。以太坊上钱包地址就是你使用应用的身份,但是在 DFINITY 中,身份是与钱包账户分开,两者不耦合的,但来自同一源头的公私钥对,而且可以互相演化的。 (责任编辑:admin) |