Skip to content

回复:交易与脚本:DUP HASH160 ... EQUALVERIFY CHECKSIG ​

原始发布页

打开来源页面
查看 1 个交叉存档

第二个版本会给我带来巨大的开发和维护麻烦。升级网络的同时维持向后兼容已经够难了,更不用说再来一个版本把事情限制死。如果第二个版本搞砸了,用户体验会让两个版本都显得很糟,不过这至少会让用户更加认识到坚持使用官方版本的重要性。如果有人准备分叉出第二个版本,我就得公开发表大量免责声明,说明使用少数派版本的风险。这种设计中,一旦出现任何分歧,多数派版本就会胜出,而少数派版本的处境可能会相当难看,我不愿深入讨论这些,只要仍然只有一个版本,我也不必讨论。

我知道,大多数开发者都不喜欢自己的软件被分叉,但在这件事上我有切实的技术原因。

引用 gavinandresen 于 2010年6月17日 07:58:14 PM 的发言

我很欣赏交易内脚本方案的灵活性,但我邪恶的小脑瓜立刻开始琢磨可以怎样滥用它。我可以在 TxOut 脚本里编码各种有趣的信息,而如果未被篡改的客户端先验证、然后忽略这些交易,它就会成为一条实用的隐蔽广播通信信道。

这是个很酷的功能,直到它流行起来,有人觉得用数百万笔交易淹没支付网络、把最新的 Lady Gaga 视频传给自己所有朋友会很有趣……

这正是设置交易费的原因之一。如有必要,我们还可以采取其他措施。

引用 laszlo 于 2010年6月17日 06:50:31 PM 的发言

中本聪,你研究这个设计多久了?它看起来经过了非常周密的思考,不像是那种没有事先进行大量头脑风暴和讨论,就直接坐下来写代码能做出的东西。每个人都在问那些显而易见的问题,试图从中找出漏洞,但它经受住了考验(笑脸)

从 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

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

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 (Smiley)

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.

为历史保存,为中文读者整理。每篇档案均附来源与英文原文。