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

  • 相关阅读:
    sql查询指定表外键约束
    C#6.0新特性
    事务嵌套
    怎么在项目中应用委托
    单线程与多线程
    winform线程下载网页信息
    Linux笔记 FHS目录结构
    Linux笔记 Linux文件系统
    Linux笔记 软件管理
    Linux笔记 vi/vim编辑器
  • 原文地址:https://www.cnblogs.com/carlous/p/11033171.html
Copyright © 2011-2022 走看看