主页

索引

模块索引

搜索页面

临时收集

离线的钱包就是冷钱包, 在线的钱包就是热钱包,

从安全性角度看:冷钱包>热钱包>平台 从便捷性看:平台>热钱包>冷钱包

bip32 = hd wallets, what they are how they work bip39 = specific type of mnemonic, and the process for turning it into a bip32 seed bip44 = a specific format of a bip32 wallet

区块链的每个参与者都保存一个账本,账本中的一页叫做一个“区块”(block)。账本中保存系统里每一笔交易的信息。通过类似于民主投票的方式,保证所有数据的一致性。只要大多数人是好的,就可以保证系统的正确运行。一个区块链系统是由一批分布(在全球)的节点组成的,其中每个节点都是一台自主的设备(计算机)。系统存在的目的是为了维护一个分布式的账本。这个账本是由一个个的数据区块(block)有序连接在一起形成的一个链条——区块链。系统中每一个节点都完整地保存整条区块链上所有的数据。因此,只要大多数节点是好的,任何异常、非法的行为都会立刻被发现并且纠正。

区块链系统中每一个节点都完整地保存整条区块链上所有的数据。显然,每一个节点随时都可以自由地读取区块链上的数据。同样显然,不可能允许节点们同时去写区块链上的数据。任何时刻,只能有唯一一个写者。究竟谁有资格写数据?算力证明(Proof of Work)、

分叉与共识 只有提供了算力证明的节点才能获得写区块的权力。但是,如果两个甚至更多个节点几乎同时提供了算力证明,这就会导致不同节点分别写入不同的区块,从而造成区块链分叉。当区块链出现分叉时,使用如下方法在不同节点间取得共识:最长链法则:要求大家都尽量选取最长的那个分叉。如果有多个分叉都是最长,那么在其中随便选取一个在任意时刻,不同节点对于数据的认知都可能是不同的显然无法保证节点之间立刻取得共识但随着时间推移,节点对于“有年龄的数据”的认知趋于一致!

智能合约 金融合同的数字化、自动化实现。用分布在多方的代码来表示合同的内容。通过运行这些代码来自动执行合同。主流区块链系统普遍支持智能合约:比特币系统提供一个脚本语言,可以用来书写智能合约,但该功能是图灵不完全的。以太坊系统提供了图灵完全的智能合约功能区块链系统的分布性、无中心性为智能合约提供了绝佳的环境支撑。智能合约的强大功能为区块链系统提供了无穷的潜力。

以太坊区块链的特点主要包括:

1. 单独为智能合约指定编程语言 Solidity;
2. 使用了内存需求较高的哈希函数:避免出现算力矿机;
3. uncle 块激励机制:降低矿池的优势,减少区块产生间隔为 15 秒;
4. 难度调整算法:一定的自动反馈机制;
5. gas 限制调整算法:限制代码执行指令数,避免循环攻击;
6. 记录当前状态的哈希树的根哈希值到区块:某些情形下实现轻量级客户端;
7. 为执行智能合约而设计的简化的虚拟机 EVM。

核心概念:

* EVM:以太坊虚拟机,轻量级虚拟机环境,是以太坊中智能合约的运行环境。
* Account:账户,分两类:合约账户存储执行的合约代码;外部账户为以太币拥有者账户,对应到某公钥。
* Transaction:交易,从一个账户到另一个账户的消息,包括以太币或者合约执行参数。
* Gas:燃料,每执行一条合约指令会消耗一定的燃料,当某个交易还未执行结束,而燃料消耗完时,合约执行终止并回滚状态。

降低攻击:

设计核心思想是通过经济激励机制防止少数人作恶:
* 所有交易都要提供交易费用,避免 DDoS 攻击;
* 程序运行指令数通过 gas 来限制,所消耗的费用超过设定上限时会被取消,避免恶意合约。

提高扩展性:

以太坊未来希望通过分片机制可以提高整个网络的扩展性。分片之前整个网络的处理取决于单个节点的处理。
分片后,只有同一片内的处理是同步的、一致的,不同分片之间则可以是异步的。

P2P网络协议:

RLPx协议:节点间的通信协议
Whisper协议:DApp间通信的协议

log entry for a single opcode looks like:

{
  "pc":      48,
  "op":      "DIV",
  "gasCost": 5,
  "gas":     64532,
  "depth":   1,
  "error":   null,
  "stack": [
    "00000000000000000000000000000000000000000000000000000000ffffffff",
    "0000000100000000000000000000000000000000000000000000000000000000",
    "2df07fbaabbe40e3244445af30759352e348ec8bebd4dd75467a9f29ec55d98d"
  ],
  "memory": [
    "0000000000000000000000000000000000000000000000000000000000000000",
    "0000000000000000000000000000000000000000000000000000000000000000",
    "0000000000000000000000000000000000000000000000000000000000000060"
  ],
  "storage": {
  }
}

性能测试

主页

索引

模块索引

搜索页面