原始文献 / 论坛帖 / Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG

Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG

Bitcointalk · 2010-06-18 16:17:14 UTC

AuthorSatoshi Nakamoto
TitleRe: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG
Date2010-06-18 16:17:14 UTC
ForumBitcointalk · 原文

第二个版本对我来说是巨大的开发和维护负担。在没有第二个版本把东西锁死的情况下,维护向后兼容、升级网络已经够难了。如果第二个版本搞砸了,用户体验会连累两边,虽然至少能让用户更明白坚持用官方版的重要性。如果有人准备 fork 第二个版本,我得先把用少数版本的各种风险声明讲一堆。这个设计里,有分歧时多数版本赢,对少数版本来说会很难看,我不想细说,只要只有一个版本我就不用面对。

我知道,大多数开发者都不喜欢自己的软件被 fork,但这次我有真正的技术原因。

引用 gavinandresen(June 17, 2010, 07:58:14 PM)(https://bitcointalk.org/index.php?topic=195.msg1613#msg1613):

我很佩服交易里塞脚本这个方案的灵活性,但我这邪恶的小脑瓜立刻开始想怎么滥用它。我可以在 TxOut 脚本里编码各种有意思的信息,如果没魔改的客户端验证完就忽略这些交易,那它就是个好用的隐蔽广播信道。

酷是酷,可一旦流行起来,有人决定拿几百万笔交易往支付网络里灌、给所有朋友传最新的 Lady Gaga 视频,那就好玩了……

这也是交易费存在的原因之一。真有必要我们还有别的招。

引用 laszlo(June 17, 2010, 06:50:31 PM)(https://bitcointalk.org/index.php?topic=195.msg1612#msg1612):

Satoshi 你这个设计搞了多久?想得太周全了,不像是坐下来没经过大量头脑风暴和讨论就直接写出来的。大家都在找茬挑毛病,可它一直立得住。

从 2007 年开始。某个时刻我确信了这事可以做到完全不需要信任,就忍不住一直想下去。设计的工作量比写代码大得多。

好在到目前为止,大家提出的所有问题都是我以前考虑过、做过预案的。

英文原文

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.

Quote from: gavinandresen on June 17, 2010, 07:58:14 PM(https://bitcointalk.org/index.php?topic=195.msg1613#msg1613):
> 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.

Quote from: laszlo on June 17, 2010, 06:50:31 PM(https://bitcointalk.org/index.php?topic=195.msg1612#msg1612):
> 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.