认识区块链(五):区块链的底层实现之分布式

前言

在认识区块链系列的前几篇中,我们已经介绍了区块链的作用、发展、解决了什么问题、以及底层实现之密码学等等,这篇博客主要围绕的是区块链的另一个底层技术--分布式。

分布式技术是区块链的核心之一,正是因为区块链分布式的多结点,才实现了去中心化、安全可靠等特性。

分布式

在传统的中心化系统中,分布式系统的控制权通常以一个结点或者几个结点掌控(Leader或者主),这种中心化架构容易称为攻击的目标,并且存在故障的风险(Leader挂掉了选出新的主也需要时间)。

而区块链的分布式技术则能够有效解决这个问题。因为区块链是分布式记账系统,并且每个结点之间的地位是等同的,具有更好的容错性,并且数据难以篡改,这是传统分布式系统无法媲美的地方。

关于传统的分布式系统特性,可以在笔者的这篇博客中你真的理解分布式理论吗? - 掘金窥见一斑,这里就不再赘述。

那么,区块链是如何实现分布式的呢?

拜占庭将军

传统的分布式系统在设计时,只会考虑系统中存在的故障,比如结点宕机、网络故障等等,但不存在恶意攻击情况。所以采用的都是非拜占庭的共识机制(Raft)。

"拜占庭将军"是一个解决分布式一致性问题的虚拟模型,拜占庭是罗马的首都,因为地域宽广,将军需要通过信使传递消息,达成一致的决定。但由于将军中可能存在叛徒,这些叛变的将军可能会将错误的信息发出去,以干扰大家的决策。拜占庭问题

这个故事映射到计算机中,将军就成了计算机,而信使则是网络通信系统。系统中的成员计算机可能出错二发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得最终得出的策略出错。

区块链在分布式设计上采用了拜占庭容错机制,在完全开放的环境下,也能够实现数据的一致性和安全性。

去中心化网络

区块链是建立在去中心化网络之上的。在这种网络中,不存在单一的中心节点,而是由众多的节点共同维护和管理整个系统,每个节点都有完整的数据副本,并且可以参与到网络的各项决策和操作中去。

比如比特币的网络就是一个典型的去中心化的网络,每个人都可以成为网络中的一个结点,参与到整个区块链的决策中。

分布式账本

区块链使用分布式账本来记录和存储所有的交易细节及具体数据,这个账本是由整个系统中的所有节点进行维护的,每个节点都会有一个完整的数据副本,这就使得想要篡改账本十分困难,每台机器都可以验证、访问这些账本中的数据。

以以太坊为例,每一个以太坊中的机器都有一个完整的占本。

共识机制

共识机制解决了分布式环境下数据一致性的问题,它确保网络中的节点就账本的状态达成一致意见。常见的共识机制包括工作量证明(Proof of Work,PoW)、权益证明(Proof of Stake,PoS)和权威共识等。共识机制的目标是确保网络的安全性、防止双重支付和保持账本的一致性。

例如比特币中为了减慢生成区块的速度,大约十分钟生成一个新的区块,就引入了工作量证明机制,矿工需要经过繁琐的运算来计算出具体的工作量,从而减慢了生成区块的速度。

去中心化存储

去中心化存储其实本质上是一种冗余的思想,通过将数据存多份(可能是哈希、切片、随机等等方式),来保证某些节点被攻击、或者发生故障的情况下,依旧可以正常提供服务。

推荐阅读

当说到云原生时,我们究竟在谈论什么? - 掘金

不太熟悉Git? 不妨看看这篇文章 - 掘金

一文搞定常见分布式事务实现 - 掘金

你真的理解分布式理论吗? - 掘金

深入了解异地多活 - 掘金

02.K8S架构详解 - 掘金

01.你为什么需要学习K8S - 掘金

相关推荐
涡能增压发动积7 小时前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
Wenweno0o7 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
swg3213217 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
tyung7 小时前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald8 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川8 小时前
深入拆解 Java 内存模型:从原子性、可见性到有序性,彻底搞懂 happen-before 规则
java·后端
元宝骑士8 小时前
FIND_IN_SET使用指南:场景、优缺点与MySQL优化策略
后端·mysql
用户31952370347718 小时前
记一次 PostgreSQL WAL 日志撑爆磁盘的排查
后端
nghxni8 小时前
LightESB PlatformHttp v3.0.0:JSONPath 订单转换 HTTP 路由实战
后端
武子康9 小时前
大数据-263 实时数仓-Canal 增量订阅与消费原理:MySQL Binlog 数据同步实践
大数据·hadoop·后端