签名过程
账户所有权问题
2、账户所有权问题:签名和验证是逆运算
2、账户所有权问题:验证签名
2、账户所有权问题:签名过程
2、账户所有权问题:
2、账户所有权问题:
签名及验证
交易验证过程
广播交易信息
账户所有权的签名过程:
对交易进行hash运算,得到交易摘要
用交易摘要和用户的私钥进行签名得到,用户签名信息
如何正不泄露私钥的情况下证明我们拥有某个地址的私钥
12312312
比特币
地址来表示账号
私钥来表示密码,私钥可以推出地址,地址不能推出私钥
用交易签名(非对称加密技术)来表示拥有该地址:
交易进行hash得到摘要
用私钥对摘要进行签名
广播交易
验证
签名和验证互逆,摘要+私钥——签名,签名+付款地址——摘要
比特币原理:序号+时间戳+hash摘要信息 + 交易记录 组成一个区块,串联起来就是区块链,每个节点检验最后一个区块摘要信息就能知道这个节点信息是否正确。
账户所有权问题
银行系统:
比特币系统:点对点交易、没有第三方
账号->地址:,转账过程就是把比特币从一个地址转到另一个地址
密码->私钥:私钥进行两次哈希可以得到地址 不可反推
非对称加密技术(交易签名):
交易进行hash得到摘要
用私钥对摘要进行签名
广播交易
账户签名过程
签名和验证是“幂运算”
签名的过程(对摘要进行加密的过程):
sign(交易摘要,私钥)->签名
验证过程(对摘要进行解密的过程):
verify(签名,付款方地址)->交易摘要
非对称加密技术(交易签名)
前提:不泄露私钥
对交易进行hash得到摘要-》用私钥对摘要进行签名
签名过程:
1.对交易进行hash运算,得到摘要信息
hash('
{"付款地址":"2A39BaC2390FDe",
"收款地址","AAC9CBa239aFCC",
"交易金额","0.2btc"
} ') ->8aDB23CDEA6
2.对摘要信息(8aDB23CDEA6)使用私钥(J78sknJhidhLIqdngalket)进行签名,得到签名信息(
3cdferdadgadg")
sign("8aDB23CDEA6","J78sknJhidhLIqdngalket")->"3cdferdadgadg"
交易后的广播信息:
交易信息(
"付款地址":"2A39BaC2390FDe",
"收款地址","AAC9CBa239aFCC",
"交易金额","0.2btc"
)+签名信息(3cdferdadgadg)
其他节点接收到广播信息后的验证:
基于签名信息、付款方地址,返回的交易摘要:
veryfy("3cdferdadgadg","2A39BaC2390FDe")->8aDB23CDEA6
所有权问题,谁可以支配某个账户下的比特币
使用地址来代表账户;
一个地址一个私钥,私钥拥有着可以进行账户的支付
私钥泄露会导致账户内比特币丢失
地址与私钥为非对称关系,无法逆向推导
Hash(Hash(fun(私钥)))->地址
签名过程:
hash(交易)得到摘要
用私钥对摘要进行签名
好处:
保护隐私
安全,比如银行会冻结来路不明的资金
Obj : 付款地址 、收款地址、摘要、私钥、签名
私钥为主要* 不可以反推计算
Hash(原地址 ) -> 摘要
摘要+私钥 = 签名
判断所有权:
广播 付款地址 + 签名 反推-> 摘要
摘要一样 就是所有全发出的 !
私钥 : ******* (为主要) 1b2cdsawdaw45 私钥可以转换 签名,签名推理不回私钥 ,有了签名就可以交易 。
1b2cdsawdaw45 私钥 转换签名
AA2B4A3C 签名 可以交易
流程:
1. hash('原地址信息')-> 摘要
2.sign( 摘要信息,私钥) -> 签名
规则自己定!
签名及验证
签名验证过程
私钥签名过程
比特币系统:
点对点交易
没有第三方
非对称加密技术(交易签名)
交易进行hash得到摘要
用私钥对摘要进行签名
账户所有权问题:
补充
关于隐私
安全
账户所有权:
hash两次私钥得出比特币账户地址,反之不可以
非对称加密技术(交易签名)
交易进行Hash得到摘要
用私钥对摘要进行签名
签名过程:
hash交易信息得出摘要信息,sign摘要信息和私钥信息得出签名信息
广播交易:广播交易的原始信息和摘要信息,节点向与之相邻的节点广播
验证:verify签名信息和付款方地址信息得出交易摘要信息,写入账本进行广播
签名是加密过程,验证是解密过程,整个过程私钥控制
周围节点验证:用签名和付款方的地址进行运算,若结果和原始交易摘要相等,则通过
对交易进行hash得到摘要信息,对摘要信息和私钥进行签名得到签名信息
比特币交易计算公式:
注:地址代表一个比特币账号,私钥对应账户的密码;
地址=Hash(Hash(fun(私钥)))
交易摘要=Hash({付款地址,收款地址,交易金额})
签名=sign(交易摘要,签名)
验证=verify(签名,付款地址)=交易摘要
交易过程:
对交易记录进行Hash得到摘要
使用私钥对交易摘要进行签名
然后开始交易广播
其他节点验证
注: