关于区块链(三)
账户的所有权
传统银行系统:银行卡 + 密码
开户时会记录个人的信息用于该账号的所有权
比特币系统:
账号–〉地址:
转账信息(不含个人信息)
{
“付款地址” : “279749h8y8690dfohdihiy”
“收款地址” : “sweroj213409dkjuoonoij”
“金额” : “0.3btc”
}
谁能用付款地址进行支付谁就拥有对该账户的所有权
密码--〉私钥
地址: "279749h8y8690dfohdihiy"
私钥:shshhfihduhdihfihsihfihdihw8ihidhhfieuiu2i374
Hash(Hash(fun(shshhfihduhdihfihsihfihdihw8ihidhhfieuiu2i374))) --〉279749h8y8690dfohdihiy
对私钥进行 两次 hash 运算 即可得到 地址信息 ; 但地址无法反推得到私钥的信息
即私钥非常重要
如何在不泄漏私钥的情况下来证明我们拥有某个私钥?
使用非对称加密技术(交易签名)
交易进行hash 得到摘要
用私钥对摘要进行签名(要求安全,避免私钥泄漏)
签名过程:
hash('{
"付款地址" : "279749h8y8690dfohdihiy"
"收款地址" : "sweroj213409dkjuoonoij"
"金额" : "0.3btc"
}') --〉67khhhkhh7 (摘要信息)
用摘要信息和私钥进行签名运算
# sign(摘要,私钥)--〉签名信息
sign("67khhhkhh7" , "shshhfihduhdihfihsihfihdihw8ihidhhfieuiu2i374" ) --〉'jssofohfhfhe'
循环广播交易告诉所有的节点进行验证
广播内容:交易信息 签名信息
解密:
verify(签名信息,付款方地址) --〉摘要
关于隐私:
整个过程不包含个人信息
关于安全:
比特币系统:只要不泄漏私钥则账户安全