大部分材料都详细分析了挖矿过程,介绍了区【版权所有,侵权必究】转载请注明出处:www.tangshuang.net块是如何产生的。然而,区块的产生并不是区【版权所有,侵权必究】【原创不易,请尊重版权】块链的最终目的,保存交易信息才是区块链的【作者:唐霜】本文作者:唐霜,转载请注明出处。最终目的。所以,更重要的一点是要理解,交【作者:唐霜】转载请注明出处:www.tangshuang.net易信息是如何被打包进区块链的。
原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net输入和输出
一个交易在系统里被输入和输出表示。输入是原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。指这笔交易所要进行转移的币来自之前的哪些【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net输出。输出是指这些币将会被发送给哪些地址转载请注明出处:www.tangshuang.net【本文受版权保护】。在区块链上记账,不是告诉你一个账号现在【访问 www.tangshuang.net 获取更多精彩内容】本文作者:唐霜,转载请注明出处。有多少钱,而是告诉你这个账号当前得到了哪【作者:唐霜】原创内容,盗版必究。些输出。比如一个地址xsw0923sdf本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】ew2389dsfw它的相关记录里面,有本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】A、B、C三个输出的目标地址是它,那么它原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。实际上的余额就是这三个输出的金额的总和。
【关注微信公众号:wwwtangshuangnet】转载请注明出处:www.tangshuang.net但是现在这个地址的用户要转账了,转账过程【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。不是直接从总和数字中取出一部分进行转移,【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。而是分别从A、B、C三个输出中取出部分或【作者:唐霜】本文版权归作者所有,未经授权不得转载。全部,加起来为想要转移的总和的币,进行转【本文受版权保护】【原创不易,请尊重版权】移。这个“取出”过程中,A、B、C就变成【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。了输入,转账目标记录才是这次交易的输出。
【版权所有,侵权必究】原创内容,盗版必究。【转载请注明来源】本文作者:唐霜,转载请注明出处。这样的设计,保证了区块链中的钱从哪里来,原创内容,盗版必究。【原创内容,转载请注明出处】到哪里去,一清二楚,绝不含糊。跟会计做账【转载请注明来源】【版权所有】唐霜 www.tangshuang.net一样,花一笔钱,不单单要记录它花到哪里去本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】了,还要记录这笔钱是从哪里来的,整个资金【关注微信公众号:wwwtangshuangnet】【未经授权禁止转载】链是可追溯的,这也保证了交易不可伪造,资【访问 www.tangshuang.net 获取更多精彩内容】【未经授权禁止转载】金既不会凭空消失,也不会无中生有。
【版权所有,侵权必究】【原创内容,转载请注明出处】【本文受版权保护】【本文受版权保护】hash
将交易加入到区块里面需要涉及三个hash【访问 www.tangshuang.net 获取更多精彩内容】【作者:唐霜】,一个是交易本身的hash,另一个是当前原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。这个区块所有交易的merkle hash未经授权,禁止复制转载。原创内容,盗版必究。 root,还有一个就是区块hash。
【转载请注明来源】【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。上面已经说过输入与输出了,一个交易可能包【版权所有,侵权必究】【关注微信公众号:wwwtangshuangnet】含多个输入输出,通过将这些输入输出信息进【转载请注明来源】本文版权归作者所有,未经授权不得转载。行排列并进行hash运算,就得到一个交易【原创不易,请尊重版权】【原创内容,转载请注明出处】的唯一hash值。
【作者:唐霜】【未经授权禁止转载】一个区块里面包含了多个交易,包括挖矿奖励【作者:唐霜】本文作者:唐霜,转载请注明出处。交易,这些交易都被通过一个merkle运本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】算,得到一个hash root所包含,对原创内容,盗版必究。【作者:唐霜】于merkle可以阅读《区块链如何运用merkle tree验证【原创内容,转载请注明出处】【版权所有,侵权必究】交易真实性》了解。
【原创内容,转载请注明出处】【访问 www.tangshuang.net 获取更多精彩内容】【未经授权禁止转载】区块都hash运算里面,merkle h著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.netash root作为一个参数,因此,所有未经授权,禁止复制转载。【本文受版权保护】交易的信息都体现在了一个区块的hash里【转载请注明来源】转载请注明出处:www.tangshuang.net面。
本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。挖矿
挖矿过程就是计算上述区块hash的过程,【作者:唐霜】【版权所有】唐霜 www.tangshuang.net几乎所有的机器都可以挖矿成功。关键在于谁【版权所有,侵权必究】【未经授权禁止转载】先挖到矿,因为当一台机器挖矿成功就向网络原创内容,盗版必究。【作者:唐霜】广播,其他挖矿在对这个hash进行校验之【原创内容,转载请注明出处】本文版权归作者所有,未经授权不得转载。后,就停止自己的挖矿,开始基于这个区块挖【访问 www.tangshuang.net 获取更多精彩内容】【作者:唐霜】新的矿。而每一个被挖到区块中记录的第一笔本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。交易是给挖到这个区块的矿工自己的奖励金,本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】所以抢到第一个挖矿成功名额对于矿工来说至原创内容,盗版必究。转载请注明出处:www.tangshuang.net关重要。
【访问 www.tangshuang.net 获取更多精彩内容】原创内容,盗版必究。【原创不易,请尊重版权】前面说过,计算区块hash过程里面,会以【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。区块包含的交易的merkle hash 本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。root作为计算的一个参数,因此,挖矿时著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。,矿工会事先从自己本地的交易信息里面提炼【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】出merkle hash root,也就未经授权,禁止复制转载。【版权所有,侵权必究】是说,在挖矿之前,对于当前这个矿工来说,【原创不易,请尊重版权】【本文受版权保护】新区块会包含哪些交易就已经确定好了的。关【本文受版权保护】【作者:唐霜】于这个过程,可以阅读《Merkle Tree》。
【本文受版权保护】【原创不易,请尊重版权】原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。打包交易记录
挖矿成功之后,矿工需要将完整的区块向网络【作者:唐霜】著作权归作者所有,禁止商业用途转载。广播,这个时候,这个区块里面就打包了所有本文版权归作者所有,未经授权不得转载。【本文受版权保护】上述对应的交易。
本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。【转载请注明来源】现在有三个问题:
本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net- 在打包开始之前,这些交易记录是以什么方式【版权所有,侵权必究】【未经授权禁止转载】存在于网络? 【转载请注明来源】转载请注明出处:www.tangshuang.net
- 打包是否会把所有交易记录打包进区块?怎么【原创不易,请尊重版权】本文作者:唐霜,转载请注明出处。可能保证所有交易都不被遗漏? 【转载请注明来源】【转载请注明来源】
- 如何防止矿工伪造交易?将伪造的交易打包进本文版权归作者所有,未经授权不得转载。【未经授权禁止转载】区块? 【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】
手续费
这里需要知道另外一个概念,即“手续费”。【本文首发于唐霜的博客】【作者:唐霜】手续费是发起交易的节点决定给的,和小费性【本文首发于唐霜的博客】【原创内容,转载请注明出处】质一样。比如A打算转给B0.5个BTC,本文作者:唐霜,转载请注明出处。【本文受版权保护】A手上有一个完整的(来自一个输入)BTC【转载请注明来源】【本文受版权保护】,这时A将这1BTC作为输入,输出包含两【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。条,一条是给B0.5BTC,另一条是给自【本文受版权保护】【未经授权禁止转载】己0.49BTC(这个过程叫“找零”)。【转载请注明来源】【版权所有,侵权必究】那么这个交易中就有0.01BTC是消失了【版权所有】唐霜 www.tangshuang.net【转载请注明来源】,消失了的BTC将作为小费奖赏给矿工。
著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】现在我们把自己的角色转换为矿工,当我们从未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net自己的内存中收集所有交易,准备打包区块时未经授权,禁止复制转载。原创内容,盗版必究。,发现这里有一条交易有0.01BTC的小【本文首发于唐霜的博客】【关注微信公众号:wwwtangshuangnet】费,于是我把它作为本次打包优先考虑的交易转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。记录。由于每个区块的大小限制在1M左右,【未经授权禁止转载】转载请注明出处:www.tangshuang.net所有我只选了那些给小费的交易打包进这次区【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。块。而那些未给交易费的交易,在优先考虑完转载请注明出处:www.tangshuang.net原创内容,盗版必究。这些有交易费的交易之后,我才会考虑把它们【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net加进来。
转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net这也就是为什么有些交易被确认很快,有些交【关注微信公众号:wwwtangshuangnet】本文版权归作者所有,未经授权不得转载。易被确认很慢。
著作权归作者所有,禁止商业用途转载。【转载请注明来源】确认
“确认”这个概念也要解释一下,一个区块产转载请注明出处:www.tangshuang.net原创内容,盗版必究。生之后,它不是立即可信的,网络上的节点总【未经授权禁止转载】转载请注明出处:www.tangshuang.net是相信最长的区块链,当一条交易记录被打包原创内容,盗版必究。【转载请注明来源】进一个区块之后,就有了一个确认,而这个区转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】块所在的链后面被再加入一个区块,就是第二本文作者:唐霜,转载请注明出处。【转载请注明来源】个确认,如此下去,一个交易有了6个确认,原创内容,盗版必究。【转载请注明来源】我们就认为这个交易已经确定了,会被永远记【未经授权禁止转载】未经授权,禁止复制转载。录在区块链中。为什么是6个确认呢?因为每【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】一个确认就是一个挖矿过程,都需要提供非常【转载请注明来源】【原创内容,转载请注明出处】严格的计算,因此,这6个区块被同一个矿工未经授权,禁止复制转载。原创内容,盗版必究。创建的可能性微乎其微(可以说是不可能),【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。因此矿工伪造交易也基本不可能。
【原创不易,请尊重版权】未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net由于比特币的区块平均产生时间是10分钟,本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。所以一个交易要1小时左右才能保证成功(最【作者:唐霜】转载请注明出处:www.tangshuang.net快),不过也不是所有的系统都这样认为,有本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。些网站在接受比特币支付时,认为4个确认就未经授权,禁止复制转载。【访问 www.tangshuang.net 获取更多精彩内容】可以给客户发货了。如果不幸这个交易在创建原创内容,盗版必究。【本文受版权保护】的时候,没有被打包进最近的那个区块,那就【未经授权禁止转载】【原创不易,请尊重版权】要延迟10分钟,如此下去,如果后面过了好转载请注明出处:www.tangshuang.net【未经授权禁止转载】几个区块,交易都没有被打包进区块链,那就【转载请注明来源】【版权所有,侵权必究】悲剧了。
【原创内容,转载请注明出处】【访问 www.tangshuang.net 获取更多精彩内容】广播交易
不过也不用着急,比特币系统中只留给了这种【原创内容,转载请注明出处】【转载请注明来源】优先级高的交易50k的存储空间,即使你没原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。有给交易费,也可能在24小时内被打包进区原创内容,盗版必究。【本文首发于唐霜的博客】块。不过也不一定,有些交易可能永远都进不【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。了区块,因为矿工是从自己都内存中获取自己本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。暂存的交易信息,一旦这些内存被释放,那么【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】这些交易信息就会被清空。为了解决这个问题【原创内容,转载请注明出处】【作者:唐霜】,比特币钱包需要不断对自己发起的交易进行【关注微信公众号:wwwtangshuangnet】未经授权,禁止复制转载。检查,如果发现没有被打包进最新的区块,就【访问 www.tangshuang.net 获取更多精彩内容】原创内容,盗版必究。要对网络广播,这样,这个交易就会在网络里本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net不断被提起,矿工又可以把这笔交易写进自己【原创内容,转载请注明出处】【原创内容,转载请注明出处】的内存里暂时放着,等到下次打包区块时,选本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.net择是否把它打包进去。
【原创不易,请尊重版权】转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】小结
本文讲解了对于一个交易而言,“创建(输入【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】输出)-广播-挖矿-打包-确认”的整个过【关注微信公众号:wwwtangshuangnet】【原创不易,请尊重版权】程,读完你应该可以理解交易是怎么被打包进原创内容,盗版必究。【作者:唐霜】区块的了。
【访问 www.tangshuang.net 获取更多精彩内容】著作权归作者所有,禁止商业用途转载。


“当一条交易记录被打包进一个区块之后,就有了一个确认,而这个区块所在的链后面被再加入一个区块,就是第二个确认,如此下去,一个交易有了6个确认,我们就认为这个交易已经确定了,会被永远记录在区块链中。”
博主好!在最长链中,一个区块后面跟着六个区块,就相当于这个区块被确认了?天下矿工这么多,最长链肯定是一直增长的,满足条件不是相当容易吗?如果在一段时间后还没跟着六个区块,那就扔掉?
每个块必须达到可容纳的最大交易记录数才能上链吗?如果是的话,一旦网络中充斥着巨额小费但又不可信的交易记录,区块就很难写满;如果不是的话,生成一个块才是主要收入,一个块中随便有几个交易记录就可以上链了。
初识区块链,请多包涵。