主页 > imtoken钱包安卓版下载步骤 > 比特币交易流程

比特币交易流程

这实际上是一个数字签名的过程——当A发起一笔交易时,它会对消息进行哈希处理,生成数字摘要,并用私钥对数字摘要进行加密加入比特币的流程,生成密文。接下来,A 将广播交易消息、公钥和密文。“第三方”首先对交易信息进行哈希运算生成摘要1,然后通过公钥解密密文生成摘要2。如果两个摘要相同,则说明该消息确实是A发送的。方式,确认交易信息后,即可入账。

在交易的第三步,“第三方”将确认的交易信息写入票据。正如开头所强调的,比特币是一个电子记账系统,票据和账本的设计是核心。不同于传统金融体系,银行保证用户的余额不可篡改,比特币作为一个去中心化的金融体系,如何保证用户持有的货币数量不可篡改?余额只是一串数字。这个数字本身是不可信的。它的可信度来自交易历史。只有通过验证交易历史,计算出的余额才是可信的。因此,比特币摒弃了余额的概念,通过可追溯的方式存储了用户持有的货币数量。历史记录存储在票据中,而票据的公信力来自于交易的真实性和历史交易的不变性。比特币通过数字签名保证交易的真实性,通过分布式记账和区块链技术保证历史记录不可篡改。

已验证

各节点收到交易信息后,会将这些信息记录在“票据”中,即区块中。一个块由一个块头块体组成,如下图所示:

加入比特币的流程

块体存储一段时间的交易记录。交易记录和它们的哈希值形成一个默克尔树结构。默克尔树根(Root)的哈希值作为该区块中所有交易记录的数字指纹。放置在块头中。这种结构一下子影响到整个身体。如果一个事务改变了树根的值,它就会改变,这可以很好地防止篡改。

区块头还包含时间戳、前一个区块的哈希值、高度、nonce 等信息。这些信息连接在一起形成一个数字,这个数字的哈希值就是区块的标识。

这样,交易记录就记录在“票据”中,“票据”经过密码学严格加密,具有可信度。

在交易的第四步,幸运用户成功将包含交易的票据整理打包,“贴”在账本上,交易就结算了。B通过“账本”确认交易信息,交易完成,幸运用户获得一定数量的比特币奖励。

“账本”就是区块链。就像按时间记账一样,这些票据按照时间编号粘贴形成账本,将一个区块头号的哈希值(身份标识)存储在下一个区块中,并排列在按时间顺序组成区块链,可以通过下一个区块头中的前一个ID来寻址前一个区块,从而达到可追溯的目的。

加入比特币的流程

那么问题来了,打包账单包含奖励,很多用户会争相打包账单,那么谁记得账号优先呢?设计师设计了一场竞赛——解决一道数学题,最快解决的人赢得会计权。这种竞赛被称为“工作量证明”。

区块头中的 nonce 是区块头中唯一可以更改的部分,它决定了区块头代码的样子。用户需要改变这个随机数,使编码在块头中的哈希值满足某个特性,例如前 32 位为 0。

https://img-blog.csdn.net/20170316171004425?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzk3MDk5MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

哈希算法是一种理论上不可逆的加密算法,将输入键值映射到输出哈希:

加入比特币的流程

,我们可以从键值中得到哈希,但是从哈希中计算键值几乎是不可能的。由于它的不可逆性,我们不能通过输出来反转输入,所以这个数学问题只能通过尝试来解决。于是用户竞相改变随机数以获得满足条件的哈希值。用户的电脑越强大,每秒的尝试次数越多加入比特币的流程,解谜的可能性就越大。这个过程就是“挖矿”,是算力的竞争。工作量证明就是证明你尝试的次数最多,消耗的内存和电量最多。

用户成功解决问题后,该区块成功连接到区块链上,满足一定特征的哈希值将作为该区块的身份记录在下一个区块中。这样一来,所有的票据都被编号并“粘”到账本中,这也影响了整个身体并防止了篡改。

数字货币的几个重要问题:

说完比特币的工作原理,我们来重点讲解一下数字货币的一些比较重要的问题——双重支付、篡改和用户信息保密。

加入比特币的流程

第一点,如何防止重复支付:当A只有10BTC,而ta同时向B和C支付了10BTC,我该怎么办?我们知道比特币系统没有余额的概念,只能追溯确定用户拥有的BTC数量,所以不知道ta是否透支。

假设节点D先收到转给B的10BTC的消息,通过上面第二步的方法确认信息后,自然会拒绝第二条消息。同时,节点E可能已经收到了先转给C的10BTC的消息,自然会拒绝给B的消息。至于最终上链的是哪个交易,就看D和E谁先解决问题了,成功开采。假设 D 先挖矿成功,那么 ta 会将支付给 B 的消息连接到区块链上。根据最长链原理,其他人会自动排队到 D,并在 D 记录的区块之上继续挖矿。

最长链原则是指当两个矿工同时挖矿,或者由于网络延迟等原因产生分歧时,每个节点先挖出自己认为正确的区块,直到下一个区块产生。会有两条链,但其中一条很长,以最长的链为准。

https://img-blog.csdnimg.cn/20191029123105101.png

加入比特币的流程

第二点是如何防止篡改:比特币的记账是分布式记账系统,所有用户都有一个账本,所以不像中心化的金融系统,欺诈几乎是不可能的。而且,从上面可以看出,交易记录是按时间顺序递进、相互关联的,几乎不可能修改账本。

唯一的可能性是一旦付款就删除交易。比如 A 付给 B 一个 BTC,ta 试图偿还账单,所以它重新打包了一个不包含这个交易的区块并连接到区块链上,并使链比原来的链长,如下图所示. 这时候,其他人继续在之前的链上挖矿,这意味着A的算力肯定比其他人加起来还要多,这几乎是不可能的。就算A有这样的算力,为什么不继续在长链上挖矿获取更多收益,转而成为小偷呢?

https://img-blog.csdnimg.cn/20191029123254376.jpg

第三点是如何对用户信息保密:在像比特币这样的分布式记账系统中,使用一份交易信息。如何对用户信息保密?从下图可以看出,传统的交易系统对用户的身份和交易信息都进行了加密,只有交易双方和第三方机构才有信息。比特币系统的保密模式是用户身份保密,交易信息公开。这样,虽然每个人都知道存在哪些交易,但他们不知道是谁进行了交易。

同时,设计者建议大家不要使用同一个私钥来完成所有的交易,以免公众知道一个人的所有交易。

正如设计师所说,比特币的可行性是基于密码学,而密码学是基于当前的计算能力无法解决某些数学问题的事实。随着计算能力的提高,比如量子计算机的发展,或许密码学会被颠覆,然后人们需要另一个数字货币系统。