玩币族移动版

玩币族首页 > 币圈百科 >

比特币区块浅析

  数字货币令我着迷的是其本身运转的系统,一环扣一环,让我从中感受到技术的美妙。新事物代表着新的方向,我愿与数字货币一同成长,并和大家共同分享成长的收获。

  我先打个比喻用来说明区块是个什么玩意,先来描述一段场景:今天张三要给李四打300元,通过银行转账的方式。

  转账的过程大致是这样的:

  第一:张三要在银行开个户。第二:张三要知道李四的银行账户。第三:张三告诉银行:“我要转账”。第四:银行会在自己的账本的一页上写下:张三的账户转移了300元到李四的账户。

  区块就是账本的那张账本页,张三的账户就是付款方的比特币地址,李四的账户就是收款方的比特币地址。

  一张张账本页组成了一个账本。一个个区块组成了一条区块链。

  所以说:区块链保存着比特币网络的交易记录,也被称为“全网的总账本”。一个新的区块保存着当前最新比特币交易的记录,并且是未被其他先前的区块记录的交易记录。

  需要注意的是:在区块上记录的是某个地址转账N个比特币到某个地址,这样的一条交易记录。并不是付款地址变成了M个比特币,收款地址变成了H个比特币。这是有区别的。一个关注的是交易过程,一个关注的是账户。

  区块链包含了每一个曾在比特币系统执行过的交易。根据这个信息,人们可以找到任何时候任一个地址中的币数量。

  一个区块里到底有哪些东西呢 请看区块的数据结构。并在最后附上比特币第一个区块的数据结构,帮助理解。

  区块的数据结构

  数据项 释义

  Version 区域版本号

  Previousblockhash 前一区块的256位HASH值

  Nextblockhash 后一个区块的256位HASH值

  Merkleroot 基于一个区块中所有交易的256位HASH值

  Time 时间戳

  Bits 压缩格式的当前目标HASH值

  Nonce 从0开始的32位随机

  Confirmations 区块中币的交易确认数

  Difficulty 挖矿难度

  接下来:讲区块链是如何形成的 以及能否篡改区块

  每一个区块包含前一个区块的hash值,从而形成了一条区块链。如果一个新的区块不知道前一块区块的hash值就没法生成当前的区块。如果要改变一个已经在区块链中存在一段时间的区块,这就相当于一个新链替代主链,这需要强大的计算能力,是十分困难的,这方面不细讲,以后再讲。

  附上比特币第一个区块的数据结构,帮助理解

  "hash" : "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048",

  "confirmations" : 2138,

  "size" : 215,

  "height" : 1,

  "version" : 1,

  "merkleroot" : "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",

  "tx" : [

  "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098"

  ],

  "time" : 1231469665,

  "nonce" : 2573394689,

  "bits" : "1d00ffff",

  "difficulty" : 1.00000000,

  "chainwork" : "0000000000000000000000000000000000000000000000000000000200020002",

  "previousblockhash" : "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",

  "nextblockhash" : "000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd"

知识: 比特币区块