• 区块链流程的简单认识


    大概了解了一下,可能有问题。

    主要来自ppt(github)

    有一些内容来自网络

    另外可以到知乎搜索相关内容

    https://blog.csdn.net/kaihuiguoji/article/details/91974530

    https://www.jianshu.com/p/7d86785496c6

    https://blog.csdn.net/jsjwk/article/details/81671619

    中本聪的区块链算法。

    每个user有一对公匙私匙(多对,一人多身份)-->问题,某节点被截获则可能会被冒充

    重要的概念是交易,块

    挖矿:

    随机数+HASH->256位前10位是0.(这是一个难问题),找到随机数就是解开了这个问题,会被奖励比特币

    问题:

    双重支付问题,拜占庭将军问题。

    双重支付问题:比如同一付款码在不同地点同时支付。(微信限制了此时不能截屏,同时短时间内就会改变图案)

    过程

    两个对象做交易时将交易广播,验证(比如A给B支付比特币,其他节点根据记录验证A是否有足够的比特币),其他节点验证成功会将交易记录到自己的块(非区块链中的块,是临时的一个记录一段时间的交易的块),然后对该块做算法(区块+nonce)(上面说的HASH),成功后广播全网,其他节点验证这个块和该节点算出来的随机数是否正确,若正确(多数节点验证正确),则将该块加入区块链。

    例子:

    A->B的交易,A在支票上用B的公匙加密,然后用A的私匙签名,这是一条交易,这样所有节点都可以知道是A发送的交易,就可以验证A的余额是否充足,是否存在重复支付,但是只有B可以获得货币。

    当交易被A广播,大部分节点认为没问题,则整体上认为该交易没问题,则每个节点写入自己的记录的块。

    这样每个节点都有块,记录着还没有加入区块链的很多交易。

    而先做出来算法的节点的块,广播全网(包括块和一些信息用于验证),验证后会被加入区块链,该节点被认为拥有该块。然后所有的节点都保存了这个被认为是正确的块,相当于这一段时间被记录的交易被保存到区块链中(所有节点都保存该块,都保存了相关交易记录)。

    块的结构:

    prev block  区块链上前一块的hash值

    merkle root 当前块交易信息的hash值

    Nonce,算出随机数的节点,将随机数记录到Nonce

    timestamp 时间戳

    ....

    Txh Txh Txh...   (该块记录的交易)

    验证时根据根据区块链中该块的merkle root 和该块中交易的hash值相等即可。

  • 相关阅读:
    大学生程序猿IT情书“2014爱的告白挑战赛”获奖名单及优秀情书展示系列之
    Codeforces 385C Bear and Prime Numbers
    CSU1659: Graph Center(最短路)
    新版ADT出现appcompat_v7的问题
    @IBDesignable和@IBInspectable
    FTP命令详解
    R语言屏幕输出
    R语言常用基础知识(入门)
    R语言数据类型转换
    使用建议(内部使用)
  • 原文地址:https://www.cnblogs.com/lqerio/p/12098792.html
Copyright © 2020-2023  润新知