您的位置:首页 > 其它

一图读懂区块链交易

2020-07-03 15:38 38 查看

一图读懂区块链交易

比特币网络从2009年1月开始至今,在没有专人维护的情况下已经平稳运行超过10年,期间没有出现一次宕机。我们通过一笔交易来认识一下比特币的运行过程。我们首先认识一下下面几个名词。

私钥,公钥,哈希,地址,钱包

比特币网络中的账户实际上是由一组密钥对组成,由一个私钥和一个公钥组成,私钥(只能自己知道,类似于银行账户的密码)用于对消息进行签名,并能够被对应的公钥(可以公开,类似银行账号)所验证。

哈希函数将一个数据集转换成特定长度的包含字母和数字的字符串,称为哈希值。源数据的细微改变会彻底改变哈希值的结果。并且基本不可能预测初始的数据集将会产生的特定哈希值。为相同的数据创建不同的哈希值,比特币使用随机数来实现。随机数是在进行哈希计算之前,在数据中添加的随机数字。改变这个随机数会产生极不相同的哈希值。

地址(类似于账号的名称)是由公钥经过哈希后生成的由字母和数字组成的字符串,意味着已知公钥可以推出地址,而地址无法逆推出公钥。

钱包(类似银行app)用于管理多个

账号
(公私钥对),进行交易转账及余额查询等功能,并且鼓励为每一个新的交易单独创建新地址,以增强隐私性。


图中以Bob是商家,Alice是卖家,Bob接收来自Alice的比特币的场景。

  1. Bob创建一个新的比特币地址,用于接收Alice的付款。
  2. Alice告诉她的钱包(比特币客户端),她要向Bob的收款地址转账,Alice的钱包里有她的每一个比特币地址的私钥。钱包用Alice此次使用的付款地址的私钥,对她的这一交易申请进行签名(如果单个地址的余额不足,钱包会自动用多个地址的余额)。
  3. Alice的钱包将这笔交易发往比特币网络中的一个节点,节点会将这笔交易广播到所有节点,网络上的任何人都可以使用公钥来验证,这个交易申请实际来自一个合法的账户所有者。
  4. Gary、Garth和Glenn都是比特币矿工,他们的电脑将过去约10分钟内接收到的交易(可能包含Alice发送给Bob的交易)打包成一个新的交易区块。
  5. 矿工为区块不停计算(前一个区块哈希值、新交易区块和随机数,每次调整随机数)直到满足条件的哈希值,每个区块需要包含前一个区块的哈希值并且满足特定数量0作为开始的哈希值。
  6. 每一个区块都包含一个名为coinbase的初始交易,这是给胜出矿工的50比特币的支付——在这个例子中是矿工Gary。Gray的钱包里生成了一个新地址,里面的余额是新挖到的比特币数量。
  7. 随着时间流逝,Alice向Bob的转账被埋在了其它更近期的交易下面。任何人要想修改历史交易的细节,就必须重做一遍Gary的工作,然后再重做所有下一级矿工的工作,因为所有的改变都需要一个完全不同的胜出随机数。这样的操作几乎不可能成功。

从上面可以看出,所谓比特币交易就是从一个比特币钱包向另一个中转账,每笔交易都有数字签名来保证安全。
一个交易一旦发生那么就是对所有人都公开的,每个交易的历史可以最终追溯到相应的比特币最初被挖出来的那个点。

注1:每一个区块的coinbase支付给胜出矿工的新币是50个。从2009年1月3日创世区块诞生开始,比特币的发行大约每4年减半,减半后每一个区块包含的奖励币减为25个。

注2:比特币协议里面设置了挖矿完成的大概时间是10分钟,一般商家会2~3个块才会确认收到。

注3: 一个地址上收到的多笔转账,并没有合并到一个余额里,仍然作为独立的各个交易记录存在,而在转出时,会将多笔原来的输入(以满足特定数量)作为一个输入(一笔交易)转出。

注4:交易过程中矿工会收取一定的手续费,比特币理论上是可以无限切割的。目前最小的比特币单位叫做“中本聪”,相当于0.00000001个比特币。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: