第一章区块链基础概念

简介: 第一章区块链基础概念

1.1.1区块链的基本概念

区块抽象到计算机语言中就是一个对象、一个结构体、一个类,同样类中也可以定义属性、变量和方法,但区块里包括的内容可以自己来定义。比如,以太坊公链的区块结构,它有变量,我们就可以自己进行定义。以下是我们设置一个区块包括变量的例子。

1.1.2链的分类

区块链的链分类通常有3类,即公有链、私有链和联盟链。这3类链的主要区别是:

(1)公有链的维护节点比较多,节点网络对所有人开放,任何人都可以进行特定的数据访问。

(2)私有链是面向个人或某个组织的。

(3)联盟链是多个组织团体的节点联合在一起维护的,对组织开放。

1.2共识的作用

每条区块链上的节点都有存储数据的地方,每个节点之间需要相互通信,通信过程中要保证数据的一致性,此时就诞生了区块链技术栈中的另一个知识点:共识,又称共识机制。

如果区块链中没有共识机制,那么节点之间就会各干各的,会失去一致性,区块链不会达成统一性。

共识算法的作用?

  • 在众多节点且相同的时间流逝中,A节点有可能诞生一个区块1,B节点也有可能诞生一个区块1,这样它们诞生的区块号就发生重复了。在同一条链中,相同区块号的区块最终只能挑选一个串接到链中,这时取谁的好呢?此时就需要用共识算法这一规则来做出选择了。

1.2常见的共识算法(三种)

  • PoW(工作量证明算法)

挖矿者进行的计算量越大,解答的问题越多,那么就更容易获得记账权(该矿工挖出的区块被接入主链)==⇒”多劳多得”

  • PoS(股权证明算法)

该算法没有挖矿这一说法,而是在创世区块内写明股权分配比例,谁的股份多,谁就容易获得记账权。

  • DPoS(股份授权证明机制算法)

DPoS引入了“见证者节点”这个概念。见证者节点可以生成区块。注意,这里有权限生成区块的是见证者节点,而不是持股节点。

  • BPFT(拜占庭容错算法)

联盟链中常用,此处略…

见证者节点:

每一个持有股份的节点都可以投票选举见证者节点,得到总同意票数中的前N位候选者可以当选为见证者节点。

三种算法的比较:DPoS>PoW+PoS

PoW PoS DPoS
优点 公平 防作弊,节约消耗 能耗低,去中心化,公平
缺点 吃硬件,吃算力 不公平 有安全隐患

1.3共识算法的实现

1.3.1定义候选区块数组

候选区块数组可以保存每个节点广播过来的和自己当前节点生成的对象。

globleBlocks []Blocks//公链区块数组
candidateBlocks []Blocks//候选区块数组

我们定义的区块体结构block如下:

type Block struct{
  Timestamp string//时间戳
  Hash string//哈希值
  PrevHash string//上一个区块的哈希值
  NodeAddress string//区块节点地址
  Data string//区块的数据
}

1.3.2定义共识算法机制难度系数difficultlty

该系数表现了难度系数

  • 生成新区块:
func generateBlock(old Block,data string) Block{
  var newBlock Block;
  t:=秒级别时间戳
  newBlock.Index=oldBlock.Index+1
  newBlock.Timstamp=t.String()
  newBlock.Data=Data//区块的附属数据
  newBlock.PrevHash=oldBlock.Hash//区块的父区块的哈希值
  for i:=0;;i++{
    newBlock.Nonce=hex;
    newBlock.Hash=calculateHash(newBlock)
    if isBlockHashMatchDiffculty(newBlock,diffculty){
      candidateBlocks=append(candiateBlocks,newBlock)//添加候选区块
      break
    }
  }
}

假设节点启动了一个子协程且在不断地计算候选区块数组中区块的哈希值,所计算出的哈希值满足难度系数difficultlty的校验

var resultBlock Block
for block~candiateBlocks{
  resultBlock=block
  break
}
continue
}



目录
相关文章
|
存储 算法 安全
区块链概念介绍
介绍区块链及EOS的相关概念
125 0
|
存储 算法 安全
区块链概念1:Hash 算法
区块链概念1:Hash 算法
553 0
区块链概念1:Hash 算法
|
存储 供应链 安全
区块链游戏代币项目系统开发逻辑分析讲解(成熟概念)
区块链游戏代币项目系统开发逻辑分析讲解(成熟概念)
258 0
|
存储 算法 安全
区块链包含术语概念【27术语整理汇总】
区块链包含术语概念【27术语整理汇总】
186 0
|
存储 算法 安全
BlockChain:区块链技术基础概念综合理解——个人总结
BlockChain:区块链技术基础概念综合理解——个人总结
BlockChain:区块链技术基础概念综合理解——个人总结
|
存储 JavaScript 算法
从概念到底层技术,一文看懂区块链架构设计!
区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与 VR 虚拟现实等比肩的热门技术之一,本身不是新技术,类似 Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。 无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链产品。与此同时,梳理与之相关的知识图谱和体系,帮助大家系统的去学习研究。
1248 0
从概念到底层技术,一文看懂区块链架构设计!
|
物联网 Java 5G
BlockChain:区块链技术周边概念(Relevant Concepts of BlockChain)简介、入门、使用之详细攻略
BlockChain:区块链技术周边概念(Relevant Concepts of BlockChain)简介、入门、使用之详细攻略
BlockChain:区块链技术周边概念(Relevant Concepts of BlockChain)简介、入门、使用之详细攻略
|
区块链 5G
[转]区块链应用概念大爆发 BATJH、三大运营商如何“链战”?
东方风来满眼春,政策风口下的区块链不仅点燃了国内市场热情,也让全球从业者将目光投向中国。
|
区块链
[转]机构建议投资者谨慎参与区块链概念投资
上周,市场刮过一阵“区块链旋风”。10月28日,数十只区块链相关股票涨停。截至11月3日,Wind概念板块中,数字货币指数5日涨幅4.27%,区块链指数涨幅3.59%,涨幅在所有wind概念板块指数中排名靠前。区块链行情是不是转瞬即逝的概念炒作?后续是否还可以参与?业内人士表示,区块链应用尚属早期,相关项目投资风险较高,普通投资者需警惕风险,谨慎参与。
|
存储 数据库 数据安全/隐私保护
科普 | 区块链概念最全解析:区块链的下一个十年什么样?
在群体性疯狂之中,思考和认识水平从来比账户上一时的数字更关键。
1934 0