网站首页 > 保险知识 >

怎样交易比特币(比特币的交易流程(原理篇))

2023-04-21 14:13:46 保险知识 阅读 0

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

通过前5篇的学习我们大致了解了区块链的基本情况,听起来似乎没这么难理解,可是我们今天要学习的就有多一点难度了,可能需要你对照这图片反复的看几遍了,今天这节课是区块链原理系列课里面最难的一部分了,提前做好思想准备。

在比特币这个公开的账本里,怎么做到我在不泄露私钥的情况下,让大家都相信我拥有某一个地址的私钥?可能今天这个比特币的钱包我们都已经用的很熟练了,可是这个最基础的问题很多人都没有思考过,我们要解决这个问题需要先了解,公钥私钥和地址是怎么回事,还有他们三者之间的关系。

首先,每一个地址都对应一对公钥和私钥,公钥和私钥是唯一对应的关系

我们先说私钥,私钥本质上是32个byte组成的数组,1个byte等于8位二进制,一个二进制只有两种可能性0或者1,所以私钥的总数就是2^(8*32)=2^256个,这个数量已经超过了宇宙中原子的总数,想要编译所有的私钥,耗尽整个太阳的能量也是不可能成功的。所以私钥匙绝对安全的,只要你自己不泄露出去,无论黑客的技术多厉害,都是办法用暴力的方式去破解的。

下面来说公钥。公钥实际上是由私钥转来的,这个过程,使用了之前提到的一种算法——椭圆曲线加密算法(这种加密算法也是非对称加密的一种)。

至于算法的过程,我们就不探讨了,涉及到计算以及理论,我们记住一条就可以了,

公钥是由私钥生成的,一个私钥经过椭圆曲线变换之后会生成一个65个byte的数组,这个数据也是唯一的,公钥和私钥是相互唯一的,从私钥可以推导出来公钥,因为加密是非对称的,所以,公钥推不出来私钥。用公钥加密的信息,只能使用与它配对的私钥来解密。总结起来就是,公钥加密,私钥解密,私钥用来数字签名,公钥验证。想要了解看看公钥长什么样子的,可以看一下图片。

一般我们会看到这样的一个公钥:

04a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd5b8dec5235a0fa8722476c7709c02559e3aa73aa03918ba2d492eea75abea235

最后用一句话总结他们三者之间的关系,私钥可以推导出公钥,公钥经过一系列数字签名运算就能生产比特币的地址,每一个地址都对应一对公钥私钥,公钥和私钥互为唯一。

理解了公钥,私钥和地址的关系下面我们来解决,怎样在不泄露自己私钥的前提下,花出我账户里的比特币。这个过程有点复杂,请问大家多看几遍。


比特币的交易流程(原理篇)

比如我们要做的这件交易支付,从1PA地址支付给E2H这个地址0.1个比特币,那么今天我们就见证一下,这笔交易是如何完成的。

首先,我们在进行这种支付过程之前,我先做一个简化,我把这串信息交易信息利用哈希函数做个简化,把他简化成一个简短的摘要信息。


比特币的交易流程(原理篇)

这里交易信息比较简单,但是实际上比特币系统里面可以有非常复杂的交易信息,因为就在一个交易信息里面可以列上千条交易,但是无论多少条交易信息,我们都可以把他简化,

好,在完成这项工作以后,那么这个简短的交易摘要,就唯一的标识了原始的交易信息。那么,我作为1PA地址的私钥的所有者,就要想办法让别人都接受。我交易指令,让所有的账本都接受交易指令,从而把我这个钱划出去。那么要做到这一点,就要让所有的人确信我拥有1PA这个地址上所对应的私钥。

那么我们做两步工作,第1部是签名,这个私钥就相当于我的私人签名或者我的私人印章一样。我对这笔交易进行一个签名,就是表明我确认我用我的私钥,我用我的私人的印章,确认了这笔交易。


比特币的交易流程(原理篇)

这个签名的过程是这样的,我们把原始的交易信息的摘要,让他跟我手中所持有的私钥进行一个运算,这个运算比较复杂,我们简化一下,把它写成一个乘号,这样一乘就得到了一个签名,如果要确保安全的话,过程签名这个过程应该在一个离线的物理上跟网络隔绝的地方进行,这样的话才能保证私钥不泄露。

得到签名之后,我们就可以把原始的交易信息和签名广播出去,广播出去。所谓广播出去,就是说通过比特币网络把原始的交易信息跟签名发送出去。这个广播的速度是非常快的,大约在几秒钟的范围时间内可以传遍全世界!

这样我们就把原始的交易信息放出去摘签名放出去。我们想要做到的是告诉大家,别人收到了信息之后,他就要来验证一下,这个签名是不是付款的账号,所对应的私钥。

如果是的话,请同意这笔支付。我们接下来就要进入一个验证的过程,任何一个接到原始信息和签名的人都可以做验证。

这个验证相当于对签名过程的一个逆运算,我们知道普通的乘除法里面,乘法和除法之间是运算的过程,我们就拿做比方,尽管它真实的运算过程、签名的运算和验证的运算是很复杂的,但是道理相通。

这里有第三张图,你可以结合图片看一下,


比特币的交易流程(原理篇)

我们验证就是用刚才得出来得到的签名,除上公钥看看能不能得到第一步的交易摘要。如果能得到,就证明这个签名是经过了公钥所对应的私钥签名的。就可以证明这个地址上的比特币是你的,你就可以顺利支付这一笔比特币了。

其实这个反向验证的时候本来是应该除以私钥的,可是私钥又不能泄露,如果用私钥来验证的话,不就把私钥泄露出去了吗?所以我们再验证的时候,只需要除上私钥的一个简化的形式公钥就可以了。

到这里我们开头的问题就解决了,我们就完成了,如何在不泄露私钥的前提下,完成一笔比特币的支付。

那么接下来还有最后一步,就是交易完成了以后,验证通过了之后,我们就需要记账,这个记账说起来容易,但是仍然有许多的现实问题,具体记账怎么记?谁可以记账?那么作为一个公共的账本,分布式的账本系统,理论上每个人都可以记账,但是谁愿意记账呢?

这十年来,这些记账人他们的动力,在哪里呢?我们下节课再讲。

相关内容

怎样交易比特币(比特币的交易流程(原理篇))文档下载.: PDF DOC TXT

猜你喜欢