《这就是区块链》之区块链基础(5)--去中心化的意义

2023-10-27



在上一篇中,花了比较大的篇幅来阐述去中心化的概念。其实对于有计算机基础的朋友来讲,去中心化或者P2P网络并不是新颖的观点。但是,我还是希望本系列文章可以从基础展开,让所有的朋友都可以理解区块链的意义所在。

今天我们来谈谈去中心化到底在区块链中有什么样的作用和意义,为什么每个人都说区块链最牛逼的地方就是去中心化(这里我保留意见)。我先直接概括一下区块链中去中心化的意义:去中心化通过各个节点的运行保证了区块链的稳定,从而避免数据丢失、篡改、恶意支付等问题。

我们先想象这样两个应用场景:

1.比特币式:资产转移完全匿名,不需要中央机构控制,每一笔交易都可以追根溯源。(追根溯源是指可以每笔交易的地址,匿名是指通过比特币地址找不到对应的人。)

2.进口奶粉式:每一罐奶粉都被打上生产和运输的标签,无法被伪造和篡改。

其实,目前很多做区块链的企业,或多或少都是受到了这两种应用场景的启发。要实现这两种场景,必须要解决以下几个问题:

1.如何让所有节点同步数据?

2.如何避免恶意节点的行为?

3.如何保证区块链的稳定持续运行?

下面我们一个个来看:

1.如何让所有节点同步数据?

既然要实现去中心化,那么必然会存在有多个并行节点,如何让所有的节点同步数据看起来是一个大问题。

还是以比特币为例,如果松子向小明支付了1个比特币,在区块链内部会做如下这些操作:

松子向区块链中的所有节点发送广播(我向小明支付了1个比特币),其他节点收到广播信息,把数据写入区块。

细想一下,这里会出现的问题,如果节点的网络不好收不到交易数据或者说收到的交易数据顺序不对怎么办?如果这个节点是个恶意节点,他不想写入正确的数据又怎么办?

在去中心化作用下,区块链需要进行数据同步,有一种方法是,每隔十分钟就会向系统中所有的节点搜寻正确的区块,如果有个区块的有超过50%的节点认可,那么他便可以作为下一个区块被写入到区块链中并同步所有节点。这样,所有节点的数据便是一致的,这就解决了数据同步的问题。

注:比特币不是和其他区块做比对,而是通过POW工作量证明选择打包的节点直接生成区块后广播出去。



51%攻击:如果系统中恶意节点的数目已经超过51%,那么其便可以控制区块的产生和延长方向,但是有一点需要明确,即使恶意节点的数据足够多,由于加密系统的限制,恶意节点依然无法伪造交易,恶意节点提出的区块也无法被正常节点所接受。这就会导致区块链分叉的发生。除了51%攻击,数字货币被盗也会导致分叉,比如以太坊(ETH)在2017年被攻击,大部分节点支持回滚数据,而不支持回滚的节点在原区块链继续挖矿,便出现了以太经典(ETC)。

2.如何避免恶意节点的行为?

在上面同步数据的部分,其实我们已经谈到了恶意节点的不配合行为,除了不接受新的交易数据,恶意节点还可能伪造交易数据。

伪造交易数据有两种方式:直接伪造和双重支付,直接伪造就是恶意节点直接伪造一条交易数据并广播出去,但是上面其实已经提到过,由于加密系统签名的作用,恶意节点其实无法伪造别人的交易数据。我们来看看双重支付。

双重支付简单说就是松子已经将自己1个比特币支付给了小明,但是他依然用这个币去支付其他的东西。我们不从道德层面去评价松子的为人,因为实际的确会有很多人有这样的想法。回到这个问题,松子已经将比特币支付给了小明,那么区块中的所有节点都收到了这条消息,并且由于有签名限制,节点知道松子的这个比特币来源并且知道松子只有一个比特币,在实际处理的时候,他们会把先收到的消息写入区块中而忽略后一个消息,如果有节点网络不好等原因,由于数据会同步,此节点依然会得到正确的区块。



3.如何保证区块链的稳定持续运行?

前面谈到了去中心化环境下区块链的同步数据和防止恶意节点捣乱,那么如何去保证节点对数据的打包(形成区块)效率呢,或者说如何保证所有节点听从指挥呢?

在说打包问题之前,我们需要引入区块链的分类:

私有链:由公司和个人等中心机构运行的区块链,一般用于公司内部使用。

联盟链:由联盟内部指定多个节点共同维护的区块链,一般用于同性质企业的数据共享。

公有链:没有中心机构干预的公开区块链,参与节点不受限制,一般用于加密货币,以后会有更大的延伸。

如何保证区块链的稳定运行,在私有链和联盟链中都不需要过多考虑,因为这两种区块链都可以内部驱动,由中心的机构进行维护。所以我们主要说公有链的运行,公有链一般使用奖励机制,也就是说,参与打包的节点会在打包成功之后得到一定的奖励,但是我们知道,打包对于节点来说其实是个很快并且没有难度的事情,那么如何选取哪个节点来打包呢,打包的时间,区块的大小又如何控制呢,这些就需要POW,POS等共识算法了。



今天,我们对区块链做一个简单的回顾,回到我们开篇提到的问题--什么是区块链?(具有匿名性、去中心化、共识保证的分布式数据存储系统),截止目前,我们已经在技术层面解释了匿名性和去中心化这两个很关键的点,我相信您对区块链的了解也更加深入了。但是,我需要强调的是,加密和去中心化不是区块链的首创,区块链只是应用罢了。我们在接下来的文章中会陆续谈到区块链的核心价值以及争论焦点,比如共识机制和运行机制等。




加入《这就是区块链》学习群:

http://oyf24qjpw.bkt.clouddn.com/%E7%BE%A4%E4%BA%8C%E7%BB%B4%E7%A0%81.jpg

或者添加好友:xiaomingqkl


加入《这就是区块链》学习群:

http://oyf24qjpw.bkt.clouddn.com/%E7%BE%A4%E4%BA%8C%E7%BB%B4%E7%A0%81.jpg

或者添加好友:xiaomingqkl

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《这就是区块链》之区块链基础(5)--去中心化的意义 的相关文章

  • 为什么说区块链的性能严重不足?

    现如今 性能过低是当前区块链技术面临的主要挑战之一 区块链的性能指标主要包括交易吞吐量和延时 交易吞吐量表示在固定时间能处理的交易数 延时表示对交易的响应和处理时间 在实际应用中 需要综合两个要素进行考察 只使用交易吞吐量而不考虑延时是不正
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记16 The Dao

    这个是接着北京大学肖臻老师的课记的笔记 由于前面的笔记在 https blog csdn net Mu Xiaoye article details 104299664 已经有前人写好了 并且写的不错 所以这里直接给出链接 然后这个是剩下的
  • 区块链笔记4--BTC实现

    1 UTXO 区块链是一个去中心化的账本 比特币采用了 基于交易的账本模式 然而 系统中并无显示记录账户包含BTC数 实际上其需要通过交易记录进行推算 在比特币系统中 全节点需要维护一个名为 UTXO UnspentTransaction
  • 区块链技术基本概念(上)

    区块链本质是一个对等网络的分布式账本数据库 数据区块 挖矿与分叉问题 一 区块是在挖矿的过程中产生的 二 挖矿实际上就是穷举随机数算法 把上个区块的哈希值加上10分钟内的全部交易单打包 再加上一个随机数 算出一个256位的字符串哈希值 输入
  • 必看!区块链如何推动电商行业的发展?

    区块链技术被认为是第四次工业革命中最具颠覆性的创新技术 世界上还没有见过比区块链技术更强大的技术 它可能会对所有经济部门产生潜在的影响 给它们带来一流的效率 近些年来 区块链技术在金融服务行业 能源行业 物流行业 供应链管理行业 医疗行业等
  • 区块链+跨境支付有哪些优势?

    全球互联网的高速发展也带动了跨境电商的快速发展 跨境支付也瞬间成为第三方支付领域的一个风口 而将区块链技术应用在跨境支付领域也逐渐成为市场的热点需求 传统的跨境支付方式中间环节繁杂 费时又费力 而且跨境电商卖家在跨境支付环节 存在境外银行账
  • Day20【元宇宙的实践构想06】—— 元宇宙与Web3.0

    本人简介 男 年龄 18 作者 那就叫我亮亮叭 专栏 元宇宙 部分资料参考文献 成生辉教授的 元宇宙 概念 技术及生态 和百度相关资料 0 0 写在前面 元宇宙 在2021年成为时髦的概念 元宇宙到底是什么 元宇宙是否是互联网技术的下一次革
  • 工业制造业亟需数字化转型,区块链可以发挥哪些价值?

    智能信息化技术驱动的第四次工业革命正推动制造业积极拥抱物联网 云计算等新技术进行数字化 智能化转型升级 制造业是一个纷繁复杂的庞大网络 不仅涉及机器 零件 产品等实体还有机器制造商 物流公司 销售等诸多利益相关方 在当今数字化时代中 如何帮
  • 以太坊智能合约虚拟机(EVM)原理与实现

    以太坊 EVM原理与实现 以太坊底层通过EVM模块支持合约的执行与调用 调用时根据合约地址获取到代码 生成环境后载入到EVM中运行 通常智能合约的开发流程是用solidlity编写逻辑代码 再通过编译器编译元数据 最后再发布到以太坊上 代码
  • 区块链技术关键词

    区块链技术 区块链是一种分布式账本技术 通过将数据以区块的形式依次链接在一起 并使用密码学技术保证安全性和一致性 加密货币 加密货币是基于区块链技术的数字资产 例如比特币 Bitcoin 和以太坊 Ethereum 等 它们使用区块链来记录
  • 2023年探究区块链交易所开发:安全、效率和监管问题

    区块链技术已经成为数字经济领域的热门话题 随着数字资产市场的迅速发展 数字资产交易所也开始成为越来越重要的交易场所 本篇报告将从技术角度出发 探讨区块链交易所的开发 分析目前区块链交易所存在的问题以及未来的发展趋势 Background 区
  • 区块链医疗应用--智慧医疗系统

    区块链医疗应用 医疗现状 医疗行业利用区块链技解决个人健康数据的安全性与共享 医疗数据信息孤岛 产品溯源等 提供了更有效维护 全量备份 信息安全的分布式记账技术 为医疗数据共享带来更好思路 区块链的特性确保系统的稳定性 医疗行业的发展主要是
  • 在switch语句中使用字符串以及实现原理

    对于Java语言来说 在Java 7之前 switch语句中的条件表达式的类型只能是与整数类型兼容的类型 包括基本类型char byte short和int 与这些基本类型对应的封装类Character Byte Short和Integer
  • 区块链之元宇宙

    区块链之元宇宙 元宇宙概念 元宇宙 Metaverse 是利用科技手段进行链接与创造的 与现实世界映射和交互的虚拟世界 具备新型社会体系的数字生活空间 元宇宙本质上是对现实世界的虚拟化 数字化过程 需要对内容生产 经济系统 用户体验以及实体
  • 智慧合约:智能合约安全问题的AI解决方案

    一支穿云箭 千军万马来相见 在经历三个月 漫长熊市 后 从4月中旬开始 EOS的一个拉升 形成了数字货币市场大牛市的壮观景象 可是在美链BeautyChain BEC 的智能合约漏洞被黑客利用 随意刷币 SmartMesh SMT 智能合约
  • Mysql索引原理

    Mysql索引类型及其特性 1 普通索引 最基本的索引 它没有任何限制 也是我们大多数情况下用到的索引 直接创建索引 CREATE INDEX index name ON table column length 修改表结构的方式添加索引 A
  • 区块链技术实战学习路线图

    请大家前往深入浅出区块链主站 获取最新内容 本章的文章越来越多 本文是一个索引帖 方便找到自己感兴趣的文章 你也可以使用左侧的分类 标签及搜索功能 有新文章时会更新本文 建议大家加入收藏夹中 如果你觉得本站不错 欢迎你转发给朋友 引言 给迷
  • 区块链程序要怎么去测试?

    区块链程序开发越来越多 区块链怎么做测试 让大家很好奇 与传统测试不同的是区块链系统边界模糊 不管是是独立的应用程序 还是客户端 服务器模式的应用程序 传统软件都具备明显的系统边界 可以通过UI用户界面或者客户端去进行测试 区块链底层则不同
  • 首个数字银行卡明年发行,广州出台区块链措施支持大湾区

    锌链接作为首个提出产业区块链的机构媒体 一直积极推动产业区块链落地 通过深度报道直戳行业痛点 通过分享会聆听行业声音 通过周报呈现行业大观 通过评论展现独特产业观察视角 本周 广州出台66条措施支持粤港澳大湾区金融发展 其中多项与区块链有关
  • Moonbeam生态项目分析 — — 跨链借贷协议Orbiter One

    概览 Orbiter One 是一个非托管的借贷协议和DeFi中心 专注于跨链互操作性 通过使用从借贷中赚取的ORB Token铸造的Intergactic Whiskers Brigade NFT 用户可以质押并获得额外奖励 借贷和跨链存

随机推荐

  • iOS 开发中的争议(二)UI到底应该用xib/storyboard完成,还是用手写代码来完成?

    文章来源 http www devtang com blog 2015 03 22 ios dev controversy 2 参考文章 关于代码手写UI xib和StoryBoard http blog csdn net likendsl
  • 用Sutherland-Hodgman算法实现裁剪任意凸多边形

    一 实验目的 用Sutherland Hodgman算法实现裁剪任意凸多边形 二 实验工具 VC6 0 三 实验步骤 思想 每次用窗口的一条边界以及其延长线来裁剪多边形 裁剪得到的多边形的顶点由两部分组成 落在可见一侧的原多边形顶点 多边形
  • 【论文阅读】APDrawingGAN:利用分层GAN从面部照片生成艺术人像

    APDrawingGAN Abstract Introduction Related Work APDrawingGAN 概述 网络结构 生成器Generator 判别器Discriminator 损失函数 训练网络 通过预训练进行初始化
  • Mongodb入门安装

    标题 1 MongoDb 概念入门 什么是MongoDB MongoDB 使用场景 不使用MongoDB 的场景 2 MongoDB 应用与开发 安装 启动mongodb 1 MongoDb 概念入门 什么是MongoDB MongoDB
  • 四种信号量

    传送门 1 整型信号量 2 记录型信号量 3 AND型信号量 4 信号量集 例 应用信号量实现同步与互斥 说在前 信号量机制是对具体物理资源的抽象 同类资源的个数用 gt 0的信号量值来表示 0或1的则为临界资源 1 整型信号量 1 1 D
  • 自定义Weex组件——Weex的学习之路(八)

    在四月份和五月份的时候我用业余时间来学习weex 在这期间一直在看文档写demo 每一个组件都自己写demo运行一遍 我本人是做Android开发的 对JS CSS和Html有一定的了解 所以学习weex不是很难 然后我把自己所学的主要经历
  • 一种基于Harris-Laplace算法的角点检测方法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 1 1 Harris Laplace 检测方法原理 2 运行结果 3 Matlab代码实现 4 参考文献
  • 深度学习目标检测方法汇总

    目标检测简介 目标检测是计算机视觉的一个重要研究方向 是指从一个场景 或图片 中找到感兴趣的目标 任务大致分为三个流程 从场景中提取候选区 从候选区提取特征 识别候选区的类别并对有效的候选框进行位置精修 目标检测在生活的各个领域都有了广泛的
  • 算法 数列异或操作

    给你两个整数 n和start 其中n为数据的数量 start为第一个数据 当前数据定义为 num start 2 i i表示第几个数据 从0开始 请返回数列中所有数据按位异或 XOR 后得到的结果 示例 1 输入 n 5 start 0 输
  • Kali Linux 下搭建DVWA靶场和Sqli-labs注入环境

    Kali Linux 下搭建DVWA靶场和Sqli labs注入环境 DVWA靶场介绍 DVWA是一款基于PHP和mysql开发的web靶场练习平台 集成了常见的web漏洞如sql注入 xss 密码破解等常见漏洞 适合刚基础网络安全的小白
  • pytorch中的 relu、sigmoid、tanh、softplus 函数

    四种基本激励函数是需要掌握的 1 relu 线性整流函数 Rectified Linear Unit ReLU 又称修正线性单元 是一种人工神经网络中常用的激活函数 activation function 通常指代以斜坡函数及其变种为代表的
  • GMAC RGMII时序校准配置教程

    GMAC RGMII时序校准配置教程 在物联网时代 各种设备都需要联网 而其中以嵌入式系统为主 网络通信系统的核心部件即为MAC与PHY芯片 而针对MAC和PHY芯片之间的接口 有一种双数据率的接口标准 RGMII Reduced Giga
  • 一维数组与对象深拷贝的几种方法(指数组、对象中均无嵌套)

    一 万能for循环 直接上代码 var arr 1 2 3 4 5 var obj name aaaaa age 16 var arr2 copyThat arr var obj2 copyThat obj function copyTha
  • MySQL正确配置my.ini的event_scheduler = ON

    MySQL正确配置my ini的event scheduler ON 让事件的定时调度器常开 如下红框圈出部分 永久性设置方法 为何要在my ini中设置 补充mysql做一个event或job有关文章 让事件的定时调度器常开 如下红框圈出
  • 为什么数组的BUFFSIZE要定义为4096比较好?

    先看一个程序 page 69 include apue h define BUFFSIZE 4096 int main int argc char argv int n char buf BUFFSIZE while n read STDI
  • 高级计算机网络

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 RDT协议 rdt1 0 经完全可靠信道的可靠数据传输特点 rdt2 0 经具有比特差错信道的可靠数据传输 校验和 ACK NAK rdt2 1 考虑处理
  • swagger添加@ApiImplicitParams后出现错误 Required String parameter is not present

    swagger添加 ApiImplicitParams后出现错误 并且会报错 HTTP Status 400 Required String parameter xx is not present 原因是 要求post 但是 请求用的是ge
  • make编译kaldi时候遇到的各种错误

    文章目录 第一个问题 aclocal 1 14 command not found 第一个问题 aclocal 1 14 command not found tools openfst 1 6 7 missing line 81 acloc
  • line-height: 1; line-height: 100%;是什么意思

    先简单看个例子 css 页面 应该猜测出来了 line height 1 line height 100 font size 50px 把哪一个放到最后都是一样的 我理解的就是 等于字体高度的 1 整 份 或者 等于 字体高度的 100 高
  • 《这就是区块链》之区块链基础(5)--去中心化的意义

    在上一篇中 花了比较大的篇幅来阐述去中心化的概念 其实对于有计算机基础的朋友来讲 去中心化或者P2P网络并不是新颖的观点 但是 我还是希望本系列文章可以从基础展开 让所有的朋友都可以理解区块链的意义所在 今天我们来谈谈去中心化到底在区块链中