比特币的交易过程
Posted amiezhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比特币的交易过程相关的知识,希望对你有一定的参考价值。
一、区块链
区块链是比特币实现的一个基础技术,所以先讲讲区块链的概念~
简单的来说,区块链是一种“去中心”的分布式数据库。
传统的数据库像如下图一样,数据都存放在一个地方:
区块链是每个用户都存一份数据(大家的数据是保持一致的):
二、比特币的交易过程
比特币就是通过区块链技术形成的一个应用~
而它需要区块链存储的是用户与用户间的交易过程。
1. 主动发出比特币的用户用自己的私钥加密交易讯息,然后发布给到全网
交易讯息形如:“账号abc给账号efg转100个比特币”
2. “矿工”接收一条条交易讯息,收满后开始挖矿
2.1 “矿工”们收到很多交易讯息,一般会挑选交易额比较大的讯息组成一个“交易列表”进行挖矿
因为一旦”挖矿“成功,每一条交易都会按交易比特币的多少来支付给”矿工“一定的”手续费“;
又因为每一个区块一般大小限制在1M,这也限制了”矿工“自己挑选的”交易列表“的大小
因此,”矿工“只能需要整理出一份能赚取最多手续费的”交易清单“
2.2 挖矿的具体操作:
对”上一个区块的Hash“+"交易清单"+”随机数“进行sha256签名
因为交易记录要同步到全球需要一些时间,挖矿的速度不可以太快,因此比特币有一个”难度系数“
它要求”矿工“不停去变换”随机数“知道生成的hash值小于一个预设的值,才算挖矿成功
像下面这个第538499个区块,hash值需要前面19位都是0才算是符合条件
3.挖矿成功后,向所有比特币用户广播这个生成好的区块,用户们通过验证后就会把这个区块往自己本地存储的区块链上添加
4.结束
正常来说,上面的步骤走完已经顺利地完成了一次比特币的交易。
三、疑问
1.比特币怎么做到用户存储的区块链的一致性呢?
它的做法就是提高能够写入区块的“门槛”(就是不是所有人都有资格修改这条链),理想状态就是一段时间内只允许一个人写入
从上面的步骤不难看出,要获取往区块链写入信息的资格,必须先“挖矿”成功,而“挖矿”的难度是非常大的,全球大概每10分钟才有一个人挖矿成功。
2.万一短时间内,有两个人甚至多个人挖矿成功,并写入了新区块,怎么办?
遇到这种情况,所有用户存储的区块链会在这个“节点”上创建“分支”,然后看下一个矿工在成功在哪个分支上成功“挖矿”,那一条分支就会成为“主链”
以上是关于比特币的交易过程的主要内容,如果未能解决你的问题,请参考以下文章