1、首先,每个比特币的用户会通过比特币客户端生成一个私钥,并通过私钥生成公钥(公钥与收款地址相关性极强,可以简单理解为收款地址就是公钥),这等于就是这个用户的户头~别人向这个人转账必须输入这个收款地址。
图1 比特币网络
2、用户Alice向Bob转账时,输入了Bob的收款地址,也即是用Bob的公钥将这笔比特币锁定了,未来只有Bob才能使用这笔比特币。(用户的收款地址就是用户公钥)。
而用户Alice为什么能使用这笔比特币呢?因为,比特币系统可以追溯到上一笔Charles给Alice转账的交易,在那笔交易里,用户Charles用Alice的转账地址,将比特币锁定,因此只有Alice使用其私钥解锁,才能够使用这笔钱。
3、交易发生后,将广播全网。很短的时间内,全网所有的节点会接到这笔交易。接到这笔交易后,每个节点会先把交易放入内存,然后对交易进行合法性检验,检验通过后,这笔交易进入有效交易池,等待被装入区块。
4、与此同时,网络上面所有的矿工节点,正在疯狂的计算着谜题。谜题的解题方式就是:将有效交易池里的近千笔交易(TX0,TX1,TX2...),上一个区块的Hash值,Nonce参数组合成一个文本,然后计算这个文本的Hash值。通过Nonce的不断变化,计算出的Hash值也会不断变化。
直到当某一个节点成功计算出小于目标值的Hash值,这个节点就解答出了谜题,并有权将计算Hash值所使用的信息组装成一个新区块,记录在自己的硬盘上,并发起一次全网记账。周围的节点在收到广播的消息后,也都记录下这个新区块。
5、由于矿工节点每次都会使用含有上一个区块Hash值的文本来计算当前区块的Hash值,因此,每一个区块都有上一区块的基因,这使得区块们串成了一个牢不可破的链条。
如果篡改某一区块中的某一交易,那么其后所有的区块数据都无法匹配了。也就形成了区块链不可篡改的特点。
建议收款人不要在公告挂出时立即确认交易完成,而是应该再看一段时间,等待各个挖矿小组再挂出6张确认账簿,并且之前的账簿没有被取消,才确认钱已到账。
6、比特币系统就这样周而复始的更新着自己的区块链条,不断的进行全网记账,不断的运行下去。
注意:
这种通过解谜题来确立节点组包记账权的方式,有一个在区块链界响当当的名字——工作量证明Proof of Work(PoW)。
一般在比特币网络上,会有一条不成文的约定,就是只有你的交易达成并被装入区块后,后面又生成了5个新区块后(加上包含你交易的区块总共6个区块),你的交易才是基本安全的。以每10分钟生成一个区块的时间来计算,也就是你在交易被确认后1个小时左右才能真正确认你的交易是可靠的。
比特币本质上就是一个分布式的P2P网络系统。它由一系列电脑(或其它计算设备)相互连通构成一个P2P网络。每个电脑上都装有一系列的软件,这些软件就构成一个分布式计算系统,用于协调这些电脑完成相互链接、相互传递消息和通信、协调各自的任务和分工。最终这些电脑彼此交互要实现一个共同的目标——维护一套数据库的完整和更新。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。