区块链学习笔记22——ETH-TheDAO

2023-12-08 07:58
文章标签 学习 笔记 区块 22 eth thedao

本文主要是介绍区块链学习笔记22——ETH-TheDAO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

区块链学习笔记22——ETH-TheDAO

学习视频:北京大学肖臻老师《区块链技术与应用》
笔记参考:北京大学肖臻老师《区块链技术与应用》公开课系列笔记——目录导航页

DAO:Decentralized Autonomous Organization(去中心化的自治组织) 建立在代码上,规章制度写在代码中,通过共识协议来维护规章制度的正常运行。
DAC:Decentralized Autonomous Corporation(去中心化的自治公司) 出于营利目的,DAO可以是出于非营利目的。

在2016年5月出现了一个致力于众筹投资的DAO——TheDAO:本质是一个智能合约,你可以把以太币发给智能合约,然后换回TheDAO的代币,决定投资哪个项目时是投票决定的,投票权重由TheDAO的代币决定,收益也是按照智能合约的规章制度进行分配。
TheDAO是一次伟大的尝试,很快吸引了大量的资金,但是很快就失败了

splitDAO函数

如果有人的投资理念与大部分人不同,可以通过splitDAO拆成出一个子基金,之前的代币会被收回,换成相应数量的以太币打到子基金里,然后投资自己想投的项目,这也是取回钱的唯一方式。
拆分前有7天的辩论期,拆分后有28天的锁定期

黑客通过重入攻击转走了5000w美元的以太币,差不多总资金的1/3在这里插入图片描述
以太坊社区讨论解决方法分成两派
一派是回滚交易:有28天的锁定期,黑客暂时还无法把钱取走,通过回滚交易保证投资者的利益。
另一派认为不需要补救:因为黑客的行为并没有违法,code is law,代码中的漏洞也是规则的一部分
以太坊开发团队支持采取补救措施

补救措施

从发生黑客攻击的前一个区块开始分叉,上面的链不挖了,挖下面的链使下面的链更长。
在这里插入图片描述
但这样会使得后面许多合法的交易也被回滚,要想回滚必须精确定位,只回滚黑客盗取以太币的交易,这是采取补救措施的原则

开发团队制定了“两步走”方案:

  1. 软分叉方案:锁定黑客账户,开发团队发布了一个软件升级,增加一条规则——凡是跟TheDAO这个基金相关的账户不允许做任何交易。这是一个软分叉。
    但是发布之后有一个bug——与汽油费有关,与The DAO的账户相关的交易不予执行,这时要不要收取汽油费?
    这条新规则没有收取汽油费,这时可能会有一些恶意的攻击者不断发送这种非法的交易浪费矿工的资源,这就导致本来已经升级的大多数矿工纷纷回滚软件升级,改回了之前的版本,于是这种软分叉的方案就失败了。这时28天的锁定期剩下的已经不多了。
  2. 硬分叉方案:通过软件升级把TheDAO账户上的所有资金强行转到另一个智能合约上,这个智能合约只有一个退钱功能。升级的软件中规定了强制执行的具体日期,到192W个区块自动执行转账交易,不需要合法的签名,在软件中写死的规则,所以旧的矿工是不会认可的,所以属于硬分叉。

最后通过投票决定大部分矿工支持硬分叉,升级了硬分叉的版本,于是大家就等待着挖出192W个区块的时刻,这次没有出现意外,硬分叉成功了

但是,当初反对硬分叉的人并没有因为投票结果改变立场,所以旧的链并没有消亡,还有矿工在挖矿,只不过算力大幅下降了,但是挖矿难度也大幅下降了,所以还是有矿工愿意在旧链上挖的。

旧链上的以太币:ETC
新链上的以太币:ETH
但是分裂出两条链给管理上带来了混乱,比如重放攻击,新链的交易放到旧链是合法的,旧链的交易放到新链也是合法的,后来给这两条链加了chainID区分开来

Q:为什么当初硬分叉和软分叉的操作是针对所有The DAO的账户,而不是只针对黑客的账户?
智能合约一旦发布,不能修改,这个bug不能修复,这次黑客用了,下次其他的账户也可以用,任何人都能成为黑客,这个合约就作废了。

这篇关于区块链学习笔记22——ETH-TheDAO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/469115

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。