• 10-ETH-DAO

    DAO(Decenntralized Automous Orgarization)The DAO(去中心化的自治组织的一个)介绍 通过发送给众筹组织以太币,从而获取代币,从而获得投票权。 收回以太币(拆分) 拆分成立子基金child DAO,然后投给自己。 拆分之前有7天讨论期。 拆分之后的子基金以太币28天冻结期。 the dao 代码 应该先设置为0,在进行转账操作。 补救措施...
  • 09-ETH-智能合约

    智能合约特点 可执行代码。 编程特点 不知支持对于哈希表进行遍历。 构造函数只能有一个。 调用函数放在data域中。 接受转账的函数需要设置为payable类型。 竞标的函数通过叫价把自己的以太币放在合约里面锁定。 withdraw函数撤回以太币函数。 合约调用另一个合约函数直接调用 被调用出现错误,调用者也出现错误。 使用address类型进行调用 被调用函数异常,调用者会继...
  • 08-ETH-权益证明

    工作量证明能耗太高ETH每笔能耗小于BTC 由于ETH出块速度快。 平均下来消耗能耗就会小一点。 原来是工作量证明POS(权益证明) 需要51%的币才有攻击的可能。 Proof of Deposit说明 可以通过币来进行降低挖矿难度。 威胁是币越多的人越容易挖矿。 通过对于投入降低难度的币进行时间锁定。 遇到的问题 两头下注,在两条链上投入相同的币进行挖矿。 Casper the F...
  • 07-ETH-难度调整

    理论 为了实现15秒左右的共识,为权益证明实现提供更多的时间。 回退了300万个 难度炸弹的调整在拜占庭阶段。 调整区块的奖励。 具体的代码实现拜占庭阶段挖矿难度调整
  • 06-ETH-挖矿算法

    Block chain is secured by mining.天然的bug赏金ETH ASIC resistance. memory hard mining puzzle. 16M cache,轻节点。 1G dataset,全节点. GPU是主要的算力。 ethash. 工作量证明转为权益证明。 现在已经用权益证明了。 预挖矿,预留一部分货币。 预售机制。 cache生成方式 种子节...
  • 05-ETH-共识机制

    共识机制(ghost) 作废块也有出块奖励,uncle block。 叔块奖励奖励的7/8。 最多包含2个叔父区块。 包含了区块获得1/32。 修改协议 区块部分辈分,只要是之前的未在最长链的区块,都算叔父区块。 最多有7辈分的叔。 为了尽快合并区块链。 解决临时性分叉。 防止篡改。 只能合并合法区块,包含了非法块就成为坏块。 奖励 block...
  • 04-ETH-交易树与收据树

    交易树(MPT) 只组织当前区块的交易。 提供默克尔证明。 查询操作。 收据树(MPT) 由于 bloom filter 高效查找存在性。 生成摘要,查看映射函数是否存在。 哈希之后映射。 可能会误报,不会不报。 false positive。 不支持删除操作。 添加计数器才可以进行参数操作,类似链接。 每个交易都有一个bloom fliter。 块头有一个总的Bloom filter...
  • 00-ETH-入门总结

    一.概述与账户1.ETH概述ETH与BTC类似,都是通过交易驱动的状态机,但是以太坊的以太币与比特币的记录方式不同,花费方式也不同,比特币需要提供币的来源,同时要维护一个UTXO,以太坊使用账户余额形式来记录账户余额,所以不会出现花费两次的问题。以太坊全节点要维护状态树、交易树、收据树,状态树主要是记录不同账户的状态,记录每个上链的账户的余额信息和其他数据,交易树与收据树是记录交易相关的详细...
  • 03-ETH-状态树

    状态数据结构 addr –>state 余额证明 所有账户的哈希表。 构造默克尔树。 余额只是一种状态。 根据哈希值流程验证即可证明,因为根哈希是一定的在某个时间。 哈希表构造默克尔树不排序 默克尔书不唯一。 排序 代价太大,新建账户的代价太大。 trie(检索树) 输入不管,结果相同。 更新局部性比较强。 存储有点浪费。 PT压缩检索树 访问效率增加。 新增加点,节点可...
  • 02-ETC-账户

    BTC 基于交易的。 需要说明币的来源 验证与一次性花费完 ETH 基于账户的余额管理。 不说明币的来源。 也不需要一次性转完。 天然防御双花攻击。 重放攻击 想要收一个交易的两次结果, 加一个交易次数nonce唯一值。 以确保交易的唯一性。 nonce在签名中被保护。 账户类型外部账户 账户余额 nonce(counter) 合约账户 余额 nonce 不能主动发送交易 可以调用其...