比特币区块链7个问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、第一个矿工挖到矿后其他矿工怎么做?

第一个矿工挖到矿后,他会记录区块的内容并获得数字货币和交易的小费;其他矿工会校验区块信息的准确性并停止自己的挖矿进程,将此区块追加到自己区块链的末尾。

2、区块只记录交易步记录余额,如何确定账户有足够的余额?

区块的交易记录格式包含输入值和输出值,

输入值总和需大于等于输出值,若大于,需“找零”,

令(A→M:10 btc,B→M:20 btc,C→M:25 btc)无效,

并添加(M→M:15 btc)(找零)

3、如何保证交易信息:1)未被他人篡改?2)确实由交易人发起?

非对称加密+ Hash值(摘要)

Tips:1)区块被节点挖出后会创建一个唯一的ID

区块ID=Hash(区块内交易的集合+上一个区块ID+运气值…)

2) 产生区块、挖出区块、校验区块的时间周期近乎相同

4、几乎在同时,有两个节点挖到区块了,怎么办?

此时其他节点无法清楚哪个会被接纳,同时连接便产生“分叉”,解决这个问题的一条规则:拥有最多区块的支链是真正有价值的。

5、“双重支付”是什么?

A在通过区块交易被确认后,将提前准备的更长的区块连接,使原先的交易无效。

解决方案:区块中会包含上一个区块的ID,当发现链接时,其后面的区块会解锁,进行重新计算。

6、在一个区块中包含什么?

区块中共有6个字段:

Int32_tnVersion //版本号,4字节

uint256_t hashPrevBlock //包含进本区块的所有交易构造的Merkle

树,32字节

uint32_t nTime//unix时间戳,4字节

uint32_t nBits //记录本区块难度,4字节,每产生2016个区块调

节一次

uint32_t nNonce //随机数,4字节,232种可能

比特币每一次挖矿就是对这80个字节连续进行两次SHA256运算;区块主体利用树结构,记录区块挖出这段时间里的所有交易信息

7、区块是如何调整难度的?

比特币挖矿本质上是计算一个hash值,最后得到的结果小于一个大家公认的数,就承认挖到矿了。

Sha256(time.time()*m)

指定difficult,求m,difficult越小,m就越难求解。

相关文档
最新文档