(接1)还有些工程建立在比特币网络基础上,充分利用比特币网络的巨大价值和它的基于共识算法的计算资源。MasterCoin项目由Willett[2013]首次提出,目标是创建一套更丰富的协议,在比特币核心协议中增加一些高质量的特征。ColouredCoin项目,由Rosenfeld[2012]提出,采用了相同的,但是更简单的策略,通过优化交易中的规则,打破比特币基础货币的可代替性,并允许通过一个特定的“彩色钱包”协议来实现对代笔的创建和追踪。还有另外一些项目,抛弃了去中心化的基础,由Boutellier和Heinzen【2014】探讨的Ripple项目寻求创建一种用于货币兑换的联盟体系,用于高效的创建一个新的金融清算系统。该项目已经证明舍弃去中心化特征后可以获取高效率。智能合约的早期工作由Szabo[1997]和Miller[1997]开启,整个1990年代,已将逐渐表明,使用算法强力实现合约在人类合作中越来越重要。虽然没有一个特定的系统被提出来实现这一系统,但是可以预见在未来,法律受这类系统的巨大影响。在这一点上,以太坊可以看做是这个密码-法律系统的一个一般化的实现。

2. 区块链示例  以太坊,整体上可以看作是基于基于交易的状态机;从初始状态开始,逐渐增加交易,将状态演化为最终态。这个最终态就是以太坊的版本。状态信息包括账户信息,信用值,可信安排,与现实世界信息相关的数据等,简而言之,允许包含任何可以用计算机体系能表达的对象。交易表示两个状态间的转换。交易中的有效部分是至关重要的,因为交易中包含的远多于有效信息的无效信息。无效的状态变化,比如这样的事情,当一个账户余额减少时,在任何地方却没有一个相等的余额增加。一个有效的状态变换是由一个交易产生的,公式化表示为:

这里,是以太坊状态变换函数。在以太坊中,与现有的其它系统相比功能更大。允许组件执行任意的运算,允许组件存储任意的交易状态。

交易被整理成块,块通过密码函数作为索引工具链接,块函数作为日志,记录了一系列的交易,以及交易的前一个块和最终态的标识(但是不要存储整个最终态,它是特别巨大的)。块函数也会在给予节点挖矿奖励时不时打断交易的连续性。奖励操作由状态转换函数完成,给匿名账户增加代币。

挖矿是指在竞争块中努力最早找到一系列交易组成一个块的过程,这个目标的达成受益于密码学安全证明。这一设计便是工作量证明,会在11.5节详细讨论;

正式表达如下:

这里,表示终结块状态转换函数(一个用于奖励匿名参与方的函数),B是一个包含很多交易的块,它还要很多竞争者,是指块层级状态转换函数。

上述便是区块链示例的基础,不仅是以太坊的基石,也是目前所有去中心化的共识交易系统的基石。

2.1 价值

为了激励网络上的计算资源,需要一个协商好的价值转换方法。为解决这一问题,以太坊设计了货币:Ether,简记为EHT,有时用古典英文字母。ETH的最小的单位是Wei。 1Ether=10^18Wei,还有如下单位换算:

目前,所以涉及价值、Ether内容、货币、账户值或是付款额,都应用Wei做计量。

2.2 历史情况

因为系统是去中心化的,所有的参与者都有机会在已有块的基础上创建出新块,最终会形成一个树形块。为了形成对路径的共识,即从根(初始块)到叶(包含了最近交易的块)的路径,该路径常被称作区块链,需存在一个共识算法。

如果节点间对路径的认同不一致,便出现分叉

这意味着,在过去的某个块中,有多个状态共存。这意味着,有些节点相信一个两个块包含了全然不同的或不可协调的交易。这一点必须要避免,否则后续的不确定性会造成整个系统的不可信。在以太坊中,为达成共识,我们采用了GHOST协议的简化版,GHOST协议由Sompolinsky和Zohar[2013]年提出。这一个过程在第10章中详细介绍。

有时,在某个特定高度,一个新协议会形成一个新路径,本文仅描述了某个版本的协议。为了回溯一个路径的历史,需要参阅该文档的多个版本。

3. 约定

本文使用了一系列印刷体的符号标识,其中有些对目前的工作有特殊意义:

主要包含两大类,一是状态值,用黑体、小写的希腊字母表示,比如全局状态记为,节点状态;二是函数,用大写的字母表示,例如以太坊状态转换函数

大部分的函数用大写的字母标识,比如费用函数用C表示。有可能用下标标识特定的变量,比如CSSTORE,表示用于SSTORE操作的费用函数。对于特定的、外在定义的函数本文用打字体标识,比如Keccak-256哈希函数(SHA3竞赛的胜出)标识为KEC,同时KEC512表示Keccak512哈希函数。

数组用大写字母表示,例如T,用于表示以太坊交易。

以太坊黄皮书翻译连载2-20170829相关推荐

  1. 以太坊黄皮书翻译连载-1-20170828

     以太坊:一种安全的去中心化的交易账本设计 EIP-150 (Verions:759dccd-20170807) DR. GAVIN WOOD 以太坊及以太坊核心项目创始人 GAVIN@ETHCO ...

  2. 猿哥翻译的以太坊黄皮书

    以太坊白皮书概要性地介绍了以太坊,以太坊黄皮书通过大量的定义和公式详细地描述了以太坊的技术实现.猿哥和高天露联合翻译了以太坊黄皮书. 官方以太坊黄皮书地址: https://github.com/et ...

  3. 技术沙龙|解读以太坊黄皮书,学习智能合约应用开发(北京)

    2019独角兽企业重金招聘Python工程师标准>>> 前几天HiBlock区块链社区的杨镇老师在一次访谈中再次聊到了区块链技术学习和应用的话题,杨镇老师的观点很明确,技术学习要回归 ...

  4. 以太坊-入门基础(以太坊黄皮书学习)

    文章目录 一.什么是以太坊黄皮书 二.以太坊黄皮书 1. 引言 2. 区块链范式 3. 约定 4. 区块.状态和交易 世界状态 账户状态 交易 区块 总结 5. Gas 及其支付 gasPrice 和 ...

  5. 以太坊黄皮书(1~6章)

    以太坊黄皮书(一) 引言   简单来说,在以太坊模型中,交易和智能合约的执行会改变节点的状态:可以把以太坊想象成一台计算机.因此,如果你将这个逻辑复制到分布于点对点网络中的其他节点上,并找到一种方法来 ...

  6. 以太坊黄皮书(7~)

    以太坊黄皮书------合约创建   前面的一篇一到六章的黄皮书是转载,通过作者自己对于文章的简化,对于初学者很好理解,现在以太坊黄皮书(中文版)已经发布,所以接下来的文章,我们直接都中文版.虽然都英 ...

  7. 以太坊黄皮书-附录A

    附录A External Actor:可以与以太坊节点交互但在以太坊世界(world of Ethereum)外部的个人或其他实体.它可以通过存储签名交易和检查区块链以及其他相关的状态交互.它有一个或 ...

  8. 【以太坊源码】以太坊黄皮书参数

    由于参数比较多,直接贴出来比较杂乱,我将其整理在百度脑图,按照黄皮书章节顺序进行分类,并调整了部分常数顺序 需要查阅特定的参数,可以使用ctrl+F直接查询,由于百度脑图不支持下标(或者我不知道),所 ...

  9. 以太坊黄皮书-附录B.递归前缀长度

    以下一种编码任意结构的二进制数据的序列化方法. 假定可能的数据结构: 其中代表字节集合.因而是所有字节的序列的集合(或者是字节数组,可以想象成树结构的叶子).是所有类树(子)结构的集合,这里的树结构布 ...

最新文章

  1. java 右键菜单_界面操作--添加右键菜单
  2. Linux makefile中的= := ?=操作符
  3. xml解析案例:一个简单的学生管理系统
  4. B站up主用AI还原李焕英 动态影像
  5. Python中乐高积木——函数
  6. 手机连接蓝牙扫码枪_宝马车与手机无法蓝牙连接的技术通报
  7. 你这API设计的真”辣鸡“,简直没法看!
  8. 正确的Kado ED「永遠のこたえ」
  9. 如何在电脑表格中用计算机,如何制表(如何使用电脑制作表格)
  10. 微信服务号、订阅号和企业号的区别
  11. 编程猫编程平台的使用介绍
  12. Steam 界面布局出错的问题
  13. 人员离职it检查_员工离职的IT流程
  14. 维基解密再爆猛料:CIA利用漏洞入侵全球数十亿个人电子设备
  15. 微软modern.IE:网站兼容性测试利器
  16. 腾讯云cos下载地址,文件重命名
  17. 输入月份、年份判断天数:1、3、5、7、8、10、12 -------- 31天4、6 、9、11--------30天 2------------28/29天
  18. oracle数据块损坏后的修复方法
  19. educoder——面向对象程序设计java——第二阶段Java面向对象——思政-1 : 科技-->人工智能
  20. SolidWorks真香(四)CaTICs赛题实战

热门文章

  1. RGB to CVBS/S-Video
  2. 《现代汉语语法信息词典》的开发与应用
  3. 关于FB撞库、群控的技术实现
  4. 海尔计算机类,分享海尔计算机类笔试题 -管理资料
  5. photoshopcs5 win7安装报错的解决
  6. Spring MVC的文件上传和下载以及拦截器
  7. 导航电子地图制作资质的办理指南
  8. 大淘营淘宝店铺宝贝复制专家3.56 破解记录 不怕升级
  9. 批量将记事本文本文件转为 UTF8 等编码格式
  10. 当程序员遇到会写代码的产品经理......