第1章 一台全球计算机
以太坊 历史 以太坊 发展阶段 以太坊 特色第2章 账户是什么
以太坊 基础知识 Keystore 与私钥保存 以太坊 常用钱包 以太坊 EIP-55 账户地址第3章 交易是驱动力
以太坊 交易是驱动力 以太坊 交易发送 以太坊 交易方法 以太坊 交易生命周期 共识与工作量证明 矿工与挖矿奖励第4章 数据结构
以太坊 数据结构 以太坊 Radix树 以太坊 Merkle树 Merkle Patricia树 以太坊 RLP编码 以太坊 状态树 以太坊 交易树 以太坊 收据树 以太坊 区块第5章 构建私链
以太坊 安装geth 以太坊 启动私链 以太坊 接收挖矿奖励 以太坊 转账与收款第6章 部署智能合约
以太坊 部署智能合约 以太坊 什么是智能合约 以太坊 安装编译器 Solc 编译智能合约 智能合约发布准备 部署智能合约 调用智能合约第7章 以太坊虚拟机
以太坊虚拟机 虚拟机的执行结果 虚拟机的执行资源 合约调用合约 虚拟机的输入输出 Gas 花费与退回 虚拟机指令集第8章 Solidity 语法
Solidity 语法练习 Solidity 基础语法 Solidity 语法进阶 Solidity 高级语法 Solidity 安全第9章 Truffle 开发
Truffle 合约开发 编译、测试工具安装 Truffle 启动样例 Truffle ERC20合约 Truffle ERC20合约测试Truffle 冷知识
Truffle 冷知识 短地址攻击 比特币的区块 以太坊与比特币账户的区别 “不可能的三角”问题 ETHASH 挖矿算法第1章 一台全球计算机
以太坊 历史 以太坊 发展阶段 以太坊 特色第2章 账户是什么
以太坊 基础知识 Keystore 与私钥保存 以太坊 常用钱包 以太坊 EIP-55 账户地址第3章 交易是驱动力
以太坊 交易是驱动力 以太坊 交易发送 以太坊 交易方法 以太坊 交易生命周期 共识与工作量证明 矿工与挖矿奖励第4章 数据结构
以太坊 数据结构 以太坊 Radix树 以太坊 Merkle树 Merkle Patricia树 以太坊 RLP编码 以太坊 状态树 以太坊 交易树 以太坊 收据树 以太坊 区块第5章 构建私链
以太坊 安装geth 以太坊 启动私链 以太坊 接收挖矿奖励 以太坊 转账与收款第6章 部署智能合约
以太坊 部署智能合约 以太坊 什么是智能合约 以太坊 安装编译器 Solc 编译智能合约 智能合约发布准备 部署智能合约 调用智能合约第7章 以太坊虚拟机
以太坊虚拟机 虚拟机的执行结果 虚拟机的执行资源 合约调用合约 虚拟机的输入输出 Gas 花费与退回 虚拟机指令集第8章 Solidity 语法
Solidity 语法练习 Solidity 基础语法 Solidity 语法进阶 Solidity 高级语法 Solidity 安全第9章 Truffle 开发
Truffle 合约开发 编译、测试工具安装 Truffle 启动样例 Truffle ERC20合约 Truffle ERC20合约测试Truffle 冷知识
Truffle 冷知识 短地址攻击 比特币的区块 以太坊与比特币账户的区别 “不可能的三角”问题 ETHASH 挖矿算法以太坊 什么是智能合约
智能合约就是一组规则和规则指导下的数据的合体。相当于一个后端代码+数据库。
智能合约是被创造出来的独立管家
以太坊中的账户分为外部账户和合约账户:
- 外部账户:使用私钥掌控的账户,持有者一般为个人。
- 合约账户:由外部账户部署/调用,具有公开地址但没有私钥的账户。
以太坊的合约,就是一组存活在合约账户中的代码和数据变量,它根据自身的代码指令在以太坊上被动地执行一些事先编排好的输入、输出,以及存储修改操作。 合约账户具备外部账户所没有的数据存储区与代码存储区。 它不具备私钥,故而任何人不能用破解它的私钥来控制合约中的资金,资金的流动仅由代码逻辑执行,具有独立性,仿佛一个管家一样。
智能合约是能接收数据的实体
无论是转账还是智能合约调用,都需要通过发送交易来完成。以太坊的交易就是一次消息传递,传递的是 数据 以及 价值 (以太币)。
区别仅仅在于交易体中是否携带数据。携带数据的交易可能是一次智能合约调用,不携带数据的就是一次普通以太币转账。
智能合约具备接收数据,处理数据的能力。
智能合约是代码编写的合同
智能合约就是现实生活中“合同”概念在区块链上的延伸,比如在买卖场景中,买方与买方需要规定交割货品的数量、交割的方式以及交割的时间,并会押一部分或全部货款到第三方。当货物顺利交割时,第三方按照合同的约定放行货款;当产生纠纷时,按照合同既定条款,第三方部分扣除或全部扣除货款来补偿受损的一方。在这里,第三方起到公平、公正、公开的执行官的角色,这点在以太坊的智能合约上独具优势。
- 智能合约的条款由代码来指定,代码的逻辑缜密远超普通文字描述。
- 智能合约的存储、部署在公开的以太坊链条上,天然具有公开、透明的性质。任何人都可以随时公开查询一个合约的状态。
- 智能合约的安全性由去中心化网络保证,产生的交易数据也在区块链上永久存储和追溯,无法抵赖,安全性远超由中央节点控制的条款类程序。
- 智能合约有强制性、自动性,无需人工干预,当条件满足时仅需触发,就能自行完成相应操作,如转账扣款或者变更库存数量等。
下一章:以太坊 安装编译器
我们通过两种手段来部署同一份智能合约,合约内容非常简单。我们通过 Solidity 编程语言(开发智能合约最流行的语言)来写智能合约。我们需要用到 Solc 编译器。Ubuntu环境下安装 Solc同安装Geth一样,我 ...
AI 中文社