Bitcointalk · Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG

中本聪,2010 年 6 月 18 日

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

阅读语言
中文译文

对我来说,第二个版本将是巨大的开发和维护麻烦。在升级网络的同时保持向后兼容已经够难了,再来一个版本把事情锁死就更难。倘若第二个版本搞砸了,用户体验会让两者都蒙羞,尽管它至少能让用户更明白紧跟官方版本的重要性。如果有人准备分叉出第二个版本,我不得不大张旗鼓地声明使用少数派版本的种种风险。这个设计的规则是:一旦有分歧,多数派版本获胜——这对少数派版本可能相当难看,我不想展开,而且只要只有一个版本,我就不必面对它。

我知道,大多数开发者都不喜欢自己的软件被分叉,但在这个案例里我有实实在在的技术理由。

我欣赏交易内置脚本的灵活性,但我那邪恶的小脑瓜立刻开始想滥用它的办法。我可以在 TxOut 脚本里编码各种有趣的信息,如果未被 hack 的客户端验证后忽略这些交易,它就成了一个有用的隐蔽广播通信信道。

在它流行起来、有人觉得"把最新的 Lady Gaga 视频用上百万笔交易灌进支付网络发给所有朋友"很好玩之前,这确实是个很酷的特性……

这正是交易费存在的原因之一。必要的话我们还有别的办法。

Satoshi,这个设计你做了多久了?它看起来深思熟虑,不是那种没经过大量头脑风暴和讨论、坐下来就写代码的东西。每个人都在用显而易见的问题找它的漏洞,但它一直站得住脚。

从 2007 年开始。某一刻我确信存在一种完全不需要信任的做法,从此欲罢不能地一直想下去。工作量里设计远多于编码。

幸运的是,到目前为止被提出的问题,都是我以前考虑过并做了规划的。

ORIGINAL · 英文原文
A second version would be a massive development and maintenance hassle for me.  It's hard enough maintaining backward compatibility while upgrading the network without a second version locking things in.  If the second version screwed up, the user experience would reflect badly on both, although it would at least reinforce to users the importance of staying with the official version.  If someone was getting ready to fork a second version, I would have to air a lot of disclaimers about the risks of using a minority version.  This is a design where the majority version wins if there's any disagreement, and that can be pretty ugly for the minority version and I'd rather not go into it, and I don't have to as long as there's only one version.

I know, most developers don't like their software forked, but I have real technical reasons in this case.

I admire the flexibility of the scripts-in-a-transaction scheme, but my evil little mind immediately starts to think of ways I might abuse it.  I could encode all sorts of interesting information in the TxOut script, and if non-hacked clients validated-and-then-ignored those transactions it would be a useful covert broadcast communication channel.

That's a cool feature until it gets popular and somebody decides it would be fun to flood the payment network with millions of transactions to transfer the latest Lady Gaga video to all their friends...
That's one of the reasons for transaction fees.  There are other things we can do if necessary.

How long have you been working on this design Satoshi?  It seems very well thought out, not the kind of thing you just sit down and code up without doing a lot of brainstorming and discussion on it first.  Everyone has the obvious questions looking for holes in it but it is holding up well 🙂
Since 2007.  At some point I became convinced there was a way to do this without any trust required at all and couldn't resist to keep thinking about it.  Much more of the work was designing than coding.

Fortunately, so far all the issues raised have been things I previously considered and planned for.
上下文
← 上一条 SN-0760 · 当前 下一条 → 在档案中查看完整主题串 →
来源
Bitcointalk 原始链接 ↗ 记录编号 SN-0760