gpt4 book ai didi

java - 区 block 链技术如何验证工作证明

转载 作者:行者123 更新时间:2023-11-30 10:12:51 28 4
gpt4 key购买 nike

我正在通过一些在线示例学习区 block 链。我有这个高级代码,我用以前的哈希创建一个新 block ,然后向它添加一个事务,然后生成 block 的困难哈希(有 8 个前导零)

 Block block1 = new Block(previousHash);
block1.addTransaction(new SomeTransaction());
block1.mineBlock(difficulty);
blockchain.add(block1);


public void mineBlock(int difficulty) {
String target = StringUtil.getDificultyString(difficulty); //Create a string with difficulty * "0"
while(!hash.substring( 0, difficulty).equals(target)) {
nonce ++;
hash = calculateHash();
}
System.out.println("Block Mined!!! : " + hash);
}

这很好用。但我有一个问题,即在将区 block 添加到区 block 链之前如何验证工作量证明。

即假设已经生成了一个带有 8 个前导零的散列

000000005ed2248f32d7f2509e6291a998a6119b96b1227d27fe03cf21b8c908

区 block 链如何确保这个散列实际上是一个有效的散列,而不仅仅是带有 8 个前导零的随机字符序列?

最佳答案

根据前一个 block 和您发现的随机数计算哈希值非常容易。不需要循环,只需要一次哈希计算,速度很快。因此,当您将新 block 添加到链中时,您还发布了随机数,他们只计算哈希值——这就是工作量证明。

关于java - 区 block 链技术如何验证工作证明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51701579/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com