与服务器一起的日子

  • mysql
  • linux
  • 高可用
  • nginx
与服务器一起的日子
冰冷的机器也熄不灭火热的心
  1. 首页
  2. 区块链
  3. 正文

区块链技术入门——区块链研究02

2017年9月5日 491点热度 0人点赞 0条评论

上一篇区块链文章我们研究了区块链的定义,这次我们研究区块链所使用的技术。

我们可以说区块链是新技术,也可以说区块链是以前技术的融合,区块链里面使用了很多技术来实现它的完全去中心化,我们可以探讨一下里面使用了什么技术来实现他们的完全去中心化。

节点的生成:

节点的生成才去自愿原则,每个人都可以作为节点加入网络,也可以退出网络。但是区块链这个网络必须要本机连接上一台机器,类似“贪吃蛇”。我们上一篇文章说过文件的切块里面存储着文件的信息,但是在块里面不仅仅存储着文件的信息,还存储着上一个节点的信息(就是hash值),这样可以确保当前区块的信息与前一个区块信息一致,保证了数据的连续。那么既然区块链是连接起来的,第一块数据(这个被称为创世块)如何生成的?对于这个翻遍网络,大家都同意的是在程序运行的时候,创世块应该手动产生,或者第一个程序初始化的产生,不然一个区块链产生了很多创世块,这个区块链就可以完全废弃了。

创世块的生成很简单,就是把block_header中的prev_hash置为0,然后在起始难度(比如难度1)下自己算出一个符合规则的有效nonce值。并把这个有效nonce值写入到block_header中,就可以对外宣布为“创世块”了

(摘自《巴比特论坛》)

文件的分发:

节点文件的分发遵从P2P技术,说白了就是以前的P2P技术的再度创新,文件如何分发?先将文件切块,这个不必说了,P2P都会将文件切块,切块完成后进行文件分发,在文件分发的时候,数据需要进行记录,但是这么多节点,谁来进行记录呢?谁的记录有效?这些都是问题,看比特币的处理方法,进行计算,谁先算出来就是谁记录有效,同时奖励比特币,这样可以刺激其他节点参与计算。对于一部分区块链模型,是不需要计算的,也就是谁计算都可以,但是为了防止同一时间发生同样的交易,还是引入了验证模块,谁先验证完成谁就有话语权来说节点的交易先后。

时间戳:

时间戳对于记账来说十分重要,因为需要记录交易时间,我们知道区块链是从创世块一个个区块连接而成,那么按照什么规则进行连接?如果没有规则的话,进行随便连接,我们得到的不是链了,而是网,一个杂乱连接的网。

时间戳就是保证连接的一个很重要的模块,所有的区块链就是用时间作为连接的规则,从而保证连接的正确性,防止出现分叉。

关于分叉:分叉是区块链的一个术语,分叉的意思就是一条链在某个节点突然变为了两个链,这在区块链中是不允许的,因为区块链是单链,而且多链会出现“重放攻击”,将1号链上的交易完的资金放到2号链上再次进行交易,这样会造成同一笔资金进行两次交易。

分叉分为软分叉和硬分叉:

软分叉就是区块链协议更新造成的新的区块链生成与旧的区块链不和谐但是能进行数据交换,也就是软分叉仍然是一条链。唯一一次出现这样的事情就是“比特币从0.7版本升级到0.8版本,造成0.8版本超过800k的区块不被承认”。

硬分叉就是新的区块链完全不被旧的区块链承认,但是新的区块承认旧的区块,这样旧的区块不能与新的区块进行交易,但是旧的区块链交易完成,可以再次放到新的区块链上进行交易,这样就造成了“重放攻击”。目前还没有发生重放攻击的例子。

=================分割线=================

区块链技术现在也不是必须会用,这个技术只能说将来可能会影响我们的生活,目前区块链的相关技术标准正在学习中,希望大家多多指正,多多学习。再次感谢大家的阅读。

标签: 区块链 定义
最后更新:2017年9月5日

jhin

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2024 与服务器一起的日子. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang