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 * 4294967297 = 1546188226920
尝试。
如果你有1 MH/s(或每秒1000000哈希)那么你可以扫描哈希数在内 1546188226920 / 1000000 = 1546188
秒或 1546188 / 86400 = 17.89
天。
在一天内, 成功生成区组的概率可以通过计算hashrate, 使用下面的公式:
P = nHashesPerSecond * 86400 / (4294967297 * difficulty)
这是应该工作怎么?
每个区组头条表示由6个字段的结构, 一些这些字段可以自由改变。
字段 | 型 | 尺寸 | 规则 |
---|---|---|---|
nVersion | unsigned int | 4 | 手动更改是不允许的。 |
hashPrevBlock | unsigned char[] | 32 | 手动更改是不允许的。 |
hashMerkleRoot | unsigned char[] | 32 | 这是 merkle 哈希. 可以更改,通过修改,增加或删除交易。 |
nTime | unsigned int | 4 | 可以手动更新为任何值在间隔 [max tx timestamp, time() + 3600] interval. |
nBits | unsigned int | 4 | 手动更改是不允许的。 |
nNonce | unsigned int | 4 | 尝试计数器为Proof-of-Work. 需要在每一个新尝试哈希更新这个字段。 |
怎么样奖励?
奖励可以计算, 使用下面的公式:nBlockReward = 100 / (diffuculty / 0,000244) ^ (1/6)这意味着, 最高奖励是100枚钱币的, 复杂性的增长64倍时减半奖励。