2018年春节过后区块链技术一下子火爆起来了,本人也对该技术十分感兴趣,因此想研究下区块链技术的原理,看看区块链背后那些技术值得去研究。由于自己缺乏实际的开发经验和使用经验,文中难免会有些理解不到位,本文主要的目的还是想将最近的学习梳理总结一下。
一、概述比特币是存储在计算机里一枚货币,计算机存储的本质就是一串数字,那么存储比特币的这串数字为什么就可以等同于真正的货币呢?而且比特币让人感觉很像黄金,不管这黄金从什么渠道获取(从沙子里掏的,还是自己购买的),人类都会认同它的财富价值。
说到比特币很多文章总结它的特点,例如:去中心化啊,记账系统,安全性好,不过它有什么特点,大家现在几乎都公认比特币可以等同于货币,但是比特币这种货币是有别于现实社会中的各国央行发行发行的法定货币,法定货币的一大重要特点就是需要一个权威的机构(一般是指代表国家的央行)来发行货币,法定货币的价值是由老百姓认同国家的权威性来体现的,不管怎么说法定货币是一种中心化的发行货币机制,法定货币都会受到国家这个中心所控制和约束。比特币的设计理念不同,它想通过一种没有任何权威中心所左右的方式发行货币,让货币只包含经济价值的本质属性。
比特币的价值体现方式是通过交易的记账流程来体现的,具体过程如下图所示:
支付交易从产生一直到最后支付交易被成功写入了区块链,这样支付交易才会被真正确认,比特币的货币价值在这个过程中被体现,公司货币的发行也在这个过程中进行。
这张流程图可能会让很多人费解,为什么本人会说它体现了比特币的货币价值?本人之所以这么概括,主要包含下面的理解:
该流程包含了比特币的发行,流通,交易的全过程;
该流程是在没有中心机构参入的情况下进行的,但是该流程和现实货币的价值使用一样的权威有效。
完整理解了该流程就可以理解比特币可以等同于实际的法定货币的道理了。
下面本人将一个一个环节的解释该流程。
二、支付交易比特币里如何完成支付交易了,下图是中本聪论文里的交易流程图,如下所示:
说到支付交易就牵涉比特币原理之一的非对称加密以及数字签名技术。在比特币的知识范畴里有一个钱包的概念,钱包的本质就是一对非对称加密的公钥和私钥,如果我们把比特币的使用映射到现实的使用者即人,那么公钥就是这个人对外的唯一身份标识,私钥则是使用者开启钱包使用比特币的钥匙。公钥是对外公开的,在比特币的规则里公钥即代表了网络里钱包使用者的地址。
按照比特币的规则定义,公钥的长度是512个字节,为了方便公钥在网络上的传播,公钥要被转化为160位的数字指纹,数字指纹是二进制编码,转化为字符串就是26到35位的字符。
那么假如A向B支付比特币,那么A就得要知道B的地址,这样A才能把比特币发送给B。下面我将描述下这个支付的流程,具体如下:
A向B支付比特币的交易即A的地址向B的地址转移比特币的过程,下面我们举例说明:
首先是A向B发送数据,这些数据包含如下内容:
上一笔交易的 Hash(你从哪里得到这些比特币)
本次交易双方的地址
支付方的公钥
支付方的私钥生成的数字签名
B收到信息后进行相关验证,验证过程如下:
第一步,找到上一笔交易,确认支付方的比特币来源。
第二步,算出支付方公钥的指纹,确认与支付方的地址一致,从而保证公钥属实。
第三步,使用公钥去解开数字签名,保证私钥属实。
验证无误,B认为该交易是可以执行,注意:这里只是认为该交易可以执行,并没有确认该交易有效成功。