【区块链】复习之十一以太坊&智能合约

1、背景知识

比特币中,收益和算力是相关的,矿工的设备不断更新,门槛越来越高,导致矿工数量的下降,大多数的收益集中于少部分矿工,这种节点的集中和区块链的去中心化是相违背的。
Ethash的计算过程中增加的对内存的要求而抵抗ASIC矿机的优势。

所以以太坊的共识算法,期望达到两个目的:
抗ASIC性:为算法创建专用硬件的优势也尽可能小。
轻节点可验证性:一个区块链能被轻客户端快速有效验证。

2、以太坊 算法

依赖一个预先生成的大型数据集,这部分数据集体积远超过ASIC矿机的内部寄存器体积,较慢的内存读写I/O操作时间抵消了ASIC矿机带来的时间优势。
请添加图片描述
①先根据相关区块的内容计算出一个种子,再利用该种子产生一定大小的伪随机数数据集,成为cache
②基于cache生成较大规模的数据集DAG
③挖矿的过程即为从DAG中随机选取元素对其进行哈希运算,或者一个哈希值满足指定的“难度要求”的元素

3、以太坊 难度

Ethash实现了部分普通计算机参与 、算力去中心化的思想。但是有高内存高算力运算的显卡矿机以及一些ASIC矿机在侵蚀Ethash算法的屏障作用。所以以太坊的共识算法在不久将来的第四阶段切换到POS模式。

3.1难度调整

难度调整公式
Hi是祖先区块的个数,为0表示创世区块。
D(H)表示当前区块的高度。P(H)表示父区块的难度,D0表示难度基础部分的下界,D0=131072
x*c2用于自适应调节出块难度,维持速度
∈表示设定的难度炸弹。
每个区块的难度由基础部分和难度炸弹部分组成

3.2自适应难度调整

请添加图片描述x是调整的单位,c2是调整的系数
如果父区块包含了uncle,则y为2,否则为1

3.3自适应难度调整系数

请添加图片描述
Hs:当前区块的时间戳,P(H)Hs表示父区块的时间戳
c2是稳定出块速度的最重要部分
以y=1为例:
如果出块时间在[1,8],则出块时间过短,要调大一个单位
如果出块时间在[9,17],则出块时间合适,难度保持不变
如果出块时间在[18,26],则出块时间过长,要调小一个单位

3.4难度炸弹

请添加图片描述
∈每十万个区块增大一倍,是2的指数函数。是为了要降低迁移至POS协议时发生FORK的风险;到时候挖矿难度非常大,矿工有意愿迁移至POS协议

4、智能合约

智能合约是一种通过计算机程序描述的承诺。

如在跨国合约中,传统的方式维护很难,需要人工判断,而智能合约时事先写好的代码来保证每个人都只能按照规则来执行。
去中心化合约的好处:
代码一旦写进区块链,由于区块链的不可篡改性,谁都不能修改这个代码,这样就能保证大家只能按照这个代码中指定的规则来执行。请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值