赞
踩
以太坊基本原理包括:以太坊账户、以太坊虚拟机、钥匙文件、交易、Gas、以太坊区块、以太币
以太坊是一个开源的有智能合约功能的公共区块链平台,它提供了一个虚拟机来处理点对点的合约。以太坊概念最早是由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协议本质上是促使挖到叔块的节点尽快把挖到的节点交出去让主链节点引用,并且接着最新的区块挖,这样在利益最大化的驱使下,节点会尽可能的在一条链上打包区块
以太坊有两种账户类型:合约账户和外部账户
外部账户功能上和比特币的账户模型是一样的:发送交易,查看余额等,但是产生的机制不同:具体而言就是:私钥-公钥-地址-取最后的20位
合约账户:合约账户在合约部署时生成,用来收取gas费用,调用者需要支付一定的Gas费来执行,这些交易费用到时候会奖励给产生区块的节点
账户状态
type Account struct {
Nonce uint64
Balance *big.Int
Root []byte
CodeHash []byte
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。