• 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,需要用自己私钥签名,对方用我的公钥解密就可以验证了。

  • 相关阅读:
    CodeForces1422A
    C++
    2020第十一届蓝桥杯第一场 B组 C/C++
    Aizu0118
    POJ1979
    monkey 稳定性测试
    adb shell 杀进程以及端口占用,adbserver服务重启失败
    windows查询端口,杀进程
    apk 测试入门基本操作
    解决 genymotion 安装apk报错 app contains ARM native code and your Genymotion device cannot run ARM instructions
  • 原文地址:https://www.cnblogs.com/carlous/p/11033171.html
Copyright © 2020-2023  润新知