1 以太坊基本原理

以太坊基本原理包括:以太坊账户、以太坊虚拟机、钥匙文件、交易、Gas、以太坊区块、以太币

1.以太坊基本原理

1.1 以太坊简介

以太坊是一个开源的有智能合约功能的公共区块链平台,它提供了一个虚拟机来处理点对点的合约。以太坊概念最早是由Vitalik Buterin在2013年到2014年被提出的,2014年通过ICO众筹开始得以发展

以太坊的本质就是一个状态机(读取输入并且输出)

相比比特币的10分钟产生一个区块,以太坊每产生一个区块大约是15s,以太坊把30000个区块当做一个纪元,每个纪元的耗时为125h,这个也是通过难度调整算法来实现的

GHOST协议

以太坊区块产生的时间区间是15s,在此期间,如果不同节点都打包好了区块,那此时无法确定应该纳入哪个节点的区块,接着让接节点比赛谁先打包好下一个区块,谁先挖出谁获胜,但是以此类推,算力最强的节点将会控制整个链,因为在更长的时间内,它一定能够产生更长的链,算力小的节点的打包区块将不会被算力强的节点采用

为了解决上述问题,以太坊使用了GHOST协议

1.每个区块必须有一个父块,有0个或者多个叔块

2.叔块必须是当前区块的k代祖先的直系区块,2 <=k <=7

3.叔块不能是当前区块的祖先

4.叔块必须有合法的区块头,但是可以不经过验证,甚至不是合法的区块

5.叔块不能被重复包括

挖出一个叔块的奖励

(uncle.numer + 8 - header.number)/8*blockReward

挖出一个叔块最少可获得1/4*blockReward

引用n个叔块的奖励

n*1/32*blockReward

最多可以引用2个,也就是说可以拿到1/16分之一的奖励

打包一个有效区块的奖励

Gas费用 + 引用n个叔块的奖励 + 静态奖励

总结:GHOST协议本质上是促使挖到叔块的节点尽快把挖到的节点交出去让主链节点引用,并且接着最新的区块挖,这样在利益最大化的驱使下,节点会尽可能的在一条链上打包区块

1.2 以太坊账户

以太坊有两种账户类型:合约账户和外部账户

外部账户功能上和比特币的账户模型是一样的:发送交易,查看余额等,但是产生的机制不同:具体而言就是:私钥-公钥-地址-取最后的20位

合约账户:合约账户在合约部署时生成,用来收取gas费用,调用者需要支付一定的Gas费来执行,这些交易费用到时候会奖励给产生区块的节点

账户状态

type Account struct {
   Nonce    uint64
   Balance  *big.Int
   Root     []byte
   CodeHash []byte
}
<
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值