BTC-密码学原理

BTC-密码学原理,第1张

BTC-密码学原理

加密货币不加密,区块链上所有的交易内容都是公开的,包括账户的地址,转账的金额等。
比特币主要用到了密码学中的哈希函数和签名的功能。

哈希函数 cryptographic hash function

密码学中用到的哈希函数,有两个性质:

collision resistance.
collision:哈希碰撞—两个不同的输入值,算出来的哈希值都是一样的指:没有什么高效的方法人为地制造哈希碰撞。用于防篡改:对于原始正确数据计算哈希,在取值时对比取到的值的哈希和原始值的哈希是否一致,由于该条性质的存在,当哈希值不一致时,判定为取到的值与原始值不一致,即为篡改后的值。ps: MD5-一种哈希函数,但现已知如何人为地制造哈希碰撞。
hiding.
指:哈希函数的计算过程是单向的,不可逆的。给出一个输入值,可以计算出哈希值;但从哈希值无法反推输入值。即哈希值没有泄露有关输入值的任何信息。该条性质成立的前提是输入样本空间要足够大,且输入值的分布要比较均匀,各种取值的可能性差不多。用于:digital commitment(digital equivalment of a sealed envelope)
(1). sealed envelope:预测结果不能提前公开,否则可能影响结果。但预测结果需要提前完成,就会将这个结果放到sealed envelope中保存。
(2). 计算机世界中如何实现sealed envelope:把预测结果作为输入值算出一个哈希值,将这个哈希值公布,结果出来了之后再公布预测结果并计算两个哈希值。
(3). 实际 *** 作中当输入样本空间不够大时,在输入值后面拼接一个随机数。
puzzle friendly.

除了密码学中的哈希函数的性质外,比特币中的哈希函数还要求具有第三个性质:puzzle friendly.

指:哈希值的计算,事先是不可预知的。即光看输入,无法得知最后的哈希值会落在哪个范围,只能一个一个地去计算输入值。挖矿:找一个nonce(随机数),跟区块的块头里的其他信息合在一起作为输入,计算出哈希值要小于等于某一个指定的阈值。H(block header) <= target该性质可以作为工作量证明。 签名 public key, private key 创建账户:在本地创建一个公私钥对,即为一个比特币账户。asymmetric encryption algorithm 非对称加密体系
公钥加密,私钥解密。用的是同一个人(接收方)的公钥和私钥。加密用的公钥是不保密的,私钥是需要保密的,私钥保存在本地。在比特币中,公钥相当于银行账号,转账方只需要知道你的公钥就可以向你转账;私钥相当于密码,知道私钥就可以将账户的钱转走。对称加密体系:加密和解密用的是同一个秘钥,前提是假设有某种安全的渠道,可以保证将秘钥发放给通信双方。 公钥私钥用于签名

由于是分布式账本,链上的其他节点也需要更新账本信息。因此对一笔交易来讲,需要在区块链上验证其真实性和合法性。

转账方需要用自己的私钥对交易进行签名,其他人收到交易后,用转账方的公钥去验证这个签名。攻击:两个人生成的公私钥对一样,即可用于盗取另一方账户上的财产。理论可行,但实际概率可以忽略不计。a good source of randomness:生成公私钥的过程是随机的,选取的随机源要足够随机。 结合

比特币系统中,先对一个message取一个哈希,然后对这个哈希签名。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/924885.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存