COSMOS ED25519简析
tendermint加密算法采用ed25519, 测试用例:
/tendermint/privval$ go test -v -run TestUnmarshalValidatorKey ./*
ED25519编解码测试用例:
“privk”:0x8064e3909662a598345b9e5fd3d32d0bdc094fc809e9d6c0e1ca430c188ecfd4fb5447148c9788ff70f9cb3e27628bee64c933db2893820d3113698a370cd7d3,
“pubk”:0xfb5447148c9788ff70f9cb3e27628bee64c933db2893820d3113698a370cd7d3"
所以public为privkey的后32字节, private为64字节(base64编码后长度88(66/3*4)), public为32字节(base64编码后长度44(33/3*4))
cosmos-sdk的hash160地址是由publickey(PubKeySecp256k1, 33字节–32字节公钥+1字节的y坐标域)做hash运算, 后将结果做ripemd160运算得到:
hash160_addr = ripemd160(hash256(publickey))
测试一下csdn markdown编辑器好不好用, 随便写点东西