yeasy / blockchain_guide

Introduce blockchain related technologies, from theory to practice with bitcoin, ethereum and hyperledger.

Home Page:https://yeasy.gitbook.io/blockchain_guide/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

对候选区块生成规则的疑问

amio opened this issue · comments

章节 1-4 中有这么一段:

客户端发起一项交易后,会广播到网络中并等待确认。网络中的节点会将一些等待确认的交易记录打包在一起(此外还要包括此前区块的哈希值等信息),组成一个候选区块。然后,试图找到一个 nonce 串放到区块里,使得候选区块的 hash 结果满足一定条件(比如小于某个值)。一旦算出来这个区块在格式上就合法了,就可以进行全网广播。

可能是我理解有误,对这里有几点疑问:

  1. 在某个节点“将等待确认的交易记录打包”的时候,不同的节点打包的几个交易记录可能是不一样的?这里我的理解是:比如现在整个网络中有 100 个客户端发起交易广播出来待确认,节点 A 收到 30 个就打包这 30 个组成候选区块,节点 B 收到 40 个就打包那 40 个。谁先计算完,那一批交易就算完成。

  2. 假如某个节点在打包候选区块的时候加入虚假记录(比如把别人的钱转给自己),又首先计算完成进行全网广播,岂不是形成攻击。这个行为是怎么避免的?

1 可能不一样;
2 没有转账人的私钥,无法构成合法交易,该区块会被其它验证者拒绝。

明白了,多谢!