比特币里如何完成支付交易原理流程图
2023-07-21
比特币里如何完成支付交易了,下图是中本聪论文里的交易流程图,如下所示:
说到支付交易就牵涉比特币原理之一的非对称加密以及数字签名技术。在比特币的知识范畴里有一个钱包的概念,钱包的本质就是一对非对称加密的公钥和私钥,如果我们把比特币的使用映射到现实的使用者即人,那么公钥就是这个人对外的唯一身份标识,私钥则是使用者开启钱包使用比特币的钥匙。公钥是对外公开的,在比特币的规则里公钥即代表了网络里钱包使用者的地址。
按照比特币的规则定义,公钥的长度是512个字节,为了方便公钥在网络上的传播,公钥要被转化为160位的数字指纹,数字指纹是二进制编码,转化为字符串就是26到35位的字符。
那么假如A向B支付比特币,那么A就得要知道B的地址,这样A才能把比特币发送给B。下面我将描述下这个支付的流程,具体如下:
A向B支付比特币的交易即A的地址向B的地址转移比特币的过程,下面我们举例说明:
首先是A向B发送数据,这些数据包含如下内容:
上一笔交易的 Hash(你从哪里得到这些比特币)
本次交易双方的地址
支付方的公钥
支付方的私钥生成的数字签名
B收到信息后进行相关验证,验证过程如下:
第一步,找到上一笔交易,确认支付方的比特币来源。
第二步,算出支付方公钥的指纹,确认与支付方的地址一致,从而保证公钥属实。
第三步,使用公钥去解开数字签名,保证私钥属实。
验证无误,B认为该交易是可以执行,注意:这里只是认为该交易可以执行,并没有确认该交易有效成功。
从支付交易的传输数据和验证流程我们可以看到,比特币的支付过程中主要是使用到了支付方即A的交易数据信息以及A的公钥和私钥,被支付方即B只是做验证操作的有效性而已,被支付方B自己的公钥、私钥以及交易信息都没参入支付过程,因此我们可以认为私钥和公钥主要是用于把比特币用花出去的场景。
如果想要交易最终被确认成功,接下来被支付方B就要将该笔交易广播到全网去了,如是流程进入到了交易广播的阶段。
热门