挖矿的话,需要矿机,矿机里有挖矿的代码。验证、广播和保存区块链上的区块和交易的话,每个网络里的节点都包含这部分代码。
一个合法的交易需要由某个矿机打包进一个区块,再通过暴力计算解决和区块的哈希值相关的一个问题(其实就是挖矿),问题类似于我在很大的一个范围内随机选中了一个数,你必须一个一个猜我这个数是什么,我不会告诉你猜大了还是猜小了,只告诉你有没有猜中),然后再广播到全网络把这个区块加到唯一的一条区块链去。这部分代码是由矿工执行的。
这个困难问题很难解决,但是很好验证,所以全网络的节点都可以很快地验证某个矿工挖到的矿是不是合法的。除了挖矿,验证交易的合法性还用到了数字签名,因为矿工不负责生成交易,它只负责把接收到的交易加进区块里开始挖矿,所以加进去之前需要验证这个交易是不是合法的。这部分验证代码也会存放在每个节点里(不只存在矿工那里,因为网络里其他节点需要参与交易的广播,在广播之前也需要验证交易的合法性)。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注