区块链的三难困境是什么,如何解决?

news2025/3/1 0:21:44

人们需要保持社交、工作和睡眠之间的平衡,并且努力和谐相处。同样的概念也反映在区块链的三难困境中。

区块链三难困境是一个术语,指的是现有区块链的局限性:可扩展性、安全性和去中心化。这是一个存在了几十年的设计问题,其问题的本质是找到一种方法,在不使用太大或太贵的存储设备的情况下,安全地将数据存储在一个更小、更轻的容器中。

如上所述,区块链三难困境由三种场景组成,但是在深入讨论之前,先简要地概述一下去中心化、安全性和可扩展性。

(1)去中心化是指权力从单一的企业、政府部门或其他大型集团转移到几个较小的组织。例如,在区块链三难困境中,去中心化赋予世界各地的人们使用他们的计算机(称为“节点”)进行管理的权力,而不是让集中的一方控制整个网络。

(2)安全性要求区块链是安全的,但不能完全免受黑客攻击。例如,如果黑客控制51%的网络,他们可以改变交易发生的方式,在网络中窃取受害者的资金。

(3)区块链中的可扩展性与业务中的可扩展性相同;这意味着在保持相同的交易速度和输出的同时,网络的规模在未来可以增长多少。

当可扩展性和去中心化协同工作时,安全性往往会受到威胁。这是因为安全限制了有助于去中心化网络增长的变化。此外,运行去中心化网络所需的工作量限制了可扩展性。

本文将让人们了解区块链三难困境的细节,并了解不同的可用解决方案。

一、区块链三难困境中三个核心要素的重要性是什么?  

1.去中心化

去中心化网络强调了区块链依赖于足够大的利益相关者群体的重要性。去中心化可以在不同的层面上看到,例如挖矿者的数量、完整的节点、活跃的开发人员等。重要的是要记住,并非所有的区块链都是类似地去中心化。

(1)去中心化网络的优点

去中心化使得共识成为可能,而无需强迫用户信任单个实体。去中心化是一件好事,因为它使系统更加稳定。它可以防止网络被关闭,所以任何人都可以使用它。

(2)去中心化网络的缺点

去中心化降低了网络的速度,增加了处理交易的时间。它的成本很高,因为增加了冗余,所以它只适用于某些应用程序。

2.可扩展性

可扩展性是区块链系统在不影响性能的情况下支持规模增长(更多用户、更多用例以及最终更多交易)的能力。

使用区块链的人数如何增长? 有两种方法(或这两种方法的混合):

  • 减少检查交易的团体数量(在去中心化上的妥协)。
  • 减少阻塞时间,使网络更容易(在安全性上妥协)。

(1)注重可扩展性网络的优点

它可以让网络处理大量的交易,在安全优先级较低的应用程序中很有用,比如社交消息应用程序。

(2)关注可扩展性网络的缺点

如上所述,增长能力可能意味着安全性降低。此外,随着网络的发展,共识机制也必须如此,这可能会导致更多的集中。

3.安全性

区块链保持交易不可逆性的能力就是其安全性。它通过强迫网络参与者浪费资源来获得激励——网络参与者的资源支出越大,区块链就越安全。

在最近的一次以太坊经典(ETC)的黑客攻击中,网络攻击者重组了4000多个区块,并将价值约100万美元的ETC翻倍。

网络攻击者为什么成功?因为与所获取的价值相比,获取整个网络51%以上的哈希值的费用微不足道。简而言之,这4000个区块中的财富远远超过了网络参与者部署的资源。

(1)强调安全的区块链优势

实现比传统价值转移更快、更便宜的更大价值转移。

(2)以安全为重点的网络的缺点

需要更多的资源,即更大的财务投资。

公共区块链的安全性由网络参与者提供;更高的安全性会导致更大的网络效应,而这种网络效应很难重现。

二、这些因素之间的相互作用如何导致出现问题

以太坊是观察到的三难困境的最新例子。如今,各行业中大多数去中心化应用程序(dApps)都基于以太坊。以太坊是从去中心化金融(DeFi)协议到不可替代代币(NFT)交换的所有产品的首选资源。随着去中心化应用程序的普及,以太坊平台的使用率提高。

但扩展性问题仍在继续增长! 可悲的是,扩展性问题变得更糟了。以太坊的规模不能超过一定的限制。因此,对于某些人来说,与区块链打交道的交易费用变得非常昂贵。以太坊交易成本的增加是三难困境的一个例子,在这种情况下,扩展以太坊需要牺牲安全性或去中心化。在以太坊的情况下,通过限制每秒的交易数量(可扩展性)来优先考虑去中心化和安全性。用户向挖矿者支付额外的交易费用,以确定交易的优先级。

给定类似的安全特征,可以得出结论,可扩展性与去中心化成反比。假设两个工作量证明区块链在去中心化方面是相同的。可以把区块链的安全性看作是它的哈希率。哈希率越高,确认时间越短,安全性随着可扩展性的增加而增加。因此,在不断去中心化的情况下,可扩展性和安全性是对应的。

因此,区块链不能同时针对去中心化、安全性和可扩展性在质量方面进行优化。与其相反,它必须使用多个配置文件进行权衡。因此,根据区块链的三难困境,公共区块链无法实现必要的去中心化、安全性和可扩展性。

三、制定了哪些不同的策略?  

最近,许多扩展策略已经被开发出来。例如,闪电网络(Lightning Network)是比特币区块链的一个组成部分,而以太坊以其Arbitrum网络而闻名。

闪电网络通过主要区块链网络上的私有链外渠道利用智能合约的功能。链下路线允许更快、更便宜的交易。值得注意的是,通过将交易转移到远离主链的地方,闪电网络减轻了主链的压力。用户不再需要支付挖矿费用或在较长时间内等待区块确认。

Arbitrum使以太坊用户能够在链下结算,提高交易速度和效率。

Arbitrum采用独特的共识过程和数据压缩来加快交易,同时保持低廉的交易成本。此外,它将多个智能合约组合成其链上的单个对象,使它们更易于使用。

Algorand是2017年成立的另一种加密货币,据称已经解决了区块链三难困境。Algorand采用权益证明(PoS),其中只有加密选择的验证者可以用他们的令牌来验证下面的区块,这有助于减少几个指数的验证节点数量,提高交易速度和区块安全性。

四、有哪些不同的方法使区块链可扩展?  

可扩展性是区块链尚未被广泛使用的最大原因。因此,区块链需要有效的扩展解决方案。人们正在制定许多不同的解决方案。令人惊讶的是,有不同的方法来解决这个问题。每个解决方案都提供了不同的方法来处理区块链的扩展问题。

1.Layer 1解决方案  

Layer 1解决方案修改区块链网络的基本软件。因此,Layer 1解决方案通常被称为“链上扩展解决方案”,以描述其操作。

Layer 1解决方案增强了区块链网络最关键的方面,例如增加块大小限制或减少验证区块所需的时间。分片(Sharding)、隔离见证(SEGWIT)和硬分叉(hardfork)是用于扩展Layer 1区块链的三种最流行的技术。

2.区块链分片

区块链网络是一个巨大的数据库,有许多节点可以验证数据。每个节点必须验证整个网络的交易。

分片将区块链网络划分为可管理的分片。节点将验证分片数据,而不是确认网络数据,这减少节点工作量,提高系统效率。

区块链分片有三种类型:

(1)网络区块链分片创建了不同的分片。此外,所有分片同时执行交易,从而提高了区块链网络性能。

(2)交易分片将需要通过分片进行身份验证的交易分组。

(3)状态分片将分类帐划分为存储独立部分的分片。

3.隔离见证

SEGWIT是“隔离见证”的缩写,是区块链Layer 1扩展选项的另一个重要补充。

隔离见证是对比特币区块链网络协议的改进,它改变了数据存储的方式和位置。它有助于消除绑定到每个交易的签名数据,并为交易释放更多空间和容量。

重要的是要知道,交易中大约70%的空间被数字签名占用,数字签名证明发件人拥有并有权使用现金。因此,如果数字签名被删除,可能会有更多的空间进行新的交易。

4.Rollups

Rollups在Layer 1区块链之外执行交易,并在达成共识后发布它们。这分离了Layer 1性能流程的重要部分。该解决方案的一个重要方面是零知识Rollup(ZK-Rollup),它处理数百个链下传输并随后上传。它加快了交易处理速度,是提高性能最有效的方法之一。

五、Layer 2可扩展性的解决方案

主区块链网络的变化对Layer 1或链上扩展方法是否有效有很大影响。

链下扩展选项包括第二层或Layer 2扩展选项。Layer 1解决方案是构建在主区块链之上的不同协议。在这些类型的解决方案中,来自主区块链的交易被“卸载”到次要协议。Layer 2解决方案可以帮助解决空间和网络拥塞等问题。主流的Layer 2解决方案包括状态通道和非侧链。

1.嵌套区块链

嵌套在另一个区块链中的区块链存在,其中Layer 1区块链将处理委托给分层区块链。因此,开发定制的解决方案非常简单。它被认为是用最少的努力解决区块链三难困境的最好、最简单的方法之一。最著名的例子是Ethereum Plasma,它利用锚定在主链上的二级区块链,可以提供欺诈证据来仲裁纠纷。

2.状态通道

状态通道的交易处理和区块链网络的容量被委派。它的节点不需要验证,使得附近的资源更容易满足其需求。Layer 1网络只需要将通道的最终状态存储在区块链上。

3.侧链

侧链是一个独立的区块链,通过双向钉住连接到主区块链。它增强了现有区块链的互操作性和处理能力。例如,比特币的网络可以使用侧链更快地执行交易。这是人们提高比特币性能的许多方法之一,尽管从理论上来说是不可行的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1346788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习动态规划解决不同路径、最小路径和、打家劫舍、打家劫舍iii

学习动态规划|不同路径、最小路径和、打家劫舍、打家劫舍iii 62 不同路径 动态规划,dp[i][j]表示从左上角到(i,j)的路径数量dp[i][j] dp[i-1][j] dp[i][j-1] import java.util.Arrays;/*** 路径数量* 动态规划,dp[i][j]表示从左上角到(i,j)的路径数量…

【深度解析C++】const成员函数

系列文章目录 🌈座右铭🌈:人的一生这么长、你凭什么用短短的几年去衡量自己的一生! 💕个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C,自顶向下看Java-CSDN博客 ❤️相关文章❤️:Cthis指针&#xf…

野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植

摘要 基于野火霸道-V23.2寸屏的开发板,下载器为STLINK分为两个版本,FreeRTOS和裸机版本 裸机 裸机准备 lvgl v8.2版本的源码野火的《触摸画板-3.2寸》与《基本定时器》的代码例程 移植 将基本定时器代码移植到触摸画板-3.2寸的例程中,…

java springboot将接口查询数据放在系统中 一小时系统更新一次 避免用户访问接口查询数据库缓慢

真到了公司 很多数据库表 特别是常用的功能业务对应的 都是几百万条起步的数据 查询会比较缓慢 那么 我们就可以不用每次都真的查询数据库 例如 我这里有一个接口 通过 封装的 IBookService.list 函数去查询数据库 接口返回是这样的 我们先在启动类 条件装配上 这个接口所在的…

MySQL所有常见问题

一、事务 定义:一组操作要么全部成功,要么全部失败,目的是为了保证数据最终的一致性 在MySQL中,提供了一系列事务相关的命令: start transaction | begin | begin work:开启一个事务commit:提交一个事务rollback:回滚一个事务事务的ACID 原子性(Atomicity):当前事…

信号与线性系统翻转课堂笔记20——系统函数与信号流图

信号与线性系统翻转课堂笔记20——系统函数与信号流图 The Flipped Classroom20 of Signals and Linear Systems 对应教材:《信号与线性系统分析(第五版)》高等教育出版社,吴大正著 一、要点 (1)了解信…

CSU计算机学院2021年C语言期末题目思路分享(后两道题)

文章目录 E: 实数相加——大数加法的拓展原题题目描述输入输出样例输入样例输出 题目思路实现步骤代码和注释 F: 谍影寻踪——链表的思想和运用原题题目描述输入输出样例输入样例输出 题目思路 一点感想 E: 实数相加——大数加法的拓展 原题 题目描述 C语言就要期末考试了&a…

每日一题——LeetCode922

方法一 双指针: 一个偶指针一个奇指针,偶指针每次都指向nums里的偶数,奇指针每次指向nums里的奇数,两个指针交替push进新数组即可: var sortArrayByParityII function(nums) {var even0,odd0,res[],flagtruewhile(r…

C#,入门教程(02)—— Visual Studio 2022开发环境搭建图文教程

如果这是您阅读的本专栏的第一篇博文,建议先阅读如何安装Visual Studio 2022。 C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net/beijinghorn/article/details/123350910 一、简单准备 开始学习、编写程序…

面试官:了解CountDownLatch吗

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

多线程编程设计模式(单例,阻塞队列,定时器,线程池)

💕"只有首先看到事情的可能性,才会有发生的机会。"💕 作者:Mylvzi 文章主要内容:多线程编程设计模式(单例,阻塞队列,定时器,线程池) 本文主要讲解多线程编程中常用到的设计模式,包括单例模式,阻塞队列,定时…

12.30序列检测(重叠、不重叠、连续、不连续、含无关项)——移位寄存器,状态机;状态机(二段式,三段式)

状态机-重叠序列检测 timescale 1ns/1nsmodule sequence_test2(input wire clk ,input wire rst ,input wire data ,output reg flag ); //*************code***********//parameter S00, S11, S22, S33, S44;reg [2:0] state, nstate;always(posedge clk or negedge rst) b…

仓储革新:AR技术引领物流进入智慧时代

根据《2022年中国物流行业研究:深度探析行业现状(智能设备及智能软件)》,报告中提及:“中国社会物流总额依然保持着较为良好的增长态势,年增速已恢复至常年平均水平。2021年社会物流总额细分中工业物流总额…

机器视觉实战应用:手势、人脸、动作以及手势鼠标构建(一)

CV实战应用手势、人脸、动作以及手势鼠标构建(一)总起 核心思想 手势识别是一种常见的计算机视觉应用,它可以通过摄像头或者预先录制的视频图像来追踪和识别人类手势。手势识别的应用非常广泛,例如在游戏、虚拟现实、人机交互等…

ActiveMQ漏洞合集

目录 介绍CVE-2015-5254:Apache ActiveMQ任意代码执行漏洞漏洞介绍 & 环境准备漏洞发现Nuclei❌Vulmap✅漏洞验证漏洞利用 CVE-2016-3088:Apache ActiveMQ Fileserver远程代码执行漏洞漏洞发现Nuclei✅Vulmap✅MSF✅第三方工具1(漏洞探测…

谷歌Linux内核自动测试平台架构介绍-用自动测试测试难以测试的问题

1 摘要 内核和硬件等低级系统已被证明极难进行有效测试,因此,许多内核测试都是以手动为主方式进行的。现有的大多数测试框架都是为测试与底层平台隔离的高级软件而设计的,而底层平台被假定是稳定可靠的。测试底层平台本身需要一套全新的假设…

单字符检测模型charnet使用方法,极简

Git链接 安装按照上面的说明,说下使用。 把tools下面的test做了一点修改,可以读取一张图片,把里面的单个字符都检测和识别出来。 然后绘制到屏幕上。 import torch from charnet.modeling.model import CharNet import cv2, os import num…

第5课 使用openCV捕获摄像头并实现预览功能

这节课我们开始利用ffmpeg和opencv来实现一个rtmp推流端。推流端的最基本功能其实就两个:预览画面并将画面和声音合并后推送到rtmp服务器。 一、FFmpeg API 推流的一般过程 1.引入ffmpeg库:在代码中引入ffmpeg库,以便使用其提供的功能。 2.捕获摄像头…

“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“

各位少年,我是博主那一脸阳光,由我来给大家介绍C语言的数组的详解。 在C语言中,数组是一种极其重要的数据结构,它允许我们存储和管理相同类型的一系列相关数据。通过理解并熟练掌握数组的使用,开发者能够高效地处理大量…

【Spark精讲】一文搞懂Spark钨丝Tungsten

Tungsten 内存管理机制 催生 Tungsten 内存管理优化的原因主要来自两个方面 。 • Java对象占用内存空间大。 相对于 C/C等更加底层的程序语言, Java对象的存储密度相对偏低。 例如,即使最简单的 “abed” 字符串,用Java的UTF-16编码的情况…