加密算法

  除了哈希算法以外,比特币中还存在一种为交易加密的非对称加密算法(椭圆曲线加密算法)。  非对称加密算法指的就是存在一对数学相关的密钥,使用其中一个密钥进行加密的数据信息,只有使用另一个密钥才能对该信息进行解密。  这对密钥中,对外公开的密钥叫作公钥,不公开的密钥就叫作私钥。公钥就像银行的账户,私钥就像是该账户的密码或者账户所有者的签名。  区块链之上的有效交易有一个用于交易发起方私钥签名有效的数字签名,而该交易的签名可以通过使用交易发起方的公钥进行验证。公钥可以通过算法从私钥中计算得出,但私钥却不能从公钥中推出。  比特币系统中使用的就是一种非常典型的非对称加密算法——椭圆曲线加密算法(ECC)。  比特币系统一般从操作系统底层的一个密码学安全的随机源中取出一个256位随机数作为私钥,私钥总数为2256 个,所以很难通过遍历所有可能的私钥得出与公钥的对应的私钥。  用户使用的私钥还会通过SHA256和Base58转换成易书写和识别的50位长度的私钥,公钥则首先由私钥和Secp256k1椭圆曲线算法生成65字节长度的随机数。  一般情况下,比特币钱包的地址也由公钥所生成,其生成过程为首先将公钥进行SHA256和RIPEMD160双哈希运算,并生成20字节长度的摘要结果(即Hash160结果),这个将作为比特币地址的主体(body)信息,再在前面加上版本前缀0x00,在后面添加4个字节的地址校验码。地址校验码通过对摘要结果进行两次SHA256运算,取哈希值的前4位产生。最后通过Base58处理把连在一起的版本前缀、主体信息和校验码转换成可以容易让人识别的比特币字符地址。

加密算法

扫一扫手机访问

发表评论