Bitcointalk · How to overthrow the GPU Oligarchs

中本聪,2010 年 10 月 3 日

SN-2919 已核对来源,附原文与上下文。

阅读语言
中文译文

铸币时,你计算的是区块头的哈希。哈希更多数据比哈希更少数据慢,因而区块头对所有人来说严格保持固定大小,只有一个例外。

这正是困惑的所在。extraNonce 不是区块头的一部分,它是第一笔交易的一部分。它并不会拖慢你的哈希。它并不改变头的大小。

我们务必保持警惕,把这个「区块内容会拖慢哈希速度」的误解扼杀在萌芽里。它并不会。

extraNonce 永远不需要很大。只要我们愿意,每次时间字段变化时都能够把它重置。最坏情况下,倘若你不想跟踪递增,extraNonce 可以是 4 个随机字节,碰撞浪费时间的概率微乎其微。

各自独立的机器天然免疫碰撞,因它们在第一笔交易里有各自生成的公钥。这对每个线程同样成立。

ORIGINAL · 英文原文
Can you tell more about it:
"they have to do weird things with extraNonce, which increases the size of the block header".
When you generate, you calculate hashes of the block header. Hashing more data is slower than hashing less data, so the block header is critically of a fixed size for everyone, with one exception.
This is the point of confusion.  extraNonce is not part of the block header, it is part of the first transaction.  It does not slow down your hashing.  It does not change the size of the header.

We need to be vigilant and nip in the bud any misconception that the contents of your block slows down your hash speed.  It doesn't.

extraNonce never needs to be very big.  We could reset it every second whenever the time changes if we wanted.  Worst case, if you didn't want to keep track of incrementing it, extraNonce could be 4 random bytes and the chance of wasting time from collision would be negligible.

Separate machines are automatically collision proof because they have different generated public keys in the first transaction.  That also goes for each thread too.
上下文
← 上一条 SN-2919 · 当前 下一条 → 在档案中查看完整主题串 →
来源
Bitcointalk 原始链接 ↗ 记录编号 SN-2919