概述
(接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的全部内容,希望文章能够帮你解决以太坊黄皮书翻译连载2-20170829所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复