美文网首页
区块链几个相关概念简述

区块链几个相关概念简述

作者: ag4kd | 来源:发表于2019-11-04 23:27 被阅读0次

    BlockchainDemo 从这网站上,可以得到以下信息

    image.png
    A blockchain is a distributed database secured by cryptography. It is the technology behind Bitcoin.
    
    This demo will guide you through the blockchain step-by-step. This demo is also covered in this Medium article with freeCodeCamp. For an understanding of cryptocurrency transactions, checkout Coin Demo.
    
    To jump between steps, hover on the title of this dialog and select a step.
    

    一 什么是区块链

    1. 区块链是由密码学保护的分布式数据库(此句话足以阐述区块链是啥),比特币(一个区块链应用)背后的技术就是它.
    2. 区块链有一个区块的列表,这个列表从一个单独的区块开始,这个单独的区块叫做创世区块.

    二 区块的属性

    每个区块存储了以下信息:IndexTimestampHashPrevious HashDataNonce

    2.1 index

    是区块在其所在的链上的索引值,创世区块的索引值为0.下一个区块的索引值为1,……依次递增

    2.2 timestamp

    记录了这个区块的创建时间,时间戳有助于保持区块链的顺序。

    2.3 区块的 hash

    2.3.1 hash

    散列值:看起来像是一串随机数字和字母,它是唯一标识数据的字母数字值,或数据的“数字指纹”。它是唯一标识数据的字母数字值,或数据的“数字指纹”。

    • 哈希的属性:
    • 哈希有固定的长度。
    • 相同的数据总是映射到相同的散列。
    • 不同的数据总是映射到不同的散列(在实际限制内)。
    • 很容易计算。
    • 将哈希转换为数据是不可行的。
    • 数据的一个小变化会导致散列的一个大变化。

    2.3.1 valid hash

    有效散列


    image.png

    区块链的有效散列是满足一定要求的散列。对于上图这个区块链,哈希开头有三个0是有效哈希的要求。

    前导零的个数是挖矿的难度,后面再讲何为挖矿。

    2.3.2 hash 的计算

    f (data) =hash
    

    哈希函数将data作为输入,并返回一个惟一的哈希。由于哈希是整个块的“数字指纹”,所以数据是索引、时间戳、以前的哈希、块数据和nonce的组合。

    data = index + previous hash + timestamp + data + nonce

    f (index + previous hash + timestamp + data + nonce) = hash
    

    替换我们的genesis block的值,我们得到:

    f(0 + "0" + 1508270000000 + "欢迎来到区块链演示2.0!")+ 604) = 000dc75a315c77a1f9c98fb6247d03dd18ac52632d7dc6a9920261d8109b37cf
    

    2.3.3 前 hash

    前一个哈希是前一个块的哈希。

    genesis块之前的散列是“0”,因为没有之前的块。

    image.png

    2.4 data

    Each block can store data against it.

    In cryptocurrencies such as Bitcoin, the data would include money transactions.


    image.png

    每个块可以根据它存储数据。

    在比特币等加密货币中,数据将包括货币交易。

    2.5 nonce

    nonce是用来查找有效散列的数字。

    要找到一个有效的散列,我们需要找到一个nonce值,它将在与该块中的其余信息一起使用时产生一个有效的散列。

    三 挖矿

    f (index + previous hash + timestamp + data + nonce) = hash
    

    寻找到一个满足有效哈希散列的 nonce 值,这个过程就是挖矿。

    nonce从零开始依次递增,当我们找到一个满足要求的哈希散列值时的这个nonce值,称为一次成功的挖矿。

    随着难度的增加,可能的有效散列数减少。由于可能的有效哈希数较少,因此需要更多的处理能力才能找到有效的哈希。

    当输入data的值后,就可以开始去挖矿了,如果找到一个满足要求的nonce,则这个区块就会被挖矿成功,也称为打包完成。

    四 不可篡改性

    f (index + previous hash + timestamp + data + nonce) = hash
    

    对于当前区块来说,如果已经被成功挖矿,那么indexprevious hashtimestampnonce这几个量是固定的,是非人为因素决定的。因此data是求解该区块的哈希的输入变量,这个区块中主要的信息就是data,由于,因此更改数据将更改哈希,新散列不会有三个前导零,因此无效。

    哈希更改将导致后续块的前一个哈希发生突变。由于之前的散列用于计算散列,因此后续的散列也将发生变化。这将导致块的级联失效。

    4.1 有效区块

    有效区块满足下列要求:

      1. 该块索引大于最新块索引【非创世区块】。
      1. 该块中的前哈希值等于上一个区块的哈希值【非创世区块】。
      1. 块哈希满足难度要求【包括非创世区块】。
      1. 块哈希被正确计算【包括非创世区块】。

    说明:因为创世区块没有前区块,所以对于创世区块来说,满足上述的34就行了。

    五 点对点网络

    全球网络的计算机一起工作,以保持区块链的安全、正确和一致。

    相关文章

      网友评论

          本文标题:区块链几个相关概念简述

          本文链接:https://www.haomeiwen.com/subject/yqvjbctx.html