Proof-of-Work

Proof-of-Work 是严重(代价高昂)数学题的解。 这一解必须是平凡的, 所以你可以轻松地检查解决方案是否满足规定的要求。

以确保Proof-of-Work, Novacoin 使用hashcash方法. 这个工作的复杂性被控制, 以限制与该新区组可以被产生网络的频率, 到所需的定点区间(10〜30分钟)。 因为成功的产生证据的很低概率, 无法准确确定在网络上哪台电脑可以产生一个解决方案。

需要多长时间产生Proof-of-Work?

没有人能准确地说。但有可能估计多久可能需要。

想象, 你有哈希速度1 MH/s的设备。我们估计, 在Novacoin网上, 多长时间当前的复杂性Proof-of-Work 的Proof-of-Work 产生平均需要。

1.0复杂性是渐近值

 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

因此, 为了取得成功的证据, 我们应该执行 0xFFFFFFFFFFFFFFFF / 0x00000000FFFFFFFF~ 4294967297 尝试。

在360复杂性, 我们需要 ~ 360 * 4294967297 = 1546188226920 尝试。 如果你有1 MH/s(或每秒1000000哈希)那么你可以扫描哈希数在内 1546188226920 / 1000000 = 1546188 秒或 1546188 / 86400 = 17.89 天。

在一天内, 成功生成区组的概率可以通过计算hashrate, 使用下面的公式:

 P = nHashesPerSecond * 86400 / (4294967297 * difficulty)

这是应该工作怎么?

每个区组头条表示由6个字段的结构, 一些这些字段可以自由改变。

字段尺寸规则
nVersionunsigned int4手动更改是不允许的。
hashPrevBlockunsigned char[]32手动更改是不允许的。
hashMerkleRootunsigned char[]32 这是 merkle 哈希. 可以更改,通过修改,增加或删除交易。
nTimeunsigned int4可以手动更新为任何值在间隔 [max tx timestamp, time() + 3600] interval.
nBitsunsigned int4手动更改是不允许的。
nNonceunsigned int4尝试计数器为Proof-of-Work. 需要在每一个新尝试哈希更新这个字段。
允许值Proof-of-Work的哈希结果应该低于当前的目标。 采取人试图找到这个可行的解决方案, 检查所有可用的数值nNonce (從 0 至 UINT_MAX)。 如果发生溢出将创建一个新的交易coinbase。 这允许采取人替换merkle哈希的价值新值, 并从头开始nNonce扫描。时间标记也可能改变。

怎么样奖励?

奖励可以计算, 使用下面的公式:
 nBlockReward = 100 / (diffuculty / 0,000244) ^ (1/6)
这意味着, 最高奖励是100枚钱币的, 复杂性的增长64倍时减半奖励。

Basis关于网络的基本信息用户端软体相关网页