容量证明POC 之 Plotting
Plotting 俗称 P 盘,是 POC 共识的第一个步骤。
第一步:选择一个8字节的随机数Nonce,加上Account ID一起进行Shabal-256计算,得到一个Hash值。其中Account ID是从私钥推倒过来的,可以用来标识节点身份,以避免几个人共用同一套哈希表来作弊,确保每个ID一套哈希表,同时也增加了搜索的范围,更加分散。第一步计算的哈希结果被称为:Hash #8191。
然后,把第一步得到的Hash #8191添加到Account ID和Nonce前面,再进行一次Shabal256计算,得到Hash #8190。
以后的计算中,每次都把得到的Hash值添加到数据的前面,当数据的长度超过4096字节后,每次只取最近的4096字节数据进行哈希。 比如计算Hash #6000的时候,其实只会取Hash #6001-6128这128个哈希值进行计算。因为每个哈希值的长度是32字节,128个正好是4096字节。
当完成了8192次循环后,就会得到8192个哈希值,用来计算哈希值的数据也会变成这样:
你需要对所有这些数据再进行一次Shabal256计算,得到一个Final Hash。 最后,把之前的8192个哈希值逐个和Final Hash进行异或运算,得到的8192个异或后的哈希值保存下来,这些数据就是未来挖矿时需要搜索的范围。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!