• 区块链技术--比特币


    比特币(BTC):是一种数字货币,去中心化(P2P网络),加密解密技术,区块链分布式记账(公开、透明、可追溯特点)等技术实现

    比特币怎么产生的呢?挖矿产生的。

    挖矿公式:HASH(已知数(上一个区块的hash值)+ 未知数(随机产生))  > 比特币规定难度系数

    挖矿流程:当矿工在经过多次算力后满足上面公式之后,就认为他挖矿成功了,他会基于在上一个区块后新生成一个区块,然后打包广播给其他节点,让其他节点从自己这个新生产的区块重新开始挖矿。

    那么其他节点怎么判断这个广播区块是不是这个链上的呢?他们可以拿到新生产区块的未知数和上一个区块的hash值带入上面的公式可以进行验证。

    怎么保证矿工新生成的区块是安全的呢?每个区块都是用公钥加密的,只有矿工的密钥才能解密。

    理论上只要一个的算力足够强大就可以更改区块链路,因为每个矿工用自己的算力投票的结果,理性的矿工会投票给最可能成为最长链的区块。

    举例说明:

    0-->1-->2-->3-->4

    比如上面这个区块链发展到第4个区块的时候,这时候同时有两个矿工(A,B)挖到比特币了,然后进行新生产区块并打包发布,A发给他的邻近节点的矿工,B发给他邻近的节点的矿工,他们邻近节点都认为当前的这个链路是最长链的区块,后面他们就按照自认为最长的链进行挖矿,就导致了下面这种硬分块的情况:

    0-->1-->2-->3-->4-->5(A)-->6-->7-->8

    0-->1-->2-->3-->4-->5(B)-->6

    经过一段时间后,B这条链都不被其他矿工认可了,因为他们发现还有更长的链,都放弃B这条链了,选择从A这个链上开始挖矿。

    但是只要A的算力强大,他一直坚持自己的这条链,总有一个时刻自己会成为最长的链。所有只要所有的矿工一起从某个链开始挖矿,是可以很轻松摧毁比特币的。

  • 相关阅读:
    十问5.12汶川大地震
    JZ035数组中的逆序对
    JZ037数字在排序数组中出现的次数
    JZ039平衡二叉树
    JZ033丑数
    JZ040数组中只出现一次的数字
    JZ032把数组排成最小的数
    JZ036两个链表的第一个公共结点
    JZ034第一个只出现一次的字符位置
    JZ031从 1 到 n 整数中 1 出现的次数
  • 原文地址:https://www.cnblogs.com/xubiao/p/8521017.html
Copyright © 2020-2023  润新知