前言
今天给大家带来一篇技术性的文章,虽然比较有技术性,但是我会用通俗的语言讲解,希望热爱区块链的同学们都能弄明白比特币的交易。
比特币交易
这里说的比特币交易,不是你有几个比特交易给了我,而是比特币系统中存放的数据单元我们称之为:交易。在比特币中,交易是被放入区块中的,不同的区块相互连接构成了区块链,下图显示了区块链的构成:
区块链结构
每个区块中都存放了很多交易记录,这些交易记录都是唯一的,他们由矿工收集,然后打包到区块中,最后写入到区块链上。因此负责干这个工作的矿工就会获得比特币奖励,这就是我们通常说的挖矿。
交易的构成
在比特币中,交易的构成包含了三个部分:
交易输入
交易输出
交易输出脚本
我们以下面例子为背景来详细解释这三个部分:
背景:Bob通过挖矿获得了5个比特币,他用1个比特币去 Alice 的商店买了一台电脑,并给Alice 支付了一个比特币。
那么首先,Bob挖矿获得这5个比特币就是一个比特币交易记录,由于这5个比特币是系统给的,因此,交易的输入是空的,交易的输出是指向Bob的钱包地址的,输出的脚本其实是一段只有Bob才能解开的程序。通常,一笔交易会有多个输入和输出,但是必须规定的是,输入多少就得输出多少,我们用一个图来表示:
交易的输入和输出
由于上面的例子中,Bob获得币只是从系统中获得,所以输入只有一个,输出也只有一个。接下来我们再看Bob去买电脑的情况:Bob用一个比特币去买电脑,但是他现在只有一张价值为5个比特币的输入(好比有5块钱面额的纸币),因此Bob就需要给Alice支付5个比特币。实际情况中,Alice需要返还给Bob 4个比特币,但是,在这里,Alice还没有一个比特币,她如何给Bob找钱呢?这时候,交易输出就派上用处了,请看下图:
Bob的交易
由上图我们可以看出,Bob创了一笔只有一个输入和两个输出的交易,在输出中,一个输出将会给Alice1个比特币,另一个输出给自己4个比特币,这样就完成了支付。如果下次再交易的话,Bob的输入就是一个4个比特币的输入了。而Alice的输入就会是一个比特币的输入。以此类推,这个过程就好比记账一样,每个账目都有源头和去处,保证了账目的清晰和准确。
交易脚本
上面提到交易中还有一个交易脚本,交易脚本是伴随着输出的,在上面第二个途中,给Alice的输出就包含了一段脚本,这段脚本是一个程序,只有收款人真的是Alice时候,这个输出才会有效。换句话说,如果Alice像花掉Bob支付给她的比特币的话,那么他需要把上次交易的输出作为下次交易的输入,输入是否能有效,需要Alice运行脚本,解开束缚才能进行交易。
脚本的功能是限制了用户使用交易输入,因为只有输出对应的用户才能使用这笔输出中的比特币。
结尾
上面讲了比特币的交替,如果你认真读的话,一定了解了整个过程,实际情况就是这样,比特币系统中记录的就是这么一条条的交易记录,从而构成了一个超级的大账本。每条记录都有严格的规则,因此,谁的钱也不会出错。
在以后的文章中,我们还会讨论为什么这些交易记录一旦创建了就不会更改,是什么保证了比特币的安全性。欢迎关注我的文章。如果有问题的希望大家留言,我会尽量为大家解答!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。