BTC-密码学简介(区块链技术与应用)
比特币中主要用到了密码学中的两个功能:
哈希
性质:
- collision resistance:无法人为制造哈希碰撞,很难找到两个不同的输入,得到相同的输出
- hiding:哈希函数计算是单向的,不可逆的 x->H(x)
- puzzle friendly: 比特币中用到的哈希函数要求的性质。事先不知道由x到H(x)映射的规则,只能一个一个去尝试,这个可以用来作为工作量证明(proof of work)
签名
asymmetric encryption algorithm(非对称加密算法):加密和解密用一对密钥:加密用public key,解密用private key,私钥不需要传输,由自己保存;加密和解密用的是“接收方”的一对密钥
比特币是去中心化的,开账户由自己决定,创立一个公私钥对(public key, private key)即是一个账户,公钥相当于银行账户,私钥相当于账户密码。
私钥对交易签名,别人可以用公钥验证。
eg:比如A要向B转账,即A在区块链上发起一个交易,所有交易是公开的,但大家怎么判断这个交易确实是A发起的,而不是别人冒名顶替的,这就需要A用户用自己的私钥对交易进行签名。其他用户拿到签名和交易信息后,可以用A的公钥去验证签名的正确性。
生成公钥私钥的过程是随机的,但要求选取一个好的随机源
比特币系统中的签名,一般是先对message取一个哈希,然后再对哈希值签名

浙公网安备 33010602011771号