区块链原理与体系架构

文章目录

  • [一 区块链基本概念](#一 区块链基本概念)
    • [1.1 区块链基本概念解释](#1.1 区块链基本概念解释)
    • [1.2 区块链的基本原理](#1.2 区块链的基本原理)
    • [1.3 区块链优缺点](#1.3 区块链优缺点)
  • [二 区块链核心技术](#二 区块链核心技术)
    • [2.1 区块链的网络架构](#2.1 区块链的网络架构)
    • [2.2 交易过程](#2.2 交易过程)
    • [2.3 数据区块](#2.3 数据区块)
    • [2.3 节点网络和分叉问题](#2.3 节点网络和分叉问题)
  • [三 区块链体系结构](#三 区块链体系结构)
  • [四 区块链架构关键技术](#四 区块链架构关键技术)

一 区块链基本概念

  • 区块链是一种分布式账本技术,主要特点是去中心化、交易记录不可篡改和安全加密。在区块链系统中,多个节点共同维护一个分布式账本,其中每个交易都被打包成一个区块,并链接到之前的区块形成一个不断增长的链式结构。
  • 区块链不再依赖中心化的记账,而是通过一种密码学计算让全网节点随机争夺记账权,争夺到记账权的节点就会被奖励比特臂,而记完后的账本发布给全网所有节点保存。
  • 区块链技术的本质是通过密码学建立了一个不依赖任何中心的、完全分布式的数据库。
  • 区块链的重要特性包括分布式记账(会计责任分散化)、分布式传播(每一次交换都传播到网络中的全部节点)、分布式存储(数据信息的可容错性高)。

1.1 区块链基本概念解释

  • 公钥:每个节点都有一个公钥,相当于账号,别人付钱时都是付给这个公钥。
  • 私钥:私钥可以解密公钥加密的数据,相当于账号的身份证明,说明付款方确实是你。私钥必须妥善保存,一旦丢失会丢失账户内的所有数据。
  • 交易 :节点之间发生的支付就是交易
    区块:一段时间内的所有交易会打包成一个区块,区块还会记录上一个区块hash值,使得上一个区块不可篡改。区块会包含时间戳,时间戳解决"双花"问题(一个货币不能被支付两次),区块链技术中只承认时间戳在前的交易的有效性。
  • 区块链:由于每个区块都有上一个区块的hash值,造成每生成一个新区块,就会造成老区块的不可篡改,从而形成全部数据的不可篡改。
  • 记账权/娃矿:所谓记账权(娃矿)。其实就是把从上次区块生成后到现在为止的所有交易打包再打上时间戳,向全网公示,51%的节点确认区块有效则该区块就加入到区块链的末端,成为账本的一部分。由于不存在中心,所以记账权是全网争夺的,大家通过计算一道密码学难题,谁先解出来,并获得全网承认,谁就争夺到记账权。因为要鼓励大家参与记账,所以争夺到记账权会有报酬(若干比特臂)。
  • 实际上是穷举随机数算法,把上一个区块的哈希值加上10分钟内的全部交易打包,再加上一个随机数,算出一个256位的字符哈希值,输入的随机数Nonce使哈希值满足一定条件就获得这个区块的交易记账权。
  • 共识机制:所有分布式节点之间达成共识的方法,通过算法来生成和更新数据,认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。以比特臂为例,采用的是"工作量证明"(Proof Of Work,POW)。工作量是需要算力,通过工作量证明,有效的防止了篡改和伪造,因为如果要达到伪造和篡改的工作量,大概需要上亿元成本的算力。

1.2 区块链的基本原理

1.3 区块链优缺点

区块链的优点:

  • 完全分布式:任意节点宕机不会导致网络崩溃。
  • 可靠性和不可篡改性:只有全网51%的节点被攻破才能篡改账本,作假成本极高,需要极大成本。
  • 私密性:由于不需要对方的信用,所以可以匿名交易,交易的数据也可以加密,所以交易的私密性可以得到保障。
  • 瞬间公证、清算、审计、财务公开:由于所有数据全网都有,所以随时随刻可以清算、审计,完全公开,这解决了人类财务体系的痛点。

区块链的缺点:

  • 账本存储成本和处理性能矛盾:账本规模的增长,会占用大量硬件资源,同时提升计算难度。
  • 去中心化程度与共识机制效率的矛盾:去中心化程度越高,共识机制效率越低,交易时延越长,交易吞吐越低。
  • 安全性不足:私钥存储在用户终端本地,如果私钥被窃取,就会出现资金损失。

二 区块链核心技术

2.1 区块链的网络架构

  1. 公有区块链:网络中的节点可任意接入,网络中数据读写权限不受限制,任何节点都可以参与共识过程。
  2. 私有区块链:共识机制、验证和读取等行为被限定在一个范围内,由统一实体控制,仅对内部节点开放。
  3. 联盟区块链:介于公有链和私有链之间,更符合大部分行业场景,适度对外开放。
  • 区块链的底层结构是对等网络--Kademlia(简称Kad)。
  • Kad属于一种典型的结构化P2P覆盖网络(Structured P2P Overlay Network)。
  • 在Kademlia网络中,所有信息均以的哈希表条目形式加以存储,这些条目被分散地存储在各个节点上,从而以全网方式构成一张巨大的分布式哈希表。
  • Kad 网络中每个节点都有一个160bit 的ID 值作为标志符,Key也是一个160bit 的标志符,每一个加入Kad网络的计算机都会在160bit 的key空间被分配一个节点ID(node ID)值(可以认为ID 是随机产生的),<key,value>对的数据就存放在ID 值最接近key 值的节点上。

2.2 交易过程




2.3 数据区块

  • 交易记录会保存在数据区块中,每个区块一般包括区块头(Header)和区块体(Body)两部分。

2.3 节点网络和分叉问题

  • 任何机器都可以运行一个完整的节点,包括如下功能:
  1. 钱包:允许用户在区块链网络上进行交易。
  2. 完整区块链:记录所有交易历史,通过特殊的结构保证历史交易的安全性,并且用来验证新交易的合法性。
  3. 矿工:通过记录交易及解密数学题来生成新区块,成功可以赚取奖励。
  4. 路由功能:把接收到的交易数据传送给更多的节点。

  • 分叉的定义:同一时间段内全网不止一个节点能计算出随机数,即会有多个节点在网络中广播它们各自打包好的临时区块(都是合法的)。
  • 分叉的产生:某一节点若收到多个针对同一前续区块的后续临时区块,则该节点会在本地区块链上建立分支,多个临时区块对应多个分支。
  • 分叉的解决机制:该僵局的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作,其他分支将会被网络彻底抛弃。

三 区块链体系结构

  • 区块链类可分为六层:应用层、合约层、激励层、共识层、网络层和数据。
各层名称 功能
应用层 可编程货币、可编程金融、可编程社会
合约层 脚本代码、算法机制、智能合约
激励层 发行机制、分配机制
共识层 PoW、PoS、DPoS、PoA、PBFT、Raft
网络层 P2P网络、传播机制、验证机制
数据层 数据区块、链式结构、时间戳、哈希函数、Merkle树、非对称加密

应用层

  • 智能合约、链码和去中心化应用程序构成了应用层。
  • 应用层是基于区块链技术开发的应用程序,包括数字资产交易、供应链管理。应用层协议进一步细分为应用层和执行层。应用层包括最终用户用来与区块链网络通信的程序。 比如搭建在以太坊上的各类区块链应用即部署在应用层,而未来的可编程金融和可编程社会也将会是搭建在应用层。在这一层中,开发者可以根据需要设计各种应用程序来满足不同的需求。

合约层

  • 区块链的合约层是指基于区块链技术实现的可编程、自动化的协议层。
  • 智能合约是一种特殊的计算机程序,通过定义编程代码来控制交易和操作。一旦满足预设条件,智能合约就会被自动激活,并执行预先设定的操作。智能合约可以自我验证、自我执行和自我维护,因此具有高度的安全性和可靠性。智能合约可以实现许多不同的应用,例如数字货币、投票系统、分布式存储、物联网等。通过智能合约,各方之间可以进行高效、安全的交易和信息交换,而无需第三方的干预和信任。

激励层

  • 激励层包括经济激励的发行机制和分配机制等,主要出现在公有链当中。在公有链中必须激励遵守规则参与记账的节点,并且惩罚不遵守规则的节点,才能让整个系统朝着良性循环的方向发展。
  • 在私有链当中,则不一定需要进行激励,因为参与记账的节点往往是在链外完成了博弈,通过强制力或自愿来要求参与记账。
  • 激励层的目的是刺激区块链网络平稳运行和发展加入的激励措施。包括发行机制和分配机制。

共识层

  • 共识层封装了网络节点的各类共识机制算法。共识机制算法决定进行记账的节点。记账决定方式影响整个系统的安全性和可靠性。
  • 共识层的主要目的是确保每个节点都能够遵守"最长链原则",在任何时候,只有最长的链条可以被节点纳为区块链的标准状态。在公有区块网络中,新交易只有经过诚实节点验证的才能纳入区块中,新区块也需要经过诚实节点验证才能纳入区块链中。

网络层

  • 网络层涉及三个方面:分布式的点对点网络、网络节点连接、网络运转所需要的传播和验证机制。根据不同场景对于中心化和开放程度的不同要求,可将区块链大致分为三大类:公有链、联盟链和私有链。
    • 公有链是完全不存在把控的中心化机构和组织,任何人都可以读取链上数据、参与交易和算力竞争。典型代表以太坊。
    • 联盟链是介于公有链和私有链之间,部分去中心化,仅允许授权节点启用核心功能,例如参与共识机制和数据传播。
    • 私有链的权限完全由某个组织或机构把控,适用于特定机构内部使用,因此加入门槛高。同时节点数量一般较少,意味着更短的交易时间、更高的交易效率和更低的算力竞争成本。

数据层

  1. 基础组件与结构
    • 底层数据结构:数据组织为区块,每个区块含头部和交易记录。
    • 链式结构:所有区块形成不可篡改的"区块链"。
  2. 加密技术保障安全
    • 哈希算法:将任意长度数据转为固定长度哈希值,确保数据安全与完整性。
    • 加密算法:采用非对称加密、共享密钥加密等,保障交易安全与保密性。
  3. 网络与存储支持
    • 网络协议:通过点对点(P2P)网络实现信息传输与交互。
    • 存储技术:分布式存储技术存储数据和交易记录。
    • 节点管理:维护节点稳定性与系统安全性。

四 区块链架构关键技术

共识算法

  • 共识算法的设计目标是通过去中心化的方式,使得网络中的节点能够就某个特定的交易或状态达成共识,从而确保整个系统的安全和稳定运行。在区块链技术中,共识算法可以看作是网络中各参与方之间的合作规则。通过共识算法,网络中的节点可以在无需信任中心的情况下,就某个具体的数据或状态达成一致。这种去中心化的合作方式,不仅保证了系统的安全性和稳定性,还能够有效地防止欺骗和篡改。

智能合约

  • 智能合约是一种以计算机程序为基础的自动化合约。智能合约的设计是基于事件驱动的,当满足特定条件时,智能合约将自动执行相应的操作。
  • 它通过使用区块链编程语言来定义交易规则和条件,并将其置于分布式账本上。这样一来,智能合约可以自动验证和执行合约中设定的规定,无需人工干预。这种自动执行的机制确保了交易的可信性,并减少了传统合约所带来的不确定性和交易摩擦。

密码学技术

  • 区块链中使用的加密算法是非对称加密算法。
  • 区块链中的数字签名技术也是基于密码学实现的。数字签名可以确保交易的真实性和完整性。当一个用户在区块链上进行交易时,用自己的私钥对交易进行签名,然后将交易和签名一起广播到整个网络中。其他用户可以使用该用户的公钥对签名进行验证,从而确认交易的真实性。
相关推荐
百锦再3 分钟前
Vue大屏开发全流程及技术细节详解
前端·javascript·vue.js·微信小程序·小程序·架构·ecmascript
cute_ming8 分钟前
浅谈提示词工程:企业级系统化实践与自动化架构(三)
人工智能·ubuntu·机器学习·架构·自动化
Solar202530 分钟前
构建高可靠性的机械设备企业数据采集系统:架构设计与实践指南
java·大数据·运维·服务器·架构
虫小宝30 分钟前
导购电商平台用户行为分析系统:基于Flink的实时数据处理架构
大数据·架构·flink
没有bug.的程序员1 小时前
Istio 架构全景解析:控制面 vs 数据面、核心组件与流量路径深度拆解
微服务·云原生·架构·istio·架构设计·envoy·servicemesh
电报号dapp1192 小时前
交易所开发:在数字金融的竞技场中构建信任的圣殿
金融·web3·去中心化·区块链·智能合约
MicroTech20252 小时前
微算法科技(NASDAQ: MLGO)区块链混合算法:实现云存储的去中心化隐私保护
科技·去中心化·区块链
程序员小胖胖2 小时前
每天一道面试题之架构篇|Java应用无感热补丁系统架构设计
java·架构·系统架构
Black蜡笔小新2 小时前
智慧体育馆的数字视觉基座:安防监控EasyCVR视频中台的应用架构与实践
架构·音视频
Juicedata2 小时前
3D-AIGC 存储架构演进:从 NFS、GlusterFS 到 JuiceFS
3d·架构·aigc