2018-09-13 14:31:00
农场游戏开发就找领创网络,下面解读:
中本聪设计了“区块链”作为比特币交易信息存储的载体,一段交易时间内得到记账
权的矿工被打包到一个区块中。区块是比特币存储的基本单元,比特币每一个数据区块记
录了神奇数、区块大小、区块头(Block Head)、交易计数、交易详情等五项内容,其中
比特币的神奇数“0xD984BEF”是区块之间的分隔符;区块大小反映了区块的实际占用空
间;区块头负责连接到前一个区块(父区块)并为区块链提供完整性;交易计数记录了区
块记录的所有交易的数量;交易详情则记录一段时间内发生的所有交易。为便于理解,通
常将区块分为区块头和区块体,区块体用于记录一段时间内发生的交易和状态结果。图
2.17所示为区块结构(块头+交易详情)。
(1)区块头。比特币区块头的主要字段(见表2.4)包括版本号、父区块的哈希
值、Met?kle树的根值(以下简称“Merkle”根)、时间戳、难度目标、随机数等字段,其
中难度目标和随机数的主要作用在于控制区块生成的频率,保证无论算力多么强大,比特
币都要维持大致10分钟产生一个区块,以下重点介绍父区块哈希、Met’kle根、时间戳的
工作机制。
①基于父区块哈希构建链式关系。区块哈希是根据区块头的版本、父区块哈希、
Merkle根哈希、时间戳、难度目标、随机数等字段连接起来通过双重哈希计算出来的。区
块之间通过父区块哈希建立了非常稳定的链式结构,从一个区块到前一个区块,直到创世
区块。区块哈希可以被视为区块的“精准快照”,增加、修改、删减任何交易数据都会导
致区块的哈希值发生变化。若区块链中某个区块哈希值发生变化,区块链将在此位置发生
断裂,下一个区块将无法链接到本区块,见图2.18。
②所有交易的数字指纹“Merkle根”。哈希二叉树又被称为Mer?kle(梅克尔)
树,不同于普通的二叉树,哈希二叉树采用哈希指针连接左右子树/节点。普通指针指向
数据存储的位置,哈希指针不但可以指向数据存储的位置,还可以验证数据是否被篡改
过。梅克尔树的构建过程如下:
若最初需要由交易A、B、C、D构成一颗Merkle树,首先根据交易数据得到交易哈
希H。、HB、Hc和HD,交易哈希通过双层SHA256哈希算法实现,即Ha=SH.A256
[SHA256(交易A)],串联相邻叶子节点的哈希值然后哈希之,即Ha和Hb、Hc和Hd分
别链接后再做两次哈希得到Hab(Hab=SHA256[SHA256(Ha+Hb)]和Hcd。,重复上
述动作得到HABc。作为.Merkle根,HABc。代表了A、B、c、D等4个交易。区块中用于激励
矿工的新币发行交易将被作为构建Mer。kle树的第一个交易,这个交易又被称为币基
((;oinbase)交易。如果该区块中只有一个发行交易(如创世区块),那么那笔交易的哈希
就是该区块的Met?kle根(见图2.19)。
Met-kle树要求有偶数个叶子节点,若为奇数个叶子节点,那最后的叶子节点会被复制
一份以构成偶数个叶子节点(见图2.20)。
上述构造MeI?kle树的方法适用于从任意数量的交易构造Merkle树(见图2.21)。
比特币体系中采用梅克尔树的方式存储一个区块中所有交易的主要目的如下:一是保
证区块交易的完整性,如果一个恶意用户尝试在树的下部加入一个伪造的交易,所引起的
改动最终将导致根节点的改动以及区块哈希的改动,梅克尔根实际上代表了所有交易,参
与了区块头哈希的生成,保证了交易的完整性和唯一性;二是支持点对点输出,允许区
块的数据可以零散地传送:节点可以从一个源下载区块头,从另外的源下载与其有关的树
的其他部分,而依然能够确认所有的数据都是正确的;三是提供一种校验区块是否存在某
交易的高效途径,为了证明区块中存在某个特定的交易,不需要进行全量搜索,只需要计
算log:N次,就可以确认区块中是否包含该交易,形成一条从特定交易到树根的认证路径
或者Mex’kle路径即可,交易数量越大效果越明显;四是可以在不存储块中完整交易信息的
情况下验证块中的交易,假设节点要验证区块中交易A是否正确,它可以从别的节点那里
获取Hb、Hcd、Habcd。等哈希值,而无须从对方那里下载完整的交易数据。
这种不需要维护一条完整的区块链的节点,又被称作“简单支付验证(SPV节点”)。
简单支付验证指的是“支付验证”而不是“交易验证”。“交易验证”非常复杂,涉及验
证是否有足够余额可供支出、是否存在双花、脚本能否通过等,通常由运行完全节点的矿
工来完成。“支付验证”则比较简单,只判断用于“支付”的那笔交易是否已经被验证
过,并得到了多少的算力保护(多少确认数),简单支付基于梅克尔树。简单支付节点不
需要下载整个区块,只需保存区块头确认工作量证明,然后下载与其交易相关的梅克尔树
“分支”去验证交易的存在。这使轻节点只要下载整个区块链的一小部分,就可以安全地
确定任何一笔比特币交易的状态和账户的当前余额。未来,大部分用户都不会运行完整节
点,梅克尔树协议对比特币交易的长期持续性可以说是至关重要的。简单支付验证的工作
原理①如下:
计算该交易的hash值tX―hash;
从网络上获取并保存最长链的所有block header至本地;
定位到包含该tx―hash所在的区块,验证block headei?是否包含在已知的最长链中;
从区块中获取构建merkle tree所需的梅尔克哈希认证路径,对图2.18中的交易H。而
言,梅克尔哈希认证路径包括Hl、Hij、Hmnop、Habcdefgh;
根据这些hash值依次计算出父节点,最终计算出merkk―root―hash;
若计算结果与block header中的merkle―root一.hash相等,则交易真实存在。
根据该block所处的位置,确定该交易已经得到多少个确认。
简单支付极大地节省了存储空间,减轻终端用户的负担。block header。只有80个字
节,按照每小时6个的出块速度,每年产出52 560个区块。当只保存block header’时,每
年新增的存储需求约为4M字节,100年后累计的存储需求仅为400M,用户使用普通设备
就可以实现SPV支付验证。
③分布式的时间机制。对于人类的生产生活来说,有统一的、准确的时间是非常
必要的,互联网的前辈们很早就发明了NTP(Nel’work Time Protocol,网络时间协议)用于
提供国际标准时间。绝大部分的商业机构使用NTP(NetWOElk Time Protocol,网络时间协
议),但是普通用户或者矿机的时间可能并没有这么准确,那么赢得记账权的矿工在打包
时究竟使用哪个时间呢?比特币没有使用国际标准时间,也不放心矿工的本机时间。每个
比特币节点都有多个同伴节点,节点之间交换时间信息,赢得记账权矿工选用同伴节点
(不少于5个)时间的中位数(中位数比平均数更不容易受到极值的影响)作为区块的时
间。比特币对这个时间也进行了一些限制,如大于前11个区块的中位数,中位数和本地
系统时间差别不超过70分钟等。
该时间戳能够证实特定数据必然于某特定时刻是的确存在的,因为只有在该时刻存
在了才能获取相应的随机散列值,攻击者更难于操控区块链,所以并不需要太精确。同
时,区块头部Nonce字段只有32bits,能生成的随机空间太小,很可能出现无解(没有
符合难度要求的解)的情况,此时可以通过微调时间戳来辅助挖矿hash值的计算,提
高出块的可能性。区块块头的时间戳并非严格准确的时间,甚至也不保证顺序。多次出
现了后一区块时间早于前一区块时间的情况,例如区块139’793的时间戳是1 312 599
459(北京时间2011/8/6 10:57:39),而其父区块的时间戳是1 312 599 808(北京时
间2011/8/6 11:3:28);区块145 045、145 046、145 047、145 048连续出现这种情况。
比特币采用这种分布式方案的一个优点是比特币的时间不受恶意操控,作为存在性证明的
公信力更强。
(2)交易存储。区块大小不能超过1MB,区块头只有少量概要信息。区块的主要
信息是交易详情,这些交易以原始交易(又称序列化交易)的方式存储,交易存储的顺序
和梅克尔树的构建顺序一样,区块创建的新币发行交易是所有交易中的第一个,由此查询
区块116219中可以看到该区块存储了5条交易的哈希
菏泽领创网络专注于农场游戏开发!
2018 09-13
比特币账本记账过程
中本聪设计了“区块链”作为比特币交易信息存储的载体,一段交易时间内得到记账 权的矿工被打包到一个区块中。区块是比特币存储的基本单元,比特币每一个数据区块记 录了神奇数、区块大小、区块头(Block Head)、交易计数、交易详情等五项内容,其中 比特币的神奇数“0xD984BEF”是区块之间的分隔符;区块大小反映了区块的实际
2018 09-13
比特币交易过程(3)
(3)交易的过程。比特币是一个分布式系统,由于缺乏第三方权威机构,比特币 交易的有效性和合法性需要确认,比特币交易需要通过如下环节成交: ①创建环节:如甲方向乙方采购某商品,双方约定通过比特币进行支付,乙方向甲 方提供钱包地址,甲方根据乙方钱包地址创建一个比特币交易,需要注意甲方拥有这笔拟
2018 09-13
比特币交易过程(2)
(2)交易的数据结构。比特币有产量交易、脚本交易和通用地址交易三种类型。 产量交易实际上就是比特币新币的发行,用于奖励第一个打包区块的矿工,矿工挖出的新 币是所有币的源头。脚本交易的接收地址不是通常意义的地址,而是一个合成地址,以3 开头,需要几对公钥一起生成合成地址,这就是我们前面讲过的多重钱包的概念。通用地 址交易是最常见的交易类型,若不强调本书中的交易通常指的是通用地址交易。
2018 09-13
比特币交易过程(1)
比特币的体系中只有账簿,没有任何实体形式的比特币。比特币交易①指的是一个用户向另一个用户支付一定数量比特币的过程,其操作类似于电子银行转账,然而在运行机制上有实质性的区别。银行转账的前提是银行被赋予了特殊的角色,具有超过普通商业单位的高信用度。银行在核验付款方身份,检查付款方可用余额等流程后执行转账指令,若指令成功执行,银行账簿中付款方余额减少,收款方余额增加。银行作为第三方可信机构
2018 09-11
比特币账户生成机制二
比特币钱包。出于妥善保管密钥和方便用户使用等维度出发,人们设计出了 各种各样概念的比特币钱包,按照运行环境分为桌面钱包、网页钱包、移动端钱包和硬件 钱包等四种;根据是否联网将比特币钱包分为“热钱包”和“冷钱包”;为了更好的保存 密钥提出了“脑钱包”和“纸钱包”的方法;多重签名钱包则支持多人按照事前约定的
2018 09-11
比特币账户生成机制一
比特币“账户”体系中有=三个重要的概念:钱包地址、密钥和比特币钱包。比特币钱 包是比特币生态圈中最基础、最重要的工具软件,用户最先接触的就是比特币钱包,通过 比特币钱包发送或者接收比特币,简单易用的比特币钱包对于比特币的推广是极为重要 的。比特
2018 09-09
比特币初印象 (二)
前景客观的支付机制。即使对比特币持批评态度的人士,也开始看到一些优点,最初路透社财经专栏作家菲利克斯?沙尔蒙批评道“比特币的价格如此不稳定,使它不可能实现其基本目的――货币,如果消费者不知道比特币能值10美元,还是100美元,他们就不太愿意使用比特币,商家也同样不愿意接受比特币”。后来,沙尔蒙对比特币的口径发生了些许变化,他说“到目前为止,从许多方面来说,比特币是世界上最好、最干净的支付机制。所以,如果我们要发明更好的机制,我们必须学习比特币做得对的方面;同时,还要从它做错的方面吸取教训
2018 09-08
比特币初印象 (一)
跌宕不定的价格。大多数人对比特币的认识都始于其价格的疯狂增长,马克.布莱赛特在《比特币:加密货币知识必读》一书中介绍了2009--2016年比特币的价格变化情况(见图2.2)。比特币的价格经历过多次过山车般暴涨暴跌,实际上价格行情走势也远比年度均价波澜壮阔。在多次危机时刻①,很多人预言比特币的体系将要崩溃,比特币将一文不值,但是稍经调整比特币的价格就会重新攀上新的高位,2017年9月,比特币已经高达3 791美元;2017年11月比特币价格已经突破8 700美元,2018年年初一度超过2万美元
2018 09-08
揭秘加密货币比特币诞生记
知乎历史上最值得感慨的应该是201】年有一位手头只有6 000元的大三学生寻求的理财建议(见图2.1)。如果当时那位学生采纳了这个建议,那么他现在可能已经是亿万富翁。可惜很多人当时根本不知道比特币是什么,所以也看不懂比特币这种新生的事物为什么会升值。比特币是什么?官网是这么定义的:“比特币基于P2P技术运作,无须中央管理机构或银行;交易管理和比特币发行由比特币网络统一进行。比特币是开源的;其设计是公开的,任何人都无法拥有或控制比特币网络,人人都可参与其中。基于其种种独有的特性,比特币使之前任何支付系统都无法实现的激动人心的用途成为可能”。现在你肯定会好奇比特币价格为什么涨得这么厉害,甚至还会好奇它的“种种独有特性”,那么让我们开始全方位揭秘比特币的运行机制。成为当年增长最快的加密货币。
2018 09-07
去中心化的新型虚拟货币――加密货币
加密货币是指以比特币为代表的运行在去中心化网络系统上的一种虚拟货币,这种虚拟货币的典型特征是无须依赖第三方即可实现点对点(Peer-to-Peer)支付,在实现上基于以密码算法为核心的区块链技术,所以也被称为“密码货币”“加密货币”或“加密数字货币”
网站建设咨询
在线沟通,请点我在线咨询
联系电话:13256201620