Multichain跨链无法到账,DApp真去中心化or伪去中心化?

news2024/11/29 4:35:15

团队出问题,DApp就用不了,multichain被不少人质疑伪去中心化,甚至更有人开始质疑web3,那么这到底是怎么回事呢?

9cd617a3af4a40abeab024fe1824cbdf.jpeg

跨链桥问题让DApp的去中心化引发质疑

事情是这样的,5月24下午0xscope发推称与multichain有关的钱包地址将3.17M 的MULTI转入到gateio,而此前DC用户反馈自己的跨链资产很久没到账,紧接着社区传言multichain在上海的办公场所遭到云南police的抓捕,跨链受限,导致了跨链资产无法到账,此事一时间引发社区恐慌,MULTI价格也应声下跌30%,之后半夜0点孙哥提出了自己的USDD,3点多multichain团队联合创始人表示团队正常,遇到了不可抗力因素,不少人质疑不可抗力可能从侧面代表了传言有一定可能是真实的,因为一般跨链桥出问题的前提要么是代码bug导致的故障,要么是黑客攻击,如果这两者出现,团队会正面公布,而如果团队遮遮掩掩,那么有可能是面临法律方面的问题了,因此坊间传闻的可信度也比较高。

到目前为止,团队并未作出正面回应此次事件的真实情况。市场也议论纷纷,连带着不少代币价格都出现下跌走势。虽然后面multichain团队表示会对造成损失的用户资产进行补偿,但是人们仍然质疑DApp的去中心化,如果团队出问题,那么自己在合约里的钱还能拿回来么?或者说什么导致了他们的资产无法正常跨链,去中心化的智能合约按理来说是应该自动执行的,如果受到人为控制,那么去中心化可能形同虚设。

去中心化的背后——权限管理

其实对于DApp来说,绝对的去中心化是很难存在的,去中心化保证的是用户个人钱包里的资产,对于交互DApp的智能合约地址特别是某些场景的合约并不一定完全适用。

首先,我们交互的DApp是部署在区块链上的,区块链的去中心化主要是由节点决定的,节点越分散,去中心化越强,如果节点串通到一起作恶或者有作恶的能力,那么就不叫去中心化,而DApp依赖于区块链,就好比土地上的房子,权限就好比房子的钥匙,部署DApp的钱包在原则上拥有对DApp的控制权限,也就是最高权限,一般DApp开发者有三种策略:

1、将权限写死,也就是在部署合约的时候,不给任何人包括自己预留操作合约或修改和升级合约的权限,这样的合约是我们印象里的DApp完全去中心化,没有任何人可以修改或控制合约,当然如果黑客发现合约漏洞之后盗取资金,也是没人能够找回的。

2、预留权限之后将权限扔掉,一般这种适用于发币合约,特别是流动性池lp,有的发币合约在部署初期就规定了总量上限,而有的可能没有规定上限或者上限能被部署者修改,从而引发人们对代币的不信任,因此将权限丢掉或者将权限的所有权修改为黑洞地址是常见的做法,比如将AMM池子lp发到全0钱包,那么lp池子的资金谁都没法取回,或者将权限修改为全0钱包,那么除了全0钱包可以修改,其他的钱包都无法修改,而全0地址被称为黑洞地址,它的私钥所有人都不知道,因此这种操作和将权限写死的作用是相同的。

当然一旦全0地址私钥被人破解,那么另当别论,但是这种概率目前非常小,几乎没有可能。一般开发者在合约刚部署试上线的时候会这样做预留权限,等到合约经过市场检验没有漏洞问题或审计通过之后,可以考虑将权限扔掉,由于这种方式有可能遭到社区质疑,因此使用的项目会相对少一些。

3、多签管理权限,通过利用多签地址来管理智能合约的权限是目前大部分项目的做法,这种做法主要的出发点有两个,一个是对合约新功能的升级和完善,包括bug修改等,第二个是应对突然出现的事故,比如黑客盗币或其他漏洞可能导致的用户资产损失。而多签的保管者一般由社区知名度较高的成员、项目方参与,也有第三方比如交易所、代码审计机构、DAO社区等也可以参与进来。

multichain就是使用多签来管理权限的,项目出现问题的话他们也是有能力使得跨链暂停的,这样设计原本是为了防止出现代码bug或黑客攻击等异常行为,但是如果项目成员被控制,那么也是有可能被强制要求暂停跨链的,因此这种做法严格来说,不是真正意义的去中心化,但是也是和安全性相关,属于一种妥协方式,我们可以看成不可能三角的一种表现形式。

一般来说,越复杂的DApp越难完成真正意义的去中心化,如果只执行最简单的功能,那么是有可能完全去中心化的。复杂度、去中心化以及安全性不太可能同时存在,而复杂度在DApp设计之初就已经确定好功能需求,安全性自然是毫无疑问不可轻视的,因此只能牺牲去中心化程度,开发者不会将合约权限丢掉,而是交由多签管理,从而引入另一种形式的去中心化,但是多签管理如果不完善过于集中化,那么也是有一定问题的。

对于上述这种形式,其实也并非无解,可以通过增加资产恢复开关等功能来为用户提供资产提取的渠道,这样便于用户在跨链过程中存在异常而无法恢复等问题的发生,比如像之前zklink就进行了敦刻尔克资产恢复测试,本质上就是当合约出现问题时,用户可以通过恢复节点提交恢复需求,从而避免类似FTX这样的风险,保障自己能够第一时间通过自助的形式拿回资产,DApp也在这样的过程中不断完善和进化,最后促成去中心化的普及。

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

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

相关文章

leetcode 11.盛最多水的容器

题目描述 跳转到leetocde题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff…

RabbitMQ手动ACK与死信队列

为了保证消息从队列可靠的达到消费者,RabbitMQ 提供了消息确认机制(Message Acknowledgement)。 默认情况下RabbitMQ在消息发出后就立即将这条消息删除,而不管消费端是否接收到,是否处理完,导致消费端消息丢失时RabbitMQ自己又没有这条消息了…

spring-Bean管理-springboot原理-Maven高级

spring-Bean管理-springboot原理-Maven高级 配置优先级Bean管理1.获取bean2.bean作用域3.第三方bean SpringBoot原理Maven高级1.分模块设计与开发2.继承与聚合3.私服1.介绍2.资源上传与下载 配置优先级 优先级(低→高) application.yaml(忽略) application.yml appl…

利用Servlet编写第一个“hello world“(续)

利用Servlet编写第一个“hello world“ 🔎通过插件 Smart Tomcat 简化 打包代码 与 部署 操作下载Smart Tomcat配置Smart Tomcat 🔎Servlet 中的常见错误404(Not Found)🍭请求路径出错🍭war 包未被正确加载 405(Method Not Allowe…

【Android-JetpackCompose】13、实战在线课程 App

文章目录 一、BottomNavigation 底部导航1.1 底部导航栏的布局、点击1.2 设置 bottomBar 的颜色1.3 设置顶部 actionBar 的颜色 二、主页 StudyScreen2.1 顶部状态栏2.2 一、BottomNavigation 底部导航 1.1 底部导航栏的布局、点击 首先,构造 NavigationItem 的 d…

安装stable-diffusion

安装流程&#xff1a; 下载stable-diffusion源码 <https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.2.1>安装python <https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe>添加host 打开C:\Windows\System32\drivers\etc…

django基于scrapy的音乐歌曲分析及推荐系统

而在线音乐网站作为一个网络载体&#xff0c;在音乐的传播&#xff0c;创作&#xff0c;欣赏等方面对音乐的发展产生了前所未有的影响—。 &#xff08;1&#xff09;电脑网络技术的发展使人们通过音乐网站接触到了多的音乐模式。 &#xff08;2&#xff09;网民数量的激增使更…

两台群晖NAS之间使用FTP或SFTP进行数据高速拷贝问题

两台群晖NAS之间使用FTP或SFTP进行数据高速拷贝问题 为了更好的浏览体验&#xff0c;欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 在有些时候&#xff0c;我们新买了一台全新群晖NAS需要把旧群晖NAS里的数据拷贝到新设备里&#xff0c;特别像电影、电视剧、小…

Python实战基础13-装饰器

1、先明白这段代码 第一波 def foo():print(foo)foo # 表示是函数 foo() # 表示执行foo函数第二波 def foo():print(foo)foo lambda x: x 1foo() # 执行lambda表达式&#xff0c;而不再是原来的foo函数&#xff0c;因为foo这个名字被重新指向了另外一个匿名函数函数名仅仅是…

攻不下dfs不参加比赛(九)

标题 为什么练dfs题目为什么练dfs 相信学过数据结构的朋友都知道dfs(深度优先搜索)是里面相当重要的一种搜索算法,可能直接说大家感受不到有条件的大家可以去看看一些算法比赛。这些比赛中每一届或多或少都会牵扯到dfs,可能提到dfs大家都知道但是我们为了避免眼高手低有的东…

Python入门(十三)函数(一)

函数&#xff08;一&#xff09; 1.函数概述2.函数定义2.1向函数传递信息2.2实参和形参 作者&#xff1a;xiou 1.函数概述 函数是带名字的代码块&#xff0c;用于完成具体的工作。要执行函数定义的特定任务&#xff0c;可调用该函数。需要在程序中多次执行同一项任务时&#…

win10微软Edge浏览器通过WeTab新标签页免费无限制使用ChatGPT的方法,操作简单,使用方便

目录 一、使用效果 二、注册使用教程 1.打开Edge浏览器扩展 2.选择Edge浏览器外接程序 3.搜索WeTab 4.进入管理扩展 5.启用扩展 ​编辑 6.进入WeTab新标签页 7.打开Chat AI 8.注册 9.使用 ChatGPT是OpenAI推出的人工智能语言模型&#xff0c;能够通过理解和学习人类…

opencv_c++学习(二十五)

一、Harris角点介绍 1、海瑞斯角点不可能出现在图像平滑的区域&#xff08;上图1&#xff09;&#xff1b; 2、图像边缘的支线出不可能出现海瑞斯角点&#xff08;上图2&#xff09;&#xff1b; 3、海瑞斯角点会出现在顶点处。&#xff08;上图3&#xff09;&#xff1b; 上图…

一文带你了解MySQL之redo日志

前言 本文以及接下来的几篇文章将会频繁的使用到我们前边唠叨的InnoDB记录行格式、页面格式、索引原理、表空间的组成等各种基础知识&#xff0c;如果大家对这些东西理解的不透彻&#xff0c;那么阅读下边的文字可能会特别的些费力&#xff0c;为保证您能正常的理解&#xff0…

Android 12系统源码_WindowInsets (一)WindowInsets相关类和功能介绍

一、什么是WindowInsets? WindowInsets源码解释为Window Content的一系列插值集合,可以理解为可以将其理解为不同的窗口装饰区域类型,比如一个Activity相对于手机屏幕需要空出的地方以腾给StatusBar、Ime、NavigationBar等系统窗口,具体表现为该区域需要的上下左右的宽高。…

Oracle Linux 8.8 发布 - Oracle 提供支持 RHEL 兼容发行版

Oracle Linux 8.8 发布 - Oracle 提供支持 RHEL 兼容发行版 Oracle Linux with Unbreakable Enterprise Kernel (UEK) & Red Hat compatible kernel (RHCK) 请访问原文链接&#xff1a;https://sysin.org/blog/oracle-linux-8/&#xff0c;查看最新版。原创作品&#xff…

opencv实践项目-图像卡通化

目录 1.如何使图像卡通画2.铅笔素描滤波器3. 细节增强滤波器4. 双边过滤器5. 铅笔边缘滤波器 1.如何使图像卡通画 我们通常需要执行两个主要步骤将图像转换为卡通图像&#xff1a;边缘检测和区域平滑。 边缘检测的主要目的显然是为了强调图像的边缘&#xff0c;因为卡通图像通…

银行从业——法律法规

第一章、经济基础知识 第一节、宏观经济分析 【 知识点1】 宏观经济发展目标 宏观经济发展的总体目标一般包括四个&#xff1a; 宏观经济发展的总体目标 衡量指标1、经济增长国内生产总值&#xff08;GDP&#xff09;2、充分就业 失业率3、物价稳定通货膨胀率4、国际…

Sangria:类似Nova folding scheme的relaxed PLONK for PLONK

1. 引言 前序博客有&#xff1a; Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记SuperNova&#xff1a;为多指令虚拟机执行提供递归证明基于Nova/SuperNova的zkVMSangria&#xff1a;PLONK Folding 主要见2023年4月 Geometry团队Nicolas Mohnblat…

多线程编程(1)

本篇重点 了解进程和线程的区别和联系使用Java&#xff0c;实现创建线程的五种写法 目录 使用Java进行多线程编程方法一&#xff1a;继承 Thread, 重写 run方法二: 实现 Runnable, 重写 run方法三: 继承 Thread, 重写 run, 使用匿名内部类方法四: 实现 Runnable, 重写 run, 使用…