zoukankan      html  css  js  c++  java
  • hash的安全性

    在区块链中,我们面临着两个问题:

    • 隐私问题
    • 快速对账问题

    由于区块链中,每个人都存在着一个账本,当一个人有收入的时候,将会进行广播到所有人的账本,例如张三收入xxx钱,这样子所有的账本才能同步更新。但这种情况面临的问题是,我们并不想让别人知道我们收入了多少,这就是隐私问题。

    既然有广播,每个人的账本都能收到广播消息,当账本越来越多,消息越来越多,账本如何快速更新对账,同样是一个问题。

    哈希函数hash

    • 世界上没有两片完全相同的叶子
    • 每一个事物都有自己的特征

    Hash函数可以提取数据的特征

     md5是以前很多网站常用的加密方式,md5得到的位数是32位,但用它并不安全,彩虹表可以反向映射破解。

    于是人们用sha-1【安全哈希算法】,后来,谷歌公司发布了hash碰撞可能破解此算法 - 《Google研究人员宣布完成全球首例SHA-1哈希碰撞!》 ,于是此类sha-1算法也不可靠。

    区块链使用的全网唯一标识算法是 sha256 hash

    它的二进制位:

    sha256
    1001000001101011 0100000000001011
    1111010100001111 0111101000001000
    1011000110111110 0100111001101010
    1101011011110110 0100110101100010
    1111100001010000 0001011001011111
    1010001010101011 0100111110001001
    0000011110101000 1010110000001110
    1011111101010100 1100101111010101

    由于不可逆性,于是破解只能使用穷举法,它被破解的可能性为:

    • 2的256次方
    • 即 : 1.157920892373162e+77

    网上的说法是,如果要破解,银河系所有的服务器(假如计算力等于普通的一台电脑)加起来一起计算,也需要上百年才能有破解的可能性。

    比特币要点:

    • 比特币通过p2p技术实现账本的同步拷贝
    • 比特币通过增加发送信息的成本(pow)来增加信息传播的成本,降低信息传播的速率
    • 比特币通过区块链的长度,来判断数据的可信度
    • 交易中6个有效区块认为转账成功. 所以比特币的交易确认需要1小时
    • Pow通过sha256哈希来完成, 后面单独介绍
    • 工作证明的获取需要很长时间, 但是验证只需要很短时间.
    • 比特币的Pow算法导致大家通过矿池来挖矿, 矿池算力垄断. 有潜在的中心化风险.
    • 矿池挖矿只是在抢夺记账权,获得比特币,消耗大量电力,并无实际价值,我国计划取缔挖矿.

    比特币的价值

    • 区块链可以让物质的转移像信息流动一样快速便捷,同时又由全网的人一起来担保(全部参与的人一起担保就相当于天然存在存在不可证伪,除非其中51%的人统一口径违约),来保证在虚拟世界中的物质转移的可靠。
    • 价值转移
  • 相关阅读:
    Yii数据库操作增删改查-[增加查询更新删除 AR模式]
    Yii2 关于时间格式的用法
    常用Linux命令
    数据库设计规范
    PHP代码规范
    git fetch 的简单用法:更新远程代码到本地仓库及冲突处理
    yii2 URL重写 nginx的配置
    Linux下免安装mysql
    在CentOS下搭建自己的Git服务器
    开源技术推荐之个人使用心得
  • 原文地址:https://www.cnblogs.com/zhenghongxin/p/10284711.html
Copyright © 2011-2022 走看看