第七章 以太坊--挣脱数字货币的枷锁


一、以太坊项目简介 1. 以太坊项目简史 2. 主要特点 支持图灵完备的智能合约,设计了编程语言Solidity和虚拟机EVM 选用了内存需求较高的哈希函数,避免出现强算力矿机、矿池攻击 叔块激励机制,降低矿池的优势,并减少了区块产生间隔(约15秒) 采用账户系统和世界状态,而不是UTXO,容易支持更复杂的逻辑 通过Gas限制代码执行指令数,避免循环执行攻击 支持PoW共识算法,并计划支持效率更高的PoS算法   二、核心概念 1. 智能合约:以计算机程序的方式来缔结和运行各种合约 2. 账户:合约账户 / 外部账户 3. 交易:指从一个账户到另外一个账户的消息数据 4. 以太币 5. 燃料(Gas):控制某次交易执行指令的上限   三、主要设计 1. 智能合约相关设计 运行在以太坊虚拟机上,使用Solidity语言编写 2. 交易模型 出于智能合约的便利考虑,以太坊采用了账户的模型,状态可以实时地保存到账户里,而无需像比特币的UXTO模型那样去回溯整个历史。 3. 共识 以太坊目前采用了基于成熟的PoW共识的变种算法Ethash协议作为共识机制。 4. 降低攻击 所有交易都要提供交易费用,避免DDoS攻击 程序运行指令数通过Gas来限制,超过设定的上限就会被取消   四、相关工具 1. 客户端和开发库(go-ethereum) 2. 以太坊钱包(Mist) 3. IDE(Truffle, Embark, Remix) 4. 网站资源   五、安装客户端   六、使用智能合约   七、智能合约案例:投票