分布式网络
区块链建立的物理网络基础是:点对点的分布式网络(P2P)
- 这与中心化的 "客户端/服务器" 网络架构有很大不同,它是一种去中心化的网络,提高了数据传输的效率,相比中心化的网络结构而言具有更高的安全性。
作为区块链的底层公有链,这种分布式对等网络即P2P,其最主要的特点是:
- 每一个网络节点之间都是平等的,没有哪一个节点处于中心地位或者对其他节点具有控制、管理权限。
P2P网络系统:
点对点网络 (peer-to-peer, 简称P2P),又称对等式网络 ,是无中心服务器、依靠用户群(peers)交换信息的互联网体系
它的作用在于
- 减低以往网路传输中的节点,以降低资料遗失的风险
与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。
定义
网络的参与者共享它们一部分硬件资源(处理能力、存储能力、网络连接能力...)
- 这些共享资源通过网络提供服务和内容,能被其他点直接访问(无需经过中间实体)
- 在此网络中的参与者既是资源又是获取者,
每一个节点的角色都是相同的
在P2P网络环境中,彼此连接的多台计算机之间都处于对等地位
网络中的每一台计算机,可以做到:
- 网络服务的请求者
- 对其他计算机的请求做出响应
- 提供资源、服务和内容
通常这些资源服务包括:
- 信息的共享和互换
- 计算机资源(共享CPU计算能力)
- 存储共享(使用缓存和磁盘空间)
- 网络共享
- ...
特点
去中心化:
- 网络中的资源和服务分散在所有的节点上
- 信息的传输和服务的实现都可以直接在节点间进行
可扩展性:
- 系统整体的资源可以进行扩充
- 只要节点无限,理论上其扩展性就是无限的
健壮性:
- ==耐攻击:==节点是分散的,某一节点失效可以由其他节点顶替
- ==高容错:==当节点离开,可以重新由另外两个节点进行互连。因为P2P网络是以"自组织"的方式建立的
高性价比:
-
可以利用大量普通节点,将计算机任务/资料分布在各个节点上
充分利用闲置的计算能力和存储空间
隐私保护:
-
由于信息传输直接节点,不经过任何集中环节
信息暴露的可能性就大幅度减少
负载均衡:
- P2P网络环境因为每个节点既是服务器又是客户端,降低了C/S结构服务器计算、存储能力的要求
- 资源分布广,更好实现了整个网络的负载均衡
常见两种架构分析
C/S 架构:
可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。
B/S架构
全称为Browser/Server,即浏览器/服务器结构。
Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可。
总的来说:
C/S架构将计算放在本地,消耗的本地资源
B/S架构在远程服务器端处理计算,消耗的是服务器资源
区块链-分布式账本(DLT)
分布式账本技术(Distributed Ledger Technology, DLT)是一种数据库架构
- 其核心特点是数据的存储和管理不依赖于中心化的管理者,而是分布在网络的多个节点上。
在没有中心权威的情况下,网络中的所有参与者都能够共同维护一个共享、同步和可信的数据库。
区块链是DLT的一种实现,但DLT并不限于区块链。
DLT 特性
去中心化:
- DLT不依赖单一中心化机构来维护和验证数据库
- 数据的处理和存储分布在网络的多个节点上,增强了系统的抗故障能力和抵御篡改的能力
透明性:
- 网络中的所有参与者可以访问DLT数据库的副本,并验证记录的真实性
不可篡改性:
- 一旦数据被添加到DLT中,就无法被更改或删除
- 每个记录都是不可逆的,这为数据的真实性和一致性提供了保证
共识机制:
- 在网络节点之间让数据的准确性和顺序达成一致
- 确保了分布式数据库的一致性和完整性,即使存在恶意节点的情况下也是如此
实现与工作流程
实现DLT的技术和工具有很多:
- 智能合约
- 加密技术
- 分布式数据库技术
工作实现的步骤:
-
建立参与者节点
区块链中的各个区块都在DLT网络中设置节点。
每个节点保持一个账本的副本
-
定义共识机制:
选择一个**
共识机制(如PoS、PoW)来协调不同节点之间的数据一致性**,确保账本的更新能在整个网络中被验证和接收 -
发起交易:
当某个区块发生交易时,这笔交易就会被记录下来
交易信息包括原材料的类型、数量、发送和接收方的标识等
-
签名验证:
交易由发起方用**
私钥签名,网络中的其他节点可以使用发起方的公钥**来验证签名的有效性 -
交易验证:
所有的节点使用
共识机制来验证交易的合法性在PoS机制中,持有更多货币的节点可能由更大的权力来验证交易
-
创建新的记录:
一旦交易被验证,就会被添加到新的区块中
这个块还包括前一个块的哈希值,创建一个不可更改的链
-
广播和验证:
新创建的区块被广播到网络中的所有节点。
其他节点验证新区块的合法性(包括交易的有效性和区块的哈希值)
-
账本更新:
一旦验证通过,每个节点更新其账本副本以包括新的区块
网路上的每个节点都保持着完整、一致、更新的账本
-
透明度:
任何供应链参与者可以查询DLT账本,以追踪产品的历史和状态
消费者也可以访问者这些信息,以验证产品的真实性
-
不可篡改性:
由于每个区块都包含前一个区块的哈希值,任何对已有区块的篡改都将导致后续所有块的哈希值不匹配,从而被网络检测到
共识机制
共识就是大家通过协商达成一致
在中心化架构里面,存在一个权威,其他人都听他的。
但是由于区块链是去中心化的机制,如何让每个节点通过一个规则将各自的数据保持一致是一个很核心的问题
解决方案:制定一套共识算法
- 实现不同账本节点上的账本数据的一致性和正确性。
两个作用
- 对数据进行验证,保证数据的正确性
- 通过共识机制筛选出一个节点来向链上写入数据
由于节点处理数据会消耗成本,因此公有链大多通过发放数字货币的形式来激励更多人参与。
目前常见的共识机制有:POW、POS、DPOS、PBFT、...
🎶🥸🏏区块链专栏前瞻
- 【区块链技术(01)】区块链概述与认识区块链基础知识;区块链标识、哈希值、梅克尔树、难度确认
- 【区块链技术(02)】区块链三种类型:公有链、私有链、联盟差异;激励问题、最终确定性问题
- 【区块链技术(03)】区块链核心技术:哈希与加密算法、智能合约;非对称加密算法与默克尔树;智能合约工作原理与区块链的关系