p1.BTC-密码学的原理

所谓加密货币是不加密的,区块链上所有的交易内容(包括:账户的地址,转账的地址)都是公开的。

Bitcoin中主要用到密码学的中的两个功能:Hash和签名。

一 Hash

Cryptographic hash function:

1.Collision resistance

  Hash碰撞其实很常见,因为输出空间是邮有限的,比如256位的Hash值,输出空间就2的256次方,但是输入空间是无限的。但是Collision  resistance是指目前没有有效的方法可以通过hash值反推输入值,只能通过Brutal Force破解。如果输入空间比较大,在实际破解中,就几乎不可行了。即,具有防篡改性。

ps:MD5算法已经不具备该特性了。(已经掌握了如何人为的制造Hash碰撞了)

2.Hiding

指的是Hash的计算过程是单项的,不可逆。但是依然可以考虑使用暴力破解。

ps:实际工作中,为了防止暴力破解,会采用拼接随机数nonce后(增大输入空间),计算Hash值。

 3.puzzle friendly

指的是Hash值事前是不可预测的,如果想hash落在某个范围内,只能一个个的去试。

Bitcoin中使用的hash函数是SHA-256 (secure hash Algorithm)

 

二 签名

   需要先知道Bitcoin中的账户管理机制,去中心化,想开户就是在本地创建一对(公钥,私钥),就代表一个账户。如果需要给某个账户转10个Bitcoin,需要用自己私钥签名,对方用我的公钥解密就可以验证了。

posted @ 2019-06-16 22:24  甜麦地  阅读(226)  评论(0编辑  收藏  举报