Skip to content

Latest commit

 

History

History
24 lines (11 loc) · 3.31 KB

2.2_Transaction_交易_交易链的难点.md

File metadata and controls

24 lines (11 loc) · 3.31 KB

2.2 交易(Transactions)—— 交易链的难点

原文与翻译

The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank.

这个路径的问题在于收款人无法验证曾经的所有者之中没有人双重支付过。常见的解决方案是引入一个可信的中心化权威方,或称“铸币厂”,让它去检查每一笔交易是否存在双重支付。每一次发生交易之后,硬币必须返回到铸币厂,铸币厂再发行一枚新的硬币。进而,只有铸币厂直接发行的硬币才是可信的、未被双重支付过的。这个解决方案的问题在于,整个货币系统的命运被拴在运营铸币厂的那个公司(就好像银行那样)身上,每一笔交易必须通过它。

We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced[1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received.

我们需要一种方式,可以让收款人确认之前的所有者并没有在任何之前的交易上签名。就我们的目的而言,只有最早的交易是算数的,所以,我们并不关心其后的双重支付企图。确认一笔交易不存在的唯一方法是获悉所有的交易。在铸币厂模型之中,铸币厂已然知悉所有的交易,并且能够确认这些交易的顺序。为了能在没有“被信任的一方”参与的情况下完成以上任务,交易记录必须被公开宣布[1],进而我们需要一个系统能让参与者们认同它们所接收到的同一个唯一的交易历史。收款人需要证明在每笔交易发生之时,大多数节点能够认同它是第一个被接收的。

[1]: b-money Dai Wei (1998-11-01) http://www.weidai.com/bmoney.txt

解读

对于 2.1 中提到的「交易链」来说,重要的问题是避免「双重支付」。

  • 双重支付: 一个 UTXO,小猪先支付给小兔,这个「交易A」记载了「账本A」上;然后,小猪来到了小狗处,小狗拿着的「账本B」不包含「交易A」,所以小猪又顺利支付。

解决双重支付的方法是,收款人能在网络上找到这么一个账本(数据库),这个账本中所记载的所有交易的历史都是不可篡改的。那么,收款人自然能检查这笔 UTXO 是否被使用过了。