主页 > imtoken注册流程 > 区块链 |如何解决比特币交易中的伪造、篡改、双重支付

区块链 |如何解决比特币交易中的伪造、篡改、双重支付

imtoken注册流程 2023-02-01 06:52:57

文章目录

前言

继续对区块链和比特币的基本介绍,我们知道比特币的所有记录都是公开的和匿名的。这样一来,比特币将面临几个问题:如何解决伪造记录、篡改记录和双花问题。

身份认证

在传统的认证方式中,通常使用人脸认证、签名认证、指纹认证等,但在电子支付系统中无法实现,因为上述方法可以被复制然后被伪造。

比特币如何防止双重支付

电子签名

电子签名技术采用广泛使用的非对称加密方式

电子签名技术

如何解决伪造记录的问题

比特币如何防止双重支付

流程图:

防止伪造记录

解决伪造记录的关键是使用非对称加密

A 对于赠送B10比特币的事件,通过哈希运算得到摘要后,用私钥加密摘要得到密码。由于私钥的唯一性,摘要是唯一的。通过广播,A 传输的消息包括:A 到 B 10 个比特币、A 的公钥和 A 的密码。

比特币如何防止双重支付

我们可以假设10比特币从A到B的消息是假的,根据这个哈希运算得到摘要1。并使用 A 的公钥解密密码比特币如何防止双重支付,得到摘要 2。此时,摘要 1 和摘要 2 不同。显然,“A给B 10比特币”是伪造的消息。

双重支出问题余额检查(追溯法)

每个使用区块链比特币的人都会下载从第一个区块到现在的所有信息。

例如A广播数据“A支付B 10个比特币”,其他人会检查余额来检查A是否有这个支付能力。如果没有这样的支付能力,那么其他人就不会去确认A广播的这个信息。当“A支付B 10比特币”的信息被打包成一个新的区块时,这个信息就被确认了。

比特币如何防止双重支付

消息确认

双重消费

当双花发生时,比如A只有10个比特币,但同时广播消息“A到“B10比特币”(记为信息b)和“A到C10比特币”(记为信息c ),D组先收到消息b,不会确认消息c。同理,如果E组先收到消息c,也不会确认消息b。这时候就看D组和E组中哪一个可以计算先算数学题,先挖出矿的可以将自己确认的消息写入新区块,其他消息无效。

如何防止双重支付

比特币如何防止双重支付

防止篡改问题的最长链原则

当区块链分支时,有多个人同时挖出下一个区块时比特币如何防止双重支付,链会分支出来。一般来说,选用最长链原则。假设用户组A选择上链继续挖矿,用户组B选择下链继续挖矿。如果 A 组先挖下一个矿并上传一个新区块到链上,B 组转移到新区块继续挖矿。正常情况下会丢弃下行链路。

最长链原则

如何防止篡改

从最长链原理可以知道,如果有人想篡改某个区块的区块链信息,他会在该区块引出一个分支,并创建一条新链,使新链超过原链的长度链。也就是说,他一个人控制的矿机算力就应该超过世界上剩下的矿机算力,这显然是很难做到的。

篡改信息