对于比特币,如何证明你发出的支付信息是你发出的呢?如何确保发出的信息不被篡改呢?换言之,如何控制自己的比特币呢?这就涉及到一种叫数字签名的技术了。 我们用支付宝付款时,需要输入密码或通过其它方式验证身份,借以控制自己的账户。对于比特币,如何证明你发出的支付信息是你发出的呢?如何确保发出的信息不被篡改呢?换言之,如何控制自己的比特币呢?这就涉及到一种叫数字签名的技术了。 与银行开户不同,比特币的账户无需申请注册,可随机生成。首先,我们可以随机生成一个私钥,私钥也是一个256位的二进制数。抛256次硬币,正面朝上记成1,反面朝上记成0,这样也能随机生成一个私钥。然后用椭圆曲线数字签名算法(ECDSA)对私钥进行运算,生成公钥,再对公钥进行哈希运算,就得到了地址。私钥生成公钥的过程也是不可逆的,从公钥无法反推私钥,想试出私钥得试到天荒地老。用椭圆曲线数字签名算法生成的公钥可以配合私钥,进行非对称加密。
比特币里,私钥可以用来加密信息,而公钥则用来解密该信息。比特币里没有人的概念,只有地址的概念,提到你有多少个比特币,其实是说你的地址上有多少个比特币。那要怎么才能控制你地址上的币呢?就要靠私钥。公钥和地址都可以公开,但私钥一定不能泄露。 比如小明要给小强一个比特币,小明的比特币地址是A,小强的比特币地址是B,小明就要将“A地址给B地址一个比特币”这条账单进行哈希运算,得到的哈希值再用A地址的私钥加密,加密得到的密文连同A地址的公钥、“A地址给B地址一个比特币”这条账单一起,广播出去。收到该信息的人会进行检查,计算公钥得到地址,判断该信息中公钥和地址是否对应,再用公钥把密文解密成哈希值,同时也对账单进行哈希运算,得到另一个哈希值。这时候比较一下两个哈希值,如果哈希值相同,就说明这条信息确实是地址的主人发出的,也没有被篡改。
可以看出,私钥犹如地址对应的一支独一无二的签字笔,能签出独一无二的签名,证明你是对应地址的主人,所以我们也把该过程称为数字签名。你用私钥签名了,你这个地址的付款信息才会被别人接受。要是你丢了私钥,你就无法使用地址上的币,尽管你地址上有多少币都是清清楚楚地记录在区块链账本上的。要是别人知道了你的私钥,他就可以转走你地址上的币,比特币的世界里,是只认私钥不认人的。所以,说私钥安全性重于泰山也不为过。 不过,私钥并不像登录时输入的密码,它本身是可以完全不触网的,完全可以在离线状态下对付款信息签名(其实就是用私钥加密付款信息的哈希值),然后把付款信息和签名信息发送到网上即可,别人也无法从签名反推私钥,这是由椭圆曲线数字签名算法的性质决定的。比特币的“钱包”,存放的不是币而是私钥,所谓的“冷钱包”就是不联网的钱包,可以有效防御黑客盗取私钥。用比特币钱包付款时输入的密码,实际上起到的作用是授权调用私钥进行签名,而非是私钥本身。 由于地址之类信息用二进制表示非常长,比特币采取了一种叫Base58的编码方式,将二进制数转换成58进制数表示,所以我们看到的地址之类信息就是一串大小写字母和数字的组合。
需要补充的是,比特币记账实际上是UTXO(未花费的交易输出)模型,比特币的账户余额实际上是地址上的UTXO总和。UTXO模型类似于不断销毁用掉的旧币又不断创造可用的新币,感兴趣的朋友可以深入了解UTXO模型,这里不再赘述了。 特别提示:以上观念仅为大财配资传播分享学习心得与笔记,有关信息均摘自干流媒体,据此操作,危险自负。 本文来源:大财配资小助理 —- 编译者/作者:大财配资小助理 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
比特币的数字签名与安全问题
2020-08-27 大财配资小助理 来源:火星财经
相关阅读:
- 人类可读钱包能否加速区块链技术普及?2020-08-27
- 行情分析我等的花儿都谢了主流大行情还是没来2020-08-27
- 币圈大白:我等的花儿都谢了主流大行情还是没来2020-08-27
- 如何设置比特币钱包地址?比特币如何购买呢?2020-08-27
- 比特币资本希望通过其交易所交易产品来促进大规模加密货币的采用2020-08-27