智能合约,相关的签名及验签。
很常见的签名、验签算法。
Signature(最旧的签名格式)
type Signature struct {
C Key
R Key
}
// 示例(不一定完全正确):
// e = Hs(M | kG | xG)
// s = k - xe
// The signature is the pair, (s, e)
// C -> e 哈希处理,加密消息
// R -> s 签名
方法:
signature_Generate_I
输入:
原始消息、公钥、私钥、随机数
输出:
签名
Signature_Generate
创建交易时,如果交易包含了“合约”,则需要对合约进行签名。
// this creates a signature
输入:
原始消息、公钥、私钥
输出:
签名
封装了 signature_Generate_I
Signature_Verify
主要是执行合约代码之前要对“合约”验签。其次,前端浏览器展示之前也做了验签。
// verifies a signature generated above
输入:
原始消息、公钥、签名
输出:
验签结果(签名正确与否)