区块链(block chain)

这篇具有很好参考价值的文章主要介绍了区块链(block chain)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

区块链是什么?

区块链的底层架构

一、数据层

二、网络层

三、共识层

四、激励层

五、合约层

六、应用层

区块链的特性

区块链用到哪些共识算法


区块链是什么?

区块链就是分布式数据存储、点对点传输、共识机制、加密算法等技术的应用。


狭义上来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。


广义上来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。


区块链的特性:
1、
去中心化:不以任何人任何硬件设备为中心,每个人每个节点都是均等的。
2、
开放性:系统是开放的,透明的。
3、
公平性:公平公正,不受任何人为的干预。
4、
永久性:一旦信息经过验证并添加至区块链,就会永久的存储起来,任何人无法篡改删除销毁等。除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
5、
不可逆性:区块链的记录,不可逆,也就是无法破解!
6、
安全性:区块链采用的密码学加密算法,不可篡改和不可伪造,所以安全性非常高。

区块链的底层架构

区块链基础架构分为6层,包括数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。

1)数据层(Data Layer):主要描述了区块链系统的物理形式,是区块链从创世区块起始的链式结构,包含了区块数据、随机数、时间戳和公私钥等数据,是整个区块链技术中最底层的数据结构。
2)网络层(Network Layer):主要通过P2P技术实现分布式网络的机制,包括P2P组网机制、数据传播机制和数据验证机制。
3)共识层(Consensus Layer):包含共识算法以及共识机制,能够让高度分散的节点在去中心化的区块链网络中高效地针对区块数据达成共识,是区块链的关键技术之一。
4)激励层(Actrator Layer):主要包括经济激励的发行制度和分配制度,其功能是提供一定的激励措施,鼓励节点参与区块链中的验证工作,并将经济因素纳入到区块链技术体系中。
5)合约层(Contract Layer):主要包括各种脚本、代码、算法机制和智能合约,是区块链可编程的基础。
6)应用层(Application Layer):封装了各种应用场景和案例,类似于电脑操作系统上的应用程序。

一、数据层

数据层主要描述区块链技术的物理形式。区块链系统设计的技术人员们首先建立的一个起始节点是“创世区块”,之后在同样规则下创建的规格相同的区块通过一个链式的结构依次相连组成一条主链条。随着运行时间越来越长,新的区块通过验证后不断被添加到主链上,主链也会不断地延长。

每个区块中也包含了许多技术,比如时间戳技术,它可以确保每一个区块按时间顺序相连接;再比如哈希函数,它能够确保交易信息不被篡改。

二、网络层

网络层的主要目的是实现区块链网络中节点之间的信息交流。区块链网络本质上是一个P2P(点对点)网络。每一个节点既接收信息,也产生信息。节点之间通过维护一个共同的区块链来保持通信。

区块链的网络中,每一个节点都可以创造新的区块,在新区块被创造后会以广播的形式通知其他节点,其他节点会对这个区块进行验证,当全区块链网络中超过51%的用户验证通过后,这个新区块就可以被添加到主链上了。

三、共识层

共识层能让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识
区块链中比较常用的共识机制主要有

  • 工作量证明(Proof of Work)
  • 权益证明(Proof of Stake)
  • 股份授权证明(Delegated Proof of Stake)

还有投注共识、瑞波共识机制、Pool验证池、实用拜占庭容错、授权拜占庭容错、帕克索斯算法等。

四、激励层

激励层的主要功能是提供一定的激励措施,鼓励节点参与区块链的安全验证工作。我们以比特币为例,它的奖励机制有两种。在比特币总量达到2100万枚之前,奖励机制有两种,新区块产生后系统奖励的比特币和每笔交易扣除的比特币(手续费)。而当比特币总量达到2100万时,新产生的区块将不再生成比特币,这时奖励机制主要是每笔交易扣除的手续费。

五、合约层

合约层主要是指各种脚本代码、算法机制以及智能合约等。我们以比特币为例,比特币是一种可编程的货币,合约层封装的脚本中规定了比特币的交易方式和过程中涉及的种种细节。

六、应用层

应用层封装了区块链的各种应用场景和案例,比如基于区块链的跨境支付平台OKLink,以及在“应用篇”中我们将讲到的五花八门的应用。

区块链用到哪些共识算法

1、POW:Proof of Work,工作量证明

POW是比特币在Block的生成过程中使用的一种共识算法,也可以说是最原始的区块链共识算法了。POW工作量证明,简单地理解就是,通过一份证明来确认做过一定量的工作。

在比特币系统中,得到合理的Block Hash需要经过大量尝试计算。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算。

这种工作量证明的形式,在我们日常生活中也十分常见。比如驾照,能拿到驾照,说明你已经进行过为期几个月甚至几年的练车和考试;再比如现在很火的吃鸡和王者荣耀游戏中的K/D(Kill/Death)和胜率,分值越高证明你越厉害,同时也说明你进行了大量的游戏练习和技巧学习。

2、POS:Proof of Stake,权益证明

由于POW机制存在消耗算力巨大、交易确认时间较长,挖矿活动集中容易形成中心化等缺点,便演进出了POS权益证明。POS简单来说,就是一个根据持有数字货币数量和时间来分配相应利息的制度,类似平时我们在银行中存款。

基于权益证明共识的区块链系统中,参与者的角色是验证者Validator,只需要投资系统的数字货币并在特定时间内验证自己是否为下一区块创造者,即可完成下一区块的创建。下一区块创造者是以某种确定的方式来选择,验证者被选中为下一区块创造者的概率与其所拥有的系统中数字货币的数量成正比例,即拥有300个币的验证者被选中的概率是拥有100个币验证者的3倍。

在POS模式下,有一个名词叫币龄,每个币每天产生1币龄。比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000。这个时候,如果你验证了一个POS区块,你的币龄就会被清空为0,同时从区块中获得相对应的数字货币利息。

这下就很有意思了,持币有利息。并且由于POS是在一个有限的空间里完成,不是像POW那样在无限空间里寻找,因此无需大量能源消耗。

3、DPOS:Delegated Proof of Stake,授权权益证明

DPOS最早出现在比特股中,又称受托人机制,它的原理是让每一个持有比特股的人进行投票,由此产生101位代表 。我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利完全相等。

从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心数字货币的人身上,类似演唱会的黄牛,大量囤票而丝毫不关心演唱会的内容。

DPOS通过其选择区块生产者和验证节点质量的算法确保了安全性,同时消除了交易需要等待一定数量区块被非信任节点验证的时间消耗。通过减少确认的要求,DPOS算法大大提高了交易的速度。通过信任少量的诚信节点,可以去除区块签名过程中不必要的步骤。

4、PBFT:Practical Byzantine FaultTolerance,实用拜占庭容错

PBFT意为实用拜占庭容错算法,该算法由Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。

PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。

将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

5、RAFT,一致性共识算法

RAFT算法包含三种角色,分别是:跟随者(follower),候选人(candidate)和领导者(leader)。集群中的一个节点在某一时刻只能是这三种状态的其中一种,这三种角色可以随着时间和条件的变化而互相转换。

RAFT算法主要有两个过程:一个过程是领导者选举,另一个过程是日志复制,其中日志复制过程会分记录日志和提交数据两个阶段。RAFT算法支持最大的容错故障节点是(N-1)/2,其中N为集群中总的节点数量。
 文章来源地址https://www.toymoban.com/news/detail-824465.html

到了这里,关于区块链(block chain)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

    Nautilus Chain 是目前行业内少有的真实实践的 Layer3 模块化链,该链曾在几个月前上线了测试网,并接受用户测试交互。该链目前正处于测试网阶段,并即将在不久上线主网,这也将是行业内首个正式上线的模块化区块链底层。 而在上个月,Nautilus Chain 测试网迎来了阶段性

    2024年02月09日
    浏览(35)
  • 【LangChain】调试Chain(Debugging chains)

    Chains(链) 【LangChain】不同的调用方式(Different call methods) 【LangChain】自定义chain 【LangChain】调试Chain(Debugging chains) 就是打印更详细的Chain信息(如:内部信息),以知道它是如何工作的。 仅从 Chain 对象的输出中调试 Chain 对象可能很困难,因为大多数 Chain 对象都涉及大量的输入

    2024年02月12日
    浏览(27)
  • 自然语言处理从入门到应用——LangChain:链(Chains)-[通用功能:自定义Chain和Chain的异步API]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月12日
    浏览(38)
  • iOS 开发 block 等待 block 或 block 等待

    在 iOS 开发中,如果你想要一个 block(闭包)等待执行完成,通常意味着你想要同步地执行这个 block,而不是异步地。然而,block 本身并不直接支持同步等待,因为它们是作为函数对象来设计的,可以异步地传递给其他方法或函数。 在 GCD (Grand Central Dispatch) 中,你可以使用

    2024年03月20日
    浏览(30)
  • LangChain手记 Chains

    整理并翻译自DeepLearning.AI×LangChain的官方课程:Chains(源代码可见) 直译链,表达的意思更像是对话链,对话链的背后是思维链 LLM Chain(LLM链) 首先介绍了一个最简单的例子,LLM Chain: 将一个大语言模型和prompt模板组合起来调用 LLMChain ,即可得到一个LLMChain对象,该对象的

    2024年02月12日
    浏览(70)
  • Python chain函数的用法

    tertools.chain() 方法可以用来简化这个任务。 它接受一个可迭代对象列表作为输入, 并返回一个迭代器,有效的屏蔽掉在多个容器中迭代细节。 from itertools import chain a = [1, 2, 3, 4] b = [‘x’, ‘y’, ‘z’] for x in chain(a, b): … print(x) … 1 2 3 4 x y z 使用 chain() 的一个常见场景是当你

    2023年04月18日
    浏览(37)
  • 马尔科夫链(Markov Chain)

    马尔可夫性(Markov Property)是指系统的下一个状态 仅与当前状态有关,而与以前的状态无关 (即无记忆性(memorylessness),系统不记得当前状态以前的状态,仅仅基于当前状态来决定下一个时刻转移到什么状态) 如果指标集(index set)是连续的,则称为连续时间马尔可夫链(Continuou

    2024年02月05日
    浏览(23)
  • QCC51XX---chain修改

    QCC51XX---系统学习目录_嵌入式学习_force的博客-CSDN博客         如何去修改音频chain链路,就是那种想多加几条输入源或输出,又或者把当前的输入输出换到别的地方的那种应用。例如一个自带mic的dongle,或者模拟输入的LE dongle。          如果要改某个状态下的音频链

    2024年02月12日
    浏览(27)
  • Code Block & Basic Block

    In a programming language, a code block typically starts with certain syntactical constructs such as loops, conditionals, or function definitions. When a compiler walks the Abstract Syntax Tree (AST), it uses this syntax information to recognize the beginning of a new code block. Here are some examples: Loop Statements : for , while , or do-while loops usual

    2024年02月11日
    浏览(26)
  • QCC51XX---chain是什么?

    QCC51XX---系统学习目录_嵌入式学习_force的博客-CSDN博客         高通的DSP对很多人来说还是比较难以理解与操作的,DSP里最基本的是要认识音频的处理链路,也就是平台中的chain。他是由多个模块(operator)连接起来的,连接的方法sink和earbud有些不同,这里会从6.x开始sink的c

    2024年02月12日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包