主页 > imtoken钱包官网登录 > 在我给你转一个比特币之后...

在我给你转一个比特币之后...

imtoken钱包官网登录 2023-03-30 07:16:28

记得买过比特币怎么查_比特币转给别人能查到人吗_比特币源代码怎么查

最广泛使用的比喻是把区块链比作一个账本,一个大账本,每个区块都是一个账户页,每个区块头部的父区块的哈希值就像一根绳子,系在账本的页上。串起来,通过工作量证明选出有记账权的人来记账。 采用非对称加密算法,保证账户页面内容真实不可篡改,同时保证您的财产完全永久属于您。 互联网的内容不会消失,直到消失。 这种不可磨灭的特性启发了一些人产生了一些有趣的想法。 比如老猫在区块链上写下了“买比特币就是做空世界”这句话,如果是这样,你还可以把和爱人的誓言刻在区块链上,比刻在钻戒上更“永恒”。

比特币是区块链的一种应用,那么比特币是如何在特定的区块链生态环境中实现交易的,这些交易又是如何进入区块,最终成为区块链的呢? 这就是我今天要说的。

1. 比特币交易

比特币是一家世界银行。 它只有一个业务,那就是转账。 我以给你转一个比特币为例。

我要转账在钱包里操作,我把我的比特币发到你的地址,交易产生,然后钱包会把这笔交易广播给相邻节点,相邻节点收到交易后开始验证这笔交易,在交易被验证合格后,将被放入本地交易数据池,由节点上的矿工收集并打包成块,然后由节点将块广播给其他相邻节点。 一出生,6个月后,你的钱包会显示已经转入账户(转入账户的快慢取决于你在钱包中设置的区块深度)。

我转给你的比特币就是这样一个过程结束了它的旅程,所有权从我变成了你。

以上就是从一个旁观者的角度跟随一个比特币从一个地址到另一个地址,看看它走过了哪些路线,如何从一个地方到另一个地方,对其流向有个整体印象。

那我们就详细说说,验证是怎么进行的呢? 验证了哪些内容,比特币的交易结构是什么样的?

1. 首先要说什么是比特币交易? 不是比特币? 是的,我们是交易用的比特币,但实际上我们通常认为的系统中没有比特币。 比特币系统中只有 UTXO。

比特币系统中没有账户,没有余额,没有密码,只有UTXO,也就是未花费的交易输出(一个用比特币所有者的公钥锁定的数字)

2. 先说交易在代码上是如何验证的。 首先,我们必须了解交易结构。

一个交易结构就是一个交易,包括输入和输出

输入 == 待花费的 UTXO + 解锁脚本

output == utxo(币值+锁脚本)

解锁脚本:发送方私钥签名+发送方公钥

锁定脚本:

OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

例如,帮助您了解 UTXO 和输入输出是什么:

例子:矿工A挖出12.5个比特币,产生一个UTXO。 有一天,A 需要支付 2 个比特币来购买 B 的服务。

输入:UTXO(一个公钥哈希+12.5)+解锁脚本

输出:UTXO(B的公钥散列+2)

UTXO (A's public key hash + 10.5) ------ 这个UTXO是A的找零

这时系统会产生两个新的UTXO比特币转给别人能查到人吗,一个是2个比特币转给B,一个是找零给A的10.5个比特币,同时删除原来的12.5个比特币的UTXO。

关于输入和输出,一开始我也是一头雾水,搞不懂什么时候是输入,什么时候是输出。 如果我用最通俗的理解给你转币,当然你是收入,我是输出,但其实叫收入和支出,这里的输入和输出是从比特币系统的UTXO角度来看的,它是为从出生到死亡的过程。 当比特币(UTXO)要被花掉的时候,就是输入,输出新一代的UTXO,这个输出也可以理解为birth。

钱包里的余额怎么了?

现在我们可以看到手机钱包或网页钱包中的余额。 这是因为钱包是一个程序,根据我的公钥把锁定的UTXO组织起来,计算出一个数据并展示出来,就像比特币系统是一个宝库,钱包是一个大管家。 当我点击查看余额的时候,就相当于给管家下了命令,问他宝库里我有多少宝物,然后管家和小伙子们会把整个宝库清点一圈,最后给给我一张清单,上面列出了婴儿的种类和数量。

3、如何证明我转给你的币是我的,证明我转的币没有花掉。 这就是私钥发挥作用的地方,这就是比特币系统在代码级别所做的事情。

我给你转比特币的交易(交易结构)必须包括:UTXO(locking script)根据我的公钥锁定,也就是我要花的比特币,用我的签名解锁,用你的公钥签名。 key-locked部分(解锁脚本),这两部分放在一起进行验证。 上面这段话可以用下面的公式表示:

交易验证 = 验证(运行解锁脚本 + 锁定脚本)

2.交易传播验证

事实上,节点在验证一笔交易时,不仅验证了交易结构,还验证了很多项。 主要内容如下:

1.交易SIZE不能超过区块大小

2、交易中输入的UTXO是存在的,即我转给你的比特币是真实的

3、交易输入的UTXO没有被其他交易引用过(一笔钱没有被花过两次)

4. 输入总金额 > 输出总金额(需要多留续费)

5、解锁脚本验证(将解锁脚本和锁定脚本放在栈的脚本语言中,验证交易是否合格)

至此,一笔交易已经通过验证。 除了放在本地交易数据池中,还会由节点广播给其他节点。

3. 区块的生成

矿工节点在本地交易数据池中筛选出符合条件的交易,开始构建区块。

区块分为区块头和区块体。 区块头包括:版本号、父区块哈希值、MERKLE树根、时间戳、难度值、NONCE; 区块体由打包的交易组成。

4. 区块的验证与链接

相邻节点收到区块后,会检查区块是否合法。 检查内容包括以下项目:

1.验证POW的nonce值是否满足难度值,

2.检查时间戳是否距离当前时间小于2小时,

3.检查MERKLE树的根节点是否正确,

4.检查block SIZE是否小于block SIZE上限,

5.第一笔交易必须是coinbase交易(即挖矿产生),

6.验证每笔交易

经过以上验证,区块中的所有交易都是真实的,区块真实有效后进行广播,新的区块以同样的方式做同样的工作,所以区块一个一个的生成并链接在一起,区块链就这样形成了。

区块链的大账本一页一页地记录着比特币转给别人能查到人吗,账本越来越厚,一个个区块顺着时间的长河向未来延伸。