初识区块链_1_一些概念

1 一些概念

1.1 基本概念

1.1.1 区块 block

一个区块是若干交易数据的集合,它会被标记上时间戳和前一个区块的特殊标记。区块头经过哈希运算后会产生一份工作量证明,从而验证区块中的交易。有效的区块经过全网络的共识后被加入到主区块中。区块数据结构是Merkle tree,一种哈希树结构。[1]

有时若干个区块会被同时创建出来,这样就在区块链链条上形成分支,区块链会使用特定的算法给这些冲突的历史版本打分,最终使得在诸多历史版本中选出那个得分比较高的。那些存在于被丢弃的历史版本中,没有存在于得分最高的历史版本中的区块会被称作孤儿区块。(orphan blocks)[2]


图1 区块链信息
主链(黑色)由一系列的区块构成,从创始区块(绿色)一直延伸到当前区块。孤儿区块不在主区块之中。

一旦一个节点收到了一个分数更高的历史版本(一般是一个旧区块连一个新区块),他会把这个版本增加或覆盖到自己的数据库中,同时再发送给其他的节点。不过并没有情景能确保说,某个特定的记录将永远留在历史的最佳版本里。
因为区块链是把新区块上的分值加到旧区块上的,而且新区块有奖励、覆盖旧区块没有奖励,一条记录能被改写掉的可能性是随区块链的增长而几何级接近0的。
举例来说,一个使用工作量证明的系统里,一个有着最多累积工作量证明的永远会被网络认证为是有效的。有多种方法能被用来演示足够的计算水平,与传统并行计算的方法不同,区块链中的计算是多余的。[3]

1.1.2 创世区块 genesis block
中本聪在2008年所开发出的第一个区块,高度为0,是所有已有区块的起始区块。
1.1.3 区块链 blockchain
区块链则是一连串的区块,可以把他看作是连续的、可被验证的记录串。从设计角度上,区块链是能避免对已有数据的修改的。(即在两部分中间用可验证的永久记录来记录交易历史)数据结构可以看作是一个链表。
每一个新区块的增加都需要全网的共同确认,而这就造成已有的记录难以被更改。因为,已有记录的变更都需要后续所有区块的确认,需要耗费很大的算力。
最初在中本聪的论文里block chain俩词是分开的,到2016年已经合到一起去了。
1.1.4 BIP bitcoin improvement proposals
比特币社区成员所提交的一系列改进比特币的建议。
要提交一个BIP协议,现在需要先把想法或者文档发给bitcoin-dev@lists.linuxfoundation.org社区成员,讨论通过后才能提PR(pull request),被通过后就能出现在https://github.com/bitcoin/bips了。
当前BIP的状态一共可分为9种,它们分别是Proposed (提出)、Draft(草案)、Active(激活)、Final(落地)、Replaced(被替代)、Withdrawn(撤掉)、Deferred(推迟)、BIP number allocated (BIP编号被分配)、Rejected(拒绝)。[4]
这里转载巴比特论坛版主玛雅对上述过程的描述:
  1. 想法,任何一个人都可以通过任何途径渠道,如论坛,推特等等,提出自己改进初步想法,来争取更多人支持认同。
  2. 提案,可以汇总社区讨论的建议,以较规范的格式,详细地描述方案,形成一个BIP提案文件提交。
  3. 正式提案,对较重要或者认可的人较多的BIP提案分配序号。以便方便大家讨论区分这个提案,有序号的提案算是正式提案。
  4. 落实代码,一些开发者会依据BIP正式提案的构思,落实成具体的代码。并且在测试网络上进行严格的测试。以确保代码尽量没有Bug。
  5. 激活设定,代码没有问题后,根据《BIP9升级规范》,设定激活门槛,分配激活标记位,缓冲时间等。
  6. 发布版本,若足够多的人签名同意,那么会吸纳此BIP代码在最新版本中发布包含这个BIP代码的版本,但是处于未激活状态。
  7. 激活,等待达到BIP9设的激活门槛后,方案正式激活生效。实测是否方案成功。若出现问题可能回到上一版本。

1.2 探索概念
1.2.1 确认
当一项交易被区块收录是,我们可以说他有一次确认。矿工们在此区块后每再产生一个区块,此项交易的确认数就会再加一。一般确认数达到六次或以上时,认为这笔交易比较安全且难以逆转。
区块链的底层有四部分构成,一个分布式的数据库用来存储以往和将来的交易数据,密码学的公私密钥体系用来确认交易双方的身份,P2P网络用来广播和蔓延各类消息(如节点加入消息,节点失效消息,得到挖矿数据的消息)和 用来决定节点记账权利的共识机制。
共识机制在区块链中扮演着核心的地位,共识机制决定了谁有记账的权利,以及记账权利的选择过程和理由。不用的虚拟货币采用共识机制不同,常见的共识机制如POW,POS,DPOS 拜占庭容错等。比如比特币使用的是POW机制。
POW(Proof of Work),即工作量证明机制。整个系统中每个节点为整个系统提供计算能力(简称算力),通过一个竞争机制,让计算工作完成最出色的节点获得系统的奖励,也就是完成新生成货币的分配。
区块链是一个持续增长的顺序块组成的,每个块包含了头文件和一系列的交易信TXi,其中头文件中保护了timestamp Ti ,上一个块的索引Hi-1,和nounce Ni-1,区块链是密码上的安全,对于每一轮只要找到相应的HASG的碰撞就算成功,HASG的碰撞的意思可以了解为hash值的前多少位相同,我们知道何难找到两个hash一模一样的文件,但是我们可以找到前几位相同的,我们将一个完整的挖矿过程整理如下:
f(Di)>SHA256(SHA256(Hi−1||Ti||TXi||di||Ni)))
其中Di是难度系数,可以认为是前多少位的碰撞。挖矿的过程就是在不停的尝试找Ni的过程。
POW依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。[5]
优点:
1)算法简单,容易实现;
2)节点间无需交换额外的信息即可达成共识;
3)破坏系统需要投入极大的成本;
缺点:
1)浪费能源;
2)区块的确认时间难以缩短;
3)新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;
4)容易产生分叉,需要等待多个确认;
5)永远没有最终性,需要检查点机制来弥补最终性;

图2 验证过程的简单示例
1.2.2 挖矿

顾名思义地,挖矿即代表新区块的发现过程。

区块中的第一笔交易是比较特别的,因为他将给这个区块的创造者产出更多的比特币。这使得新比特币能够投入流通,每隔210 000个区块,新挖掘区块的奖励就将会减半。最开始时发掘出一个新区块的奖励在50比特币,2012年下半年和2016年分别降低到了25比特币和12.5比特币。这个减半的过程在新比特币再不能生成之前将进行64次。

下面是一个挖矿过程的简单示例。

  1. 新的交易被广播通知到所有的节点。
  2. 每个矿工节点收集所有的交易信息到一个新的区块里。
  3. 每个矿工节点尝试解出这个区块的工作量代码。
  4. 当一个节点发掘出了一个工作量,它会把这个区块广播给所有的节点。
  5. 接收到信息的节点验证交易有效性,有效的话接受它。
  6. 节点一旦接受新区块,会开始发掘下一个区块。在挖掘下个区块时带上这个已被接受的新区块的信息(哈希值)。

1.2.3 难度

整个网络会通过调整“难度”这个变量来控制生成工作量证明所需要的算力。具体理解可以参考POW机制相关。


图3 新区块挖掘难度显著增长

1.2.4 难度目标
使整个网络的算力大致在每10分钟产生一个区块所需要的难度数值即为难度目标。(对于比特币来说是这样)
1.2.5 难度调整
整个网络每产生2106个区块后会根据之前2106个区块的算力进行难度调整。

1.3 应用与交易概念

1.3.1 私钥
用来解锁对应钱包地址的一串字符。(私钥生成公钥,公钥哈希出钱包地址)
1.3.2 交易
把比特币从一个地址转到另一个地址。更准确的说,一笔交易指一个经过签名运算的,表达价值转移的数据结构。每一笔交易都经过比特币网络传输,由矿工节点收集并封包至区块中,永久保存在区块链某处。
1.3.3 钱包

钱包指保存比特币地址和私钥的软件,可以用它来接受、发送、存储你的比特币。



参考文献:

[1] http://blog.csdn.net/wo541075754/article/details/54632929
[2] http://8btc.com/article-1792-1.html
[3] https://en.wikipedia.org/wiki/Blockchain
[4] http://www.8btc.com/bitcoin-bip
[5] https://www.zhihu.com/question/53385152/answer/150472073










  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值