本文,简单讲一下比特币的交易过程。我们先看下面的一个例子。
李四之前通过微信群认识了一个叫张三的人,李四想从张三那里买10个比特币,于是张三说:“行,我转你10个币,你往我银行卡号转xxxxx块钱就行,但是你需要先下载个钱包。” 于是李四下载了某个比特币钱包软件,注册完成之后,钱包软件会自动为李四生成一个地址,用来接收比特币的(不理解“地址”的读者,请浏览:简单理解区块链比特币的常用名词)。与此同时,钱包也自动生成了公钥和私钥,只不过这些对于小白李四来说比较复杂,就没有直接展示给用户。李四只需要有一个地址,就可以购买比特币了。
李四把地址发给了张三,张三收到之后,用他自己下载的比特币钱包,点开了“发币”的功能,输入了李四给的地址,并输入了10个比特币,点击发送,经过手机指纹识别之后,币就发出去了,过了十几分钟,李四的钱包提示收到了10个比特币,于是李四通过银行转账,给张三转走了xxxxx块钱。这样,整个交易就结束了。
所以这笔交易到目前为止来看,应该就是如下图这个流程吗?
其实,更完整的交易流程应该是这样:
在张三点击完发币按钮之后,首先,此交易会发给全球所有矿工(图中深蓝色所示),矿工们一边验证这笔交易是否合法,一边为获得将第20014号区块加入到主链的权力而努力着(因为可以获得比特币奖励)。20014号区块包含着一道非常复杂的数学题,此数学题的代号也为“20014”,即第20014道数学题。一旦第一位矿工得出答案,并且其他矿工发现他确实没错,于是此矿工便获得了将20014号区块加入到主链的权利。
于是,当红色矿工获得20014号加入主链权利之后,便把张三和李四的交易打包到20014区块中,整理好区块,将此区块发给全球所有矿工,让其他矿工将此区块连到每个矿工自己所保存的主链上。
此时,钱包同步了一下全网的信息,发现此交易确实已经被保存在各个矿工的主链上了,于是在手机app上,给李四展示“10比特币已到账”的提示,李四便知道比特币到账了。给张三银行卡转账之后,此笔交易就完成了。
声明:为了理解流程,我按照“验证交易、获得权力、打包区块”的流程讲解的,但实际上,是每个矿工在得知前一个区块被人抢走之后,马上打包下一个区块,知不是此区块是不被认证的区块,区块里包含了这段时间所有未确认的交易(未确认交易,以后会提到这个词,很重要),并开始答题,第一位得出答案的矿工,广播全网,得到认证,加入到主链中。
今天的文章简单介绍一下比特币的交易过程,本文还有许多问题没有解答,比如:
·交易是如何告诉全网矿工的?
·矿工是如何验证交易合法性的?
·矿工解答的是什么数学题?
·争得了第一名,为什么别人就拱手让出这个区块的权利了?
·钱包是如何知道这笔交易真正已经完成交易了?
·未确认交易是什么?
·到底是谁奖励了矿工?
等等。这些,会在以后的文章中一一说明。