本文为精读比特币白皮书系列课程笔记,文中摘录了比特币白皮书原文,并对原文进行翻译,说明和讲解。
交易的本质就是转帐,验证转帐信息的真实性是银行的一个重要职能。如果不依靠银行,点对点的系统如何实现信息真实性的验证呢?
验证主要依赖密码学的原理,比如比特币白皮书就是中本聪在2008年年底写给密码学邮件组的,论文的阅读对象是有密码学基础的专业人士,如果没有密码学的背景知识很难理解文章内容。
在电子货币世界里交易类似于单纯的转账行为,它并不包含转账的原因。交付场景和转账场景是分离的。
Wedefineanelectroniccoinasachainofdigitalsignatures.
我们把电子现金定义为一连串的数字签名。
Eachownertransfersthecointothenextbydigitallysigningahashoftheprevioustransactionandthepublickeyofthenextownerandaddingthesetotheendofthecoin.
每位付款人通过数字化签署上一次交易的哈希值和下一位拥有者的公钥,并将它们附加在电子现金的末尾,从而将电子现金转账给下一位拥有者。
可以理解为,将一个币打上上一次交易的哈希值,是为了证明付款人确实拥有这些币,这些币曾经被其他拥有者转给了付款人,再加上下一位拥有者的公钥,付款人可以把所拥有的比特币转给下一位拥有者。
Apayeecanverifythesignaturestoverifythechainofownership.
收款人能验证数字签名从而确认所有权
Theproblemofcourseisthepayeecan'tverifythatoneoftheownersdidnotdouble-spendthecoin.
问题是收款人不能确认付款人是否进行过双重支付。
数字签名可以确认付款人是否拥有现金,但无法确认付款人是否进行过双重支付。
Acommonsolutionistointroduceatrustedcentralauthority,ormint,thatcheckseverytransactionfordoublespending.
常用的解决方案是引用可信的中心化权威机构或铸币厂来检查每笔交易是否有双重支付。
Aftereachtransaction,thecoinmustbereturnedtotheminttoissueanewcoin,andonlycoinsissueddirectlyfromthemintaretrustednottobedouble-spent.
每笔交易之后,货币必须送回到铸币厂来发行新币,只有从铸币厂发行出来的币才被认为没有双重支付过。
Theproblemwiththissolutionisthatthefateoftheentiremoneysystemdependsonthecompanyrunningthemint,witheverytransactionhavingtogothroughthem,justlikeabank.
这套方案的问题在于,整体货币体系的命运依赖于运营铸币厂的公司,每笔交易都只能经过它们,类似一家银行。
第三方存在的情况下,验证交易通过第三方铸币厂实施验证之后回收付款方的货币并发币给收款方。既然电子现金没有一个中心化的第三方,那如何解决双重支付的问题?
Weneedawayforthepayeetoknowthatthepreviousownersdidnotsignanyearliertransactions.
我们需要一种方式让收款人知道之前的拥有者没有进行过其它的交易。也就是指没有进行双重支付。
Forourpurposes,theearliesttransactionistheonethatcounts,sowedon'tcareaboutlaterattemptstodouble-spend.
对于我们来讲,最早的交易才是真正有效的,我们根本不在乎之后有人尝试双重支付。
我们只在乎转给我们的电子现金有没有进行过双重支付,不在乎转出去之后会发生什么。
Theonlywaytoconfirmtheabsenceofatransactionistobeawareofalltransactions.
确认一个交易有没有发生的唯一方法是知道所有的交易。
比如要确认某人是不是A公司的,最直接的办法就是认识A公司的所有人。
Inthemintbasedmodel,themintwasawareofalltransactionsanddecidedwhicharrivedfirst.
在铸币厂模型中,铸币厂知道所有的交易并决定哪笔交易是第一个到的。
确认哪笔交易是有效的,而不是被双重支付过的。
Toaccomplishthiswithoutatrustedparty,transactionsmustbepubliclyannounced.
为了在没有可信第三方的情况下达到这个目标,交易必须被公开发布。
andweneedasystemforparticipantstoagreeonasinglehistoryoftheorderinwhichtheywerereceived.
并且我们需要一个系统让参与者同意他们接收到的单一交易历史顺序。
Thepayeeneedsproofthatatthetimeofeachtransaction,themajorityofnodesagreeditwasthefirstreceived.
每笔交易发生时,大多数节点同意它是首次被接收的,收款人需要这样的证据。
要解决双重支付,我们需要一个公开的账本,同时这个账本需要一个系统,可保证每个参与者接受到的账本都是一致的。
交易篇说明的核心便是用一个人人可参与的网络来代替银行的职能。
网友评论