《区块链技术与应用》北大肖臻老师——课程笔记【21-23】

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

《区块链技术与应用》北大肖臻老师——课程笔记【21-23】


提示以下内容只是个人在学习过程中记录的笔记图片均是肖老师课程的截图可供参考。如有错误或不足之处请大家指正。

一、权益证明

权益证明proof of stake
比特币和 以太坊目前都是使用基于工作量的证明这种共识机制受到一个普遍的批评——浪费电。
在这里插入图片描述
Y轴是TWH=Terawatt hours 10的 12次方
KWH=Kilowatt hours 10的3次方 千瓦式
在这里插入图片描述
一个交易要花一千度电。
在这里插入图片描述
在这里插入图片描述
以太坊能耗比比特币低的原因比特币出块时间长以太坊出块时间短平均下来能耗低。
在这里插入图片描述
挖矿过程中的这些能耗是不是必须的
矿工为了取得出块奖励而挖矿为了激励矿工参与维护系统而有出块奖励。
挖矿的收益实际上是靠投入的资金决定的。

权益证明(virtual mining)
采用权益证明的加密货币会在发行之前预留一部分货币给开发者也会出售一部分货币来获得发行的资金。

和工作量证明相比权益证明的优点
1、省去了挖矿的过程避免了对能耗和环境的影响减少了温室气体的排放
2、基于工作量证明的系统维护系统的安全不是一个闭环挖矿设备不是在系统的生态圈中是外部的资源可以转化为挖矿的算力转化成对挖矿攻击的能力。
采用权益证明假设如果要发动51%攻击需要有占比51%以上的币种才能发动。这些币种是系统内部的是一个闭环外部的资源不会对系统安全造成直接影响。

权益证明遇到的挑战——两边下注问题 nothing at stake
在一条链上出现分叉A、BA链暂时是最长合法链权益证明的情况下可以对A、B两条链同时下注锁定的币不会影响其他链的使用。
在这里插入图片描述
以太坊中准备采用的协议证明是Casper the Friendly Finality Gadget(FFG),在过渡阶段要和工作量证明混合使用为工作量证明提供Finality Finality是最终状态包含在Finality的交易不会被取消。

Casper协议引入验证者validator要想成为validator需要投入一定数量的以太币作为保证金保证金会被系统锁定住。 Validator的作用是推动系统达成共识投票决定哪条链是最长合法链投票权重取决于投入保证金数目大小。

具体做法挖矿时每挖出一个区块就作为一个epoch决定是否能成为Finality要进行投票两轮投票two-phase commit,第一轮投票是prepare message,第二轮投票是commit message, Caspe协议规定每一轮投票都要得到2/3验证者才能通过按照保证金实际大小来算。
实际系统中不区分两个message把epoch从原来100个区块减少到50个区块每个epoch只用一轮投票就行这轮投票对于上一个epoch是commit message对于下一个epoch是prepare message要连续两轮投票都得到2/3的票数才算有效。
在这里插入图片描述验证者参与这个过程的好处
如果验证者履行职责可以得到相应的奖励如果有不良行为被发现要受到相应的惩罚如扣除保证金、没收全部保证金销毁。
验证者有一定任期任期满了要经过一段时间的等待期等待期是为了其他节点可以检举揭发。如果等待期过了没有问题验证者可以取回保证金和应得奖励。

通过验证者投票达成的Finality有没有可能被推翻
单纯矿工发动攻击不会推翻Finality。大量的验证者给前后两个有冲突的Finality投票了如果出现这种情况至少有1/3的验证者给两边都投票了一旦发现这些验证者的保证金会被没收。

为什么以太坊不一开始就用 权益证明
因为权益证明不是很成熟工作量证明比较成熟经过时间检验。比特币和以太坊的算法都经过了bug bounty的检验没有人发现什么漏洞。EOS加密货币用权益证明的思想用DPOS协议先用投票方法选出21个投票节点然后再由超级节点产生区块。基于权益证明的共识机制目前处于探索状态。

很多人对工作量证明有反感因为觉得是无用功白浪费了很多电但其实挖矿对环境的影响是有限的挖矿的一个好处是把多余的电能转化为钱的一种手段。

二、ETH-TheDAO

DAO:去中心化的自治组织建立在代码基础上规章制度写在代码中通过区块链共识协议维持这种规章制度的执行。

TheDAO具体的一个DAO用来众筹投资项目本质是一个运行在以太坊上的智能合约如果要参与TheDAO可以发以太币给这个智能合约换回TheDAO的代币。需要决定投资哪个项目可以通过代币决定代币越多权重越大如果有收益也按照合约中规章制度决定收益分配。出于非营利性目的

DAC去中心化的自治公司出于盈利目的。现实中不具有公司的法律地位。

TheDAO只存活了三个月。 TheDAO中要收回收益是通过拆分实现拆分也是一种建立子基金的方法。如果有少部分人认为投资的项目不好可以通过拆分独立出来成立自己的子基金拆分时手中的代币要被收回去换成相应数量的以太币。拆分的极端例子就是单个的投资者成立一个子基金这是投资者取回收益的唯一途径。拆分之前有七天辩论区讨论拆分好不好要不要加入拆分之后有28天锁定期打入的以太币收益要在28以后才能取出来。

拆分的理念是民主制度的绝对体现。 TheDAO存在时间短的问题出现在拆分 DAO的实现。

在这里插入图片描述
把钱还给调用这个函数的人把TheDAO的数额减少再把调用者数量清零。正确的操作顺序是先把账户清零再转账黑客就是利用这个漏洞进行重入攻击。黑客利用这个攻击转走了差不多1//3的以太币。

以太坊对heDAO事件有两个方面的讨论一方面认为要采取补救措施要进行回滚保证广大投资者的正当利益另一方认为不需要采取补救措施因为黑客的行为没有违反代码中的规则。

TheDAO补救措施
1、回滚分叉攻击。会影响其他区块交易的状态是不可行的。只能针对黑客进行交易的交易进行回滚其他发生正常的交易不能受到影响。两步走1、锁定黑客账户不允许和黑客账户相关的账户进行交易大部分节点进行升级-软分叉升级后有个bug和gas相关检查地址错误没有收取gas然后有大量非法交易之后这个方法失败了。2是退钱。硬分叉——把TheDAO的钱强行转到另一个合约上这个不需要本人同意强制执行新升级矿工挖到第192万区块自动执行。实现用智能合约投票大部分人支持硬分叉最后硬分叉成功黑客行为没有得到获利。
在这里插入图片描述
硬分叉后新链的以太币符号是ETH旧链上的是ETC经典以太坊。刚开始两条链记账本一样基本 规则大致一样容易出现重放攻击后来使用Chain ID区分开来。

无论是软分叉还是硬分叉都是把TheDAO所有账户进行处理为什么不能针对黑客账户进行处理
TheDAO智能合约有bug这次是黑客利用了如果只针对黑客账户处理以后可能还会有其他账户这样利用这个bug。所有有BUG的智能合约都是作废了所以这个TheDAO也最终解体了。


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 区块链