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

这篇具有很好参考价值的文章主要介绍了《区块链技术与应用》北大肖臻老师——课程笔记【21-23】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

一、权益证明

权益证明proof of stake
比特币和 以太坊目前都是使用基于工作量的证明,这种共识机制受到一个普遍的批评——浪费电。
《区块链技术与应用》北大肖臻老师——课程笔记【21-23】
Y轴是TWH=Terawatt hours 10的 12次方
KWH=Kilowatt hours 10的3次方 (千瓦式)
《区块链技术与应用》北大肖臻老师——课程笔记【21-23】
一个交易要花一千度电。
《区块链技术与应用》北大肖臻老师——课程笔记【21-23】
《区块链技术与应用》北大肖臻老师——课程笔记【21-23】
以太坊能耗比比特币低的原因:比特币出块时间长,以太坊出块时间短,平均下来能耗低。
《区块链技术与应用》北大肖臻老师——课程笔记【21-23】
挖矿过程中的这些能耗是不是必须的?
矿工为了取得出块奖励而挖矿,为了激励矿工参与维护系统而有出块奖励。
挖矿的收益实际上是靠投入的资金决定的。

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

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

权益证明遇到的挑战——两边下注问题 nothing at stake
在一条链上,出现分叉A、B,A链暂时是最长合法链,权益证明的情况下,可以对A、B两条链同时下注,锁定的币不会影响其他链的使用。
《区块链技术与应用》北大肖臻老师——课程笔记【21-23】
以太坊中准备采用的协议证明是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的票数才算有效。
《区块链技术与应用》北大肖臻老师——课程笔记【21-23】验证者参与这个过程的好处:
如果验证者履行职责,可以得到相应的奖励,如果有不良行为被发现,要受到相应的惩罚,如扣除保证金、没收全部保证金(销毁)。
验证者有一定任期,任期满了要经过一段时间的等待期,等待期是为了其他节点可以检举揭发。如果等待期过了没有问题,验证者可以取回保证金和应得奖励。

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

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

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

二、ETH-TheDAO

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

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

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

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

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

《区块链技术与应用》北大肖臻老师——课程笔记【21-23】
把钱还给调用这个函数的人,把TheDAO的数额减少,再把调用者数量清零。正确的操作顺序是先把账户清零,再转账,黑客就是利用这个漏洞,进行重入攻击。黑客利用这个攻击转走了差不多1//3的以太币。

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

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

无论是软分叉还是硬分叉都是把TheDAO所有账户进行处理,为什么不能针对黑客账户进行处理?
TheDAO智能合约有bug,这次是黑客利用了,如果只针对黑客账户处理,以后可能还会有其他账户这样利用这个bug。所有有BUG的智能合约都是作废了,所以这个TheDAO也最终解体了。文章来源地址https://www.toymoban.com/news/detail-401594.html


到了这里,关于《区块链技术与应用》北大肖臻老师——课程笔记【21-23】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[27]以太坊-反思

    目录 一、智能合约的反思         1.Is smart contract really smart?         2. Irrevocability is a double edged sword.         3. Nothing is irrevocable. 二、语言设计上的反思         1.Is solidity the right programming language?         2.编写智能合约的语言应该有什么样的表达力? 三

    2024年01月20日
    浏览(55)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[20]以太坊-权益证明

    目录 一、为什么要转入权益证明         1.比特币系统的相关数据          2.以太坊的统计数据         3.比特币和以太坊当成一个国家 二、思考         1.矿工为什么要挖矿?         2.为什么要给矿工这些收益,这些出块奖励呢?         3.矿工具体

    2023年04月25日
    浏览(42)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[17]以太坊-GHOST协议

    目录 一、以太坊的出块时间及可能带来的问题         1.以太坊的出块时间         2.以太坊与比特币系统的平均出块时间对比         3.带来的问题 二、GHOST协议         1.GHOST协议的核心思想         2.GHOST协议的缺陷         3.改进后的GHOST协议    

    2024年02月09日
    浏览(50)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[23]以太坊-智能合约-3

    智能合约-1 智能合约-2 1.假设某个全节点要打包一些交易到一个区块里,这些交易里有一些是对智能合约的调用,那么这个全节点应该先执行完智能合约再挖矿,还是先挖矿获得记账权再执行这些智能合约?         在区块链中,如果有一笔转账交易发布上去,需要所有的全

    2023年04月23日
    浏览(44)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[25]以太坊-智能合约-5

    智能合约-1 智能合约-2 智能合约-3 智能合约-4 网上竞拍第二版:由投标者自己取回出价 (1)存在的问题         重入攻击,如果有黑客写了一个如下方程序会怎么样?         这个hack_bid跟前面的那个黑客合约hack_bid合约是一样的,通过调用拍卖bid函数参与竞拍,ha

    2024年03月11日
    浏览(63)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[22]以太坊-智能合约-2

    智能合约-1 目录 一、智能合约的创建和运行         1.智能合约的创建         2.汽油费         3.错误处理         4.嵌套调用 二、思考         1.GasLimit和GasUsed         2.以太坊中的GasLimit跟比特币的区别 1.智能合约的创建         智能合约 由一个外

    2024年02月19日
    浏览(49)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[15]以太坊-交易树和收据树

     目录 一、以太坊中的三种树 二、状态树、交易树和收据树的区别 三、交易树和收据树的用途         1.交易树和收据树的用途         2.如何实现复杂的查询操作         3.以太坊中Bloom Filter的用途 四、以太坊的运行过程        在以太坊中,存在三种基于树的

    2024年02月05日
    浏览(53)
  • 北大肖臻老师<<区块链技术>>笔记1

    课程的大纲 密码学基础 比特币的数据结构 共识协议和系统实现 挖矿算法和难度调整 比特币的脚本 软分叉和硬分叉 匿名和隐私保护 以太坊是后面的 首先是密码学基础的学习: crypto-currency(虚拟货币) 是不加密的,区块链上所有的教以都是公开的。其中有转账金额和地址。

    2024年02月02日
    浏览(36)
  • [北大肖臻-区块链技术与应用笔记]第八节课——BTC 脚本

    比特币系统中使用的脚本语言很简单, 唯一能访问的内存空间就是一个栈 ,这点和通用脚本语言的区别很大。 这个交易有一个输入和两个输出,其中一个输出已经被花出去了,另一个没有被花出去。 输入脚本 输入脚本包含两个操作,分别将两个很长的数压入栈中。 输出脚

    2024年01月21日
    浏览(66)
  • [北大肖臻-区块链技术与应用笔记]第八节课——BTC 分叉

    state fork 如果两个节点差不多同时挖到一个区块,这两个区块都是挂在当前的区块上的,不同节点先收到的区块不同,就会各自沿着先收到的区块往下扩展,这种时候就会出现临时性的分叉,称为 state fork ,即由于对区块链当前的状态有意见分歧而产生的分叉。 分叉攻击(

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包