WDC地址生成逻辑
一、 地址生成步骤
在wdc中,每个用户都可以生成自己的账户地址,账户地址是来自于生成的密钥对,其关系如下:
如图1所示,可以看到,在地址生成之前,有两个密钥会先生成,一个是私钥,一个是公钥,这是通过公开密钥算法生成的,在wdc系统中,采用的是椭圆线密码算法,具体说是Curve25519曲线,一个私钥必然对应着一个公钥,私钥必须妥善保存,公钥可以公开,而地址是根据公钥通过一个规则转化而来的。
生成步骤如下:
1)、通过25519曲线算法,生成密钥对,其中获得公钥,长度为32字节
2)、对公钥进行SHA3-256计算,获得结果为s1
3)、取得s1后面22字节,并且根据主网或测试网,分别增加前缀WX或WS,大写表示,获得结果为s2
4)、s2即为原始生成地址
5)、对s2进行地址校验和处理,得到结果s3
6)、s3为生成的地址
关于地址校验和
1)、对于上述步骤生成的s2进行所有字符的小写处理,得到r1
2)、将r1进行SHA3-256计算,得到哈希值r2
3)、将r1与r2进行字符比较,相同位置的字符,若对应哈希值的字符大于0x8则将r1中对应的字符转为大写(若是数字就不变)
4)、转化后的r1就是具备校验和能力的地址
二、 keystore生成逻辑
keystore是用来保存私钥的,其文件格式如下:
{
"address":