Java 实现区块链的ProofOfWork工作机制
/**
* 對於不同的輸入,哪怕只是一個微小的改動,輸出的結果都是很不一樣的。
* 對於同一個輸入,輸出結果是一樣的
*
* 現在需要得到一個 開頭值為 0 的哈希值,請告訴我x是多少
* 我現在需要得到一個開頭值的4位全為0的哈希值,請告訴我x 是多少 其實這個x 就是工作量
*
* 動態的調整這個區塊鏈的開始位數 來確定自己的工作量
*/
public class ProofOfWork {
public static void proofOfWork(String data) {
int x = 1;
while (true) {
if (! new Encrypt().SHA256(data + x).substring(0,6).equals("000000")) {
x = x + 1;
} else {
System.out.println(new Encrypt().SHA256(data + x));
System.out.println(x);
break;
}
}
}
public static void main(String[] args) {
ProofOfWork.proofOfWork("haha");
}
}