主页 > imtoken官方版下载安卓最新版 > 【区块链入门4】你知道如何在交易中验证比特币的所有权吗?

【区块链入门4】你知道如何在交易中验证比特币的所有权吗?

在上一篇《一文带你了解去中心化比特币交易》中,我们对去中心化的比特币交易流程有了初步的了解。 我们简单回顾一下:以Alice向Bob支付10BTC为例。 首先,需要交易的用户将交易传输到网络中,也就是说比特币同一秘钥不同地址交易,Alice 向 Bob 支付 10 BTC 后,她需要将交易传播到全网。 当交易在比特币网络中传播开来,此时矿工们开始通过竞争算力来争夺记账权,直到第一个矿工获胜,然后将交易打包并再次广播到全网,然后是其他节点收到消息的将对其进行验证并在验证通过后加入自己的块。

那么这里就有一个问题,各个节点如何验证Alice发给Bob的交易是否有效呢? 如何保证Alice在这笔交易发生时拥有这10个BTC的所有权? 同样,如何保证收款人一定是Bob,并在这笔交易后将BTC所有权归属于Bob?

这时候我们要知道,比特币协议规定,在支付比特币时,比特币的当前拥有者需要在交易中提交自己的公钥和签名(每笔交易的签名都不同,但都是来自同一个私钥产生)。 比特币网络中的每个人都可以通过提交的公钥和签名进行验证,确认交易是否有效,即确认付款人在那一刻拥有所交易比特币的所有权。

也就是说,比特币的所有权是通过数字密钥、比特币地址和数字签名来建立的。 每笔比特币交易都需要有效签名才能最终存储在区块链上。

事实上,只有有效的数字密钥才能产生有效的数字签名。 这里需要注意的是,数字密钥并不存储在网络中,而是存储在钱包中,完全独立于比特币协议。 密钥成对出现,由私钥和公钥组成。 公钥就像银行的帐号,私钥就像控制帐户的 PIN 或支票上的签名。

区块链话题中经常听到的词来了——公钥和私钥。

公钥用于接收比特币,而私钥用于在使用比特币支付时签署交易。

公钥和私钥之间的数学关系,使得私钥可用于为特定消息生成签名。 此签名可以在不泄露私钥的情况下验证公钥。

简单来说,公钥是公开的,网络上的任何人都可以看到,用于加密/验证,而私钥是你自己的,必须非常小心地保存,用于解密/签名。

仍然以 Alice 支付 10 BTC 给 Bob 为例。 为了证明比特币是自己发送的,Alice只需要用私钥对文件进行签名,然后广播交易即可。 收到广播后,Bob 或网络上的其他节点使用 Alice 的公钥来验证文件的签名。 如果验证成功,则证明交易中的比特币一定来自爱丽丝。

同样,如何判断这笔交易中的比特币一定是发给了Bob并最终属于Bob的呢? 这很简单。 Alice在发起本次交易时使用Bob的公钥加密信息,因为只有Bob的私钥才能解开被其公钥加密的信息,所以证明本次交易中的BTC确实发送给了Bob,然后Bob可以在本次交易中自由使用比特币。

这就是密码学中的非对称加密。 简单的说就是用公钥加密,必须用私钥解密。 反之,如果用私钥加密,就必须用公钥解密。

如前所述,数字密钥存储在钱包中。 比特币钱包包含一系列密钥对,每个密钥对包括一个私钥和一个公钥。 私钥 (k) 是一个数字,通常是随机选择的。 有了私钥,我们就可以利用椭圆曲线乘法的单向加密函数生成一个公钥(K)。 有了公钥(K),我们就可以使用单向密码哈希函数生成一个比特币地址(A),如图:

比特币莱特币量子链等交易_比特币转错到比特币现金地址了_比特币同一秘钥不同地址交易

注意这里公钥由私钥生成,然后比特币地址由公钥生成,是单向的。 否则无法获取,保证了比特币的安全。

下面简单了解下私钥、公钥、地址的相关原理。

私钥:

它是一个随机选择的数,以256位二进制数或64位十六进制数显示。 私钥用于生成支付比特币所需的签名,以证明资金的归属,因此必须妥善保管私钥,一旦丢失比特币同一秘钥不同地址交易,就相当于在私钥的保护下丢失了比特币。

公钥:

公钥可以通过椭圆曲线算法从私钥计算出来,这是一个不可逆的过程:K = k * G。其中k是私钥,G是一个常数点,称为生成点,K是结果公钥。 它的逆运算,被称为“求离散对数”——知道公钥K来求私钥k——是非常困难的,就像尝试k的所有可能值一样,也就是蛮力搜索。

地址:

比特币地址是一串数字和字母,可以与任何想给你比特币的人共享。 比特币地址与公钥不同。 比特币地址是由公钥(一串数字和字母)的单向哈希函数生成的,从数字“1”开始。

我们只需要知道:哈希算法是一种单向函数,它接收任意长度的输入来生成指纹摘要。

如果把比特币交易比作一张支票,比特币地址就是收款人,也就是我们要在收款人一栏写的。