揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)

币圈头条 10568

前言:作为一个刚踏入职场的00后,要学习的东西有很多,但大多比较零碎,不成体系,于是想通过周总结来梳理复盘每周的习得与感悟,监测自己的学习和成长情况,内容不限于工作、情感、生活等方面的总结,希望早日拥有自己的知识体系。慎独、共勉。

上次讲了什么是Web3.0,相信相信大家已经对这个新的互联网时代有了一个大概的认识。既然涉及到一个新的时代,那货币自然可能会发生一定的变化。从前我们的货币是金银、然后是现金,接着是电子货币,Web3.0中绕不开的就是虚拟货币,首当其冲的便是比特币了。

比特币其实早在2008年美国次贷危机的末期就诞生了。了解比特币,首先绕不开的就是比特币的白皮书,即中本聪的论文《比特币:一种点对点的电子现金系统》。这本书是了解比特币最权威也是第一手的资料,可以让我们更好了解比特币产生的初衷,主要解决的问题。

文中写道,中本聪设计比特币的目标是为了:设计一个完全点对点技术实现的电子现金系统,实现去中介化的在线电子支付(简而言之,比特币的创造是为了去中心化)

那为什么要去中心化呢?

中本聪认为目前网上交易主要是基于信任模式(trust based model),交易往往由第三方信任机构来承担交易双方的信用评估,担保和资金清算工作,这种模式存在两种弊端:

1. 金融中介的存在增加了交易成本,也增加了对交易规模、交易金额的限制(比如银行手续费、日转账金额的限制)。

2. 线上支付存在可逆性,不适用于一些不可逆的商品或服务,也就是可以在无需金融中介,无需双方信任的情况下实现在线电子支付。

去中心化能够让交易成本减少并且让交易变得不可逆。

支付的可逆性可以理解为:

如果交易后发生争端,顾客可以通过第三方支付机构申请退款,第三方机构有权在违背商家意愿的情况下,强制划扣收入,买方也需退款给卖方(像淘宝、闲鱼等平台,买家付款后钱会先达到平台账户中,不会直接打到卖家账户,便于平台的监管)。

但是有些商品和服务是不可逆的,比如餐饮和服务业(例如顾客用餐后不满意,不愿意买单,或者恶意投诉店家,就会发生扯皮的现象),所以如果顾客与商家双方之间没有足够的信任,商家就需时刻提防顾客,并且索要大量个人信息来防止客户欺诈(餐厅担心顾客用餐后不付款就离开,要求顾客在预订座位时支付全额餐费,以防止顾客逃单,并在餐厅内安装了多个摄像头,以防止顾客恶意投诉或损坏餐厅物品)。现实中碰到这种欺诈,商家只能自认倒霉,这会计入销售成本。

全文共分9章,接下来就按章节来看看文中到底讲了什么内容。

第一章 介绍 Introduction

中本聪认为如果有一种不可逆的的支付手段,那么这种收款的不确定性问题便可以得到避免。现金便是一种不可逆的支付方式,所以就是为什么一些交易中,商家往往更倾向于收取现金。

中本聪总结的比特币的支付系统有3个特性:

1. 用密码学代替了信用:人的信用不一定可靠,而数学是可靠的。

2. 去金融中介化:提升了效率同时也实现了点对点的纯粹支付。

3. 杜绝了可逆支付:保护卖家不被欺诈,系统也可以兼容第三方担保机制来保护买方利益(所以不单是商家的权益会收到保护,也有一定的机制保护卖家权益)。

(但若没有第三方进行的话,一笔款项支付了两次怎么办)中本聪强调,系统会通过点对点的分布式技术,通过密码学的工作量证明等机制来解决双重支付(双花,double-spending)的问题,同时只要这些节点和算法足够分散,诚实节点算力大于攻击者的算力,整个系统就能够保证安全(这会在后面的章节介绍)。

双花问题:指同一笔钱,比如比特币,被重复支付了两次而不被发现,或者发现时为时已晚(比特币中的各种复杂机制,主要便是为了解决双花问题)。

第二章 交易 Transaction

本章讲比特币中的交易和记账体系。对于一个货币系统,如何完成收付款,验证交易的有效性,以及存储交易记录,是一个首当其冲的问题。

原文:“我们将电子硬币定义为一串数字签名。每个所有者通过数字签名前一个交易的哈希和下一个所有者的公钥并将这些添加到数字签名链的末尾来将币转移给下一个所有者。收款人可以验证签名去验证数字签名链的所属权。

这句话说的有些抽象,因为不是我们常规的基于账户和余额的记账体系,比如银行系统中,我们每个人有一个账户,记录了我们的余额以及每一笔交易,分为收入和支出。通过这些收入支出的加总,可以得到我们的余额。

而比特币是基于中本聪称为UTXO(Unspent Transaction Output,未花费交易输出)的记账模型:一种基于交易的记账体系,在这个体系中,数据库记录了一笔笔交易,包括收付款双方的信息、金额、上一笔交易哈希值等信息。如果要计算某个账户拥有多少个电子货币,需要在账本中找到其参与的交易来计算账户余额。如下图。

揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)

比特币的每一个区块中,都储存了大量的这种交易数据,图中记录了三笔交易,完成了从0号拥有者(Owner)到1号拥有者、最终到3号拥有者的转账数据。

揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)

中间的交易,即第2笔交易,付款方为1号拥有者,收款方为2号拥有者。这笔交易首先记录了2号拥有者的公钥,我们将第一笔交易的全部数据拼接2号交易者的(收款方)的公钥,生成一个哈希值,然后用1号拥有者的(付款方)的私钥进行签名,打包在交易记录中,这就记录了一次交易的主要数据。

验证这笔交易是否真实有效的方式是,收款方(2号拥有者)用付款方(1号拥有者)的公钥来验证他的签名是否是本人,因为所有人的公钥都是公开的。后面的交易也是一样的原理。

公钥和私钥:密码学中的概念,非对称加密算法会生成一对公钥和私钥,公钥通常是公开信息,负责数据加密,私钥是非公开的,只有解密权的人能够拥有,用于解密和签名。

数字签名:一种应用,通常由发起者用私钥进行签名,接受者只需要用发起者的公钥就可以进行验证,也就是验证签名和发起者的公钥是否匹配。

比特币使用椭圆曲线的算法,生成公钥和私钥,公钥是公开信息,用于标识用户,验证比特币的所有权,对应每个人比特币钱包的地址(即收款账号);私钥只有比特币者拥有,保证了比特币的归属权,用于转账交易,签名和授权付款。(可以将公钥理解为银行卡账户,私钥理解为银行卡密码)

比特币的数字签名,就是持有比特币的付款方,生成的一段防伪字符串,通过验证这串字符串,一方面正面交易是付款方本人发起的,一方面可以证明交易信息在传输中没有被篡改。

通过数字签名技术,收款人已经能够验证付款方身份的真实性,但是还是不能证明付款方没有进行双重支付,也就是是否同时给多人支付了这枚电子货币。

那如何防止双重支付问题?

中本聪说通常情况下会引入一个可靠的第三方机构,比如央行或铸币厂,由他们来发行、结算和审核交易,这样就可以解决上述问题。但是这与比特币不再依赖第三方金融中介的使命不符。

另一个方案是让收款人知道付款人最近的其他交易,这样就可以判断,这笔交易前付款人有没有造成双重支付的其他可疑交易。如果系统不依赖任何第三方来审核账本,那就需要公开所有的交易数据,让所有的参与者来监督和维护一个共同的账本,并达成一个历史共识,最终形成一个有效的、按时间顺序的记账数据并公之于众。这就是比特币使用的分布式记账系统(Distributed ledgers)。

第三章 时间戳服务器(Timestamp Server)

这章比较短,只有一段话和一张图。主要是强调将时间戳信息纳入区块信息中。

揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)

图中便是一个个区块Block构成的链,即区块链。比特币大概每十分钟产生一个新的区块,每个区块中记录了这段时间的所有交易信息(即图中的Item)。

揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)

当这些当前区块的数据加上前一个区块的哈希值,再打上时间戳(即两个哈希值之间的连接),就构成了当前区块的哈希。这个哈希还要参与下一个区块哈希的运算,这就让所有区块按照时序紧密连接并且同步到所有节点。

所以历史区块信息近乎无法修改,因为当要修改某个区块数据,就要修改后面所有已生成区块的哈希数据,还要让大多数节点形成共识(后面将证明这近乎不可能)。

第四章 工作量证明(Proof of Work,简称“POW”)

由于前面提到,整个账本由全体分布式节点共同维护,那么就面临谁拥有记账权的问题,中本聪通过引用工作量证明机制来公平有效解决问题。即让所有节点去计算一个哈希数值,并尽可能小,满足不等式:

Hash(nonce || prev_hash || tx || ... || tx)< target

这个计算的复杂度,随着目标值(target)的变化而调整,当目标值越小,难度越大,并且这种复杂度会维持在合理的计算成本下,大概10分钟左右计算1次,实际上就是矿工挖矿的过程,大量遍历SHA-256个哈希数,寻找一个解。

这种算法的好处是计算难度随着目标值的减少而指数增加,但是验证起来非常简单,只需要执行一次哈希就可以。

为了保证每次工作量证明都重新计算,每个区块中还会加入一个随机数Nonce,正如图中所示,每个区块中就包含了前一个区块的哈希、一个随机数,以及所有的交易数据。

揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)

揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)

揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)

中本聪在章节的最后解释道,工作量证明还解决了在多数决定中确定投票方式的问题(其实就是生成这些区块需要矿工,有最长链的区块最后会被保留),工作量证明本质上是按CPU的算力投票,最长的链代表了最多数的投票结果,因为有最大的工作量证明的算力投票到这条链上,如果多数CPU算力被诚实节点控制,诚实的链就会增长最快,并超过其他的竞争链。

前面提到过如果要修改过去的区块信息,后面产生的区块信息都要修改,因为他们包含了前面区块的哈希值,但是修改区块并不简单,因为需要记账权,也就是工作量证明,这个成本极高,也就是要修改过去的区块,攻击者必须要重做这个区块以及其后所有区块的工作量证明,从而才能赶上并超过当前诚实节点已达成共识的最长链。

这个概率会随着后续区块的增长而大大减小,成本也会远远大于收入,为了抵消硬件运算速度的增加以及平衡不同时期运行节点的利益,工作量证明的难度将由移动平均数法来确定每小时生成区块的平均个数,

以后算力提高了不就可以攻击了吗?

这里中本聪考虑到了摩尔定律。因为几年后几十年后,运算的能力会大大提升,但是没有关系,如果区块生成过快,系统会让区块生成难度增加,最终还是保持在10分钟的水平。

如何能够设计有效的机制,来部署整个分布式网络呢?中本聪在第5章给了答案。

剩下内容在下期继续介绍啦!

相关推荐:

网友留言:

  1. 访客
    揭秘比特币:一篇文章带你全面认识数字货币之王(上篇)
  1. 访客
    前言:作为一个刚踏入职场的00后,要学习的东西有很多,但大多比较零碎,不成体系,于是想通过周总结来梳理复盘每周的习得与感悟,监测自己的学习和成长情况,内容不限于工作、情感、生活

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码