以太坊白皮书中文版(完整版)

所需积分/C币:15 2018-04-25 16:49:15 1022KB PDF
431
收藏 收藏
举报

以太坊是什么? 以太坊是一个全新开放的区块链平台,它允许任何人在平台中建立和使用通过 区块链技术运行的去中心化应用。就像比特币一样,以太坊丌受任何人控制, 也丌归任何人所有——它是一个开放源代码项目,由全球范围内的很多人共同 创建。和比特币协议有所丌同的是,以太坊的设计十分灵活,极具适应性。在 以太坊平台上创立新的应用十分简便,随着 Homestead 的发布,任何人都可 以安全地使用该平台上的应用。
汇智网 Hubwiz. com 以太坊白皮书屮文版 个先中请( )系统:如果某人有 并且同时向和发送这 只冇被首先确认的交易才会生效。没冇固有方法可以决定两笔交易哪一笔先到, 这个问题阻碍了去中心化数字货币的发展许多年。中本聪的区块链是第一个可靠 的去中心化解决办法。现在,开发者们的注意力开始迅速地转向比特币技术的第 二部分,区块链怎样应用于货币以外的领域 常被提及的应用,包括使川链上数字资产来代表定制货而和金融工具(彩色币) 某种基础物理设备的所有权(智能资产),如域名一样的没有可替代性的资产(域 名币)以及如去中心化交易所,金融衍生品,点到点赌博和链上身份和信誉系统 等更高级的应用 另一个常被问询的重要领域是“智能合约”根据事先仁意制订的规则来自动转移 数字资产系统。例如,一个人可能有一个存储合约,形式为“A可以每天最多 提现个币,每天最多个,和一起可以随意提取,可以停掉的提 现权”。这种合约的符合逻辑的扩展就是去中心化自治组织()长期的包 含一·个组织的资产并把组织的规则编码的智能合约。以太坊的目标就是提供一个 带有内置的成熟的图灵完备语言的区块链,用这种语言可以创建合约来编码任意 状态转换功能,用户只要简单地用几行代码来实现逻辑,就能够创建以上提及的 所有系统以及许多我们还想象不到的的其它系统。 历史沿革 去中心化的数字货币概念,正如财产登记这样的替代应用一样,早在几十年以前 就被提出来了。和年代的匿名电子现金协议,大部分是以乔姆盲签 技术( )为基础的。这些电子现金协议提供具有高度隐私性 的货币,但是这些协议都没有流行起来,因为它们都依赖于一个中心化的中介机 构 年,戴伟( )的 首次引入了通过解决计算难题和去 中心化共识创造货币的思想,但是该建议并未给出如何实现去中心化共识的具休 方法 年,芬尼( )引入了“可重复使用的工作量证明机制 )概念,它同时使用 的思想和 提出的计算困难的哈希现金( )难题来创造密码学货币。但是,这种 概念再次迷失于理想化,因为它依赖于可信任的计算作为后端。 因为货币是一个先中请应用,交易的顺序至关重要,所以去中心化的货币需要找 到实现去中心化共识的方法。比特币以前的所有电子货币协议所遇到的主要障得 汇智网 Hubwiz. com 以太坊白皮书屮文版 是,尽管对如何创建安全的拜占庭问题容错( )多方共 识系统的研究已经历吋多年,但是上述协议只解决了问题的一半。这些协议假设 系统的所有参与者是己知的,并产生如“如果有方参与到系统中,那么系统可 以容忍的恶意参与者”这样形式的安全边界。然而这个假设的问题在于,在 匿名的情况下,系统设置的安全边界容易遭受女巫攻击,因为一个攻击者可以在 一台服务器或者僵丿网络上创建数以千计的节点,从而单方面确保拥有多数份额。 中本聪的创新是引入这样一个理念:将一个非常简单的基于节点的去中心化共识 协议与工作量证明机制结合在一起。节点通过工作量证明机制获得参与到系统的 权利,每十分钟将交易打包到“区块”中,从而创建岀不断增长的区块链。拥有人 量算力的节点有更大的影响力,但获得比整个网络更多的算力比创建一百万个节 点困难得多。尽管比特币区块链模型非常简陋,但是实践证明它已经足够好用了, 在未来五年,它将成为全世界两百个以上的货币和协议的基石 作为状态转换系统的比特币 State Transaction Spend: Sig: 14c5f8ba:07b53ab84:1 7b53ab841 304525bf6785 edcdrged0g0c 3ce67122892bb91f:0 3ce6f712:2 30464dd4 afsb 1c2e6510303 4ac59065:0 Create b75a980:0b75a980:1bb75a9802 从技术角度讲,比特币账本可以被认为是一个状态转换系统,该系统包括所有现 存的比特币所有权状态和“状态转换函数”。状态转换函数以当前状态和交易为输 入,输出新的状态。例如,在标准的银行系统中,状态就是一个资产负债表, 个从账户向账户转账美元的请求是一笔交易,状态转换函数将从账户 中诚去美元,向账户增加美元。如果账户的余额小于美元,状态转 换函数就会返回错误提示。所以我们可以如下定义状态转换函数: APPLY(S,TX)> or ErrOR 4/33 汇智网 Hu wiz. com 以太坊白皮书屮文版 在上面提到的银行系统中,状态转换函数如下 APPLY( Alice: $50, Bob: $50send $20 frcm Alice to Boo)= Alice: 30,Bb:与70 但是: APPLY( lice: $50, Bob: s50 ,send $70 frcm Lice to Bcb)- ERROR 比特币系统的“状态”是所有凵绎被挖出的、没有花费的比特币(技术上称为“未花 费的交易输出, 或UTXO”)的集合。每个 都有一个面值和所有者(由个字节的本质上是密码学公钥的地址所定义)。 笔交易包括一个或多个输入和一个或多个输出。每个输入包含一个对现有 的引用和由与所有者地址相对应的私钥创建的密码学签名。每个输出包含 个新的加入到状态中的 在比特币系统中,状态转换函数 >S’大体上可以如下定义: 交易的每个输入 如果引用的 不存在于现在的状态中(),返回错误提示 如果签名与 所有者的签名不一致,返回错误提示 如果所有的 输入面值总额小于所有的 输出面值总额,返回错误提 返回新状态S,新状态S'中移除了所有的输入 增加了所有的输出 第一步的第一部分防止交易的发送者花费不存在的比特币,第二部分防止交易的 发送者花费其他人的比特币。第二步确保价值守恒。比特币的支付协议如下。假 设想给发送 事实上, 不可能正好有 假设 她能得到的最小数额比特币的方式是 所以,她可以创建一笔有 个输入,个输出的交易。第一个翰出的面值是 ,所有者是( 的比特币地址),第二个输出的面值是 ,所有者是 自己,也就是 找零。 挖矿 5/33 汇智网 Hubwiz. com 以太坊白皮书屮文版 Block 5624 Block 5625 Time:135762214 Tme:135762858 Nonce:581512551 Nonce;653312362 Prevhash: ofc 4 Prevhash: 85cb1976c171 transactions≥ Transactions 如果我们拥有可信任的中心化服务机构,状态转换系统可以很容易地实现,可以 简单地将上述功能准确编码。然而,我们想把比特币系统建成为去中心化的货币 系统,为了确保每个人都同意交易的顺序,我们需要将状态转换系统与一个共识 系统结合起米。比特币的去中心化共识进程要求网络中的节点不断尝试将交易打 包成“区块”。网络被设计为大约每十分钟产生一个区块,每个区块包含一个时间 戳、一个随机数、一…个对上一个区块的引用(即哈希)和上一区块生成以来发生 的所有交易列表。这样随着吋间流逝就创建出了一个持续增长的区块链,它不断 地更新,从而能够代表比特币账本的最新状态。 依照这个范式,检查一个区块是否有效的算法如下 检查区块引用的上一个区块是否存在且有效。 检査区块的时间戳是否晚于以前的区块的时间戳,而且早于未来小时。 检查区块的工作量证明是否有效。 将上一个区块的最终状态赋于。 假设是区块的交易列表,包含笔交易。对于属于0.n的所有进行状 态转换 。如果仁何一笔交易在状态转换中出错,退 出程序,返回错误。 返回正确,状态是这一区块的最终状态 6/33 汇智网 Hubwiz. com 以太坊白皮书屮文版 木质上,区块中的每笔交易必须提供一个正确的状态转换,要注意的是,“状态” 并不是编码到区块的。它纯粹只是被校验节点记住的抽象概念,对于任意区块都 可以从创世状态开始,按顺序加上每一个区块的每一笔交易,(妥妥地)计算出 当前的状态。另外,需要注意矿工将交易收录进区块的顺序。如果一个区块中有 两笔交易,花费的是创建的 如果在以前,这个区块是有 效的,否则,这个区块是无效的。 区块验证算法的有趣部分是“工作量证明”概念:对每个区块进行 哈希处 理,将得到的哈希视为长度为比特的数值,该数值必须小于不断动态调整 的目标数值,本书写作时目标数值大约是工作量证明的目的是使区块的 创建变得困难,从而阻止女巫攻击者恶意重新生成区块链。因为 是完 全不可预测的伪随机函数,创建有效区块的唯一方法就是简单地不断试错,不断 地增加随机数的数值,査看新的哈希数值是否小于目标数值。如果当前的目标数 值是 ,就意味着平均需要尝试次才能生成有效的区块。一般而言, 比特币网络每隔个区块重新设定目标数值,保证平均每十分钟生成一个区 块。为了对矿工的计算工作进行奖励,每一个成功生成区块的矿工有权在区块中 包含一笔凭空发给他们自己 的交易。另外,如果交易的输入大于输出, 差额部分就作为“交易费用”付给矿工。顺便提一下,对矿工的奖励是比特币发行 的唯一机制,创世状态中并没有比特币。 为了更好地理解挖矿的目的,让我们分析比特币网络出现恶意攻击者时会发生什 么。因为比特币的密码学基础是非常安全的,所以攻击者会选择攻击没有被密码 学直接保护的部分:交易顺序。攻击者的策略非常简单: 向卖家发送 购买商品(尤其是无需邮寄的电子商品) 等待直至商品发出 创建另一笔交易,将相同的 发送给自己的账户 使比特币网络相信发送给自己账户的交易是最先发出的 一旦步骤()发生,几分钟后矿工将把这笔交易打包到区块,假设是第 个区块。大约一个小时以后,在此区块后面将会有五个区块,每个区块间接地指 向这笔交易,从而确认这笔交易。这时卖家收到货款,并向买家发货。因为我们 假设这是数字商品,攻击者可以即时收到货。现在,攻击者创建另一笔交易,将 相同的 发送到自己的账户。如果攻击者只是冋全网广播这一消息,这 笔交易不会被处理。矿工会运行状态转换函数 ,发现这笔交易 7/33 汇智网 Hubwiz. com 以太坊白皮书屮文版 将花费已经不在状态中的 。所以,攻击者会对区块链进行分叉,将第 个区块作为父区块重新生成第 个区块,在此区块中用新的交易 取代旧的交易。因为区块数据是不同的,这要求重新进行工作量证明。另外,因 为攻击者生成的新的第 个区块有不同的哈希,所以原来的第 第 的区块不指向它,因此原有的区块链和攻击者的新区块是完全分离的。 在发生区块链分叉时,区块链长的分支被认为是诚实的区块链,合法的的矿工将 会沿着原有的第 区块后挖矿,只有攻击者一人在新的第 块后 挖矿。攻击者为」使得他的区块链最长,他需要拥有比除」他以外的全网更多的 算力来追赶(即攻击)。 默克尔树 2f9c 2f90 48a5 d063 48a5 d063 1328 dBca 1328 dca ERRORa hash(94bc +a8b5) l= deca e 74b abs abc a8b5 d187 12c5 d187 4a2f Alice s Bob Alice.5 Eve 20 BTC 20 BTC h:仅提供克尔树( )上的少量节点已经足够给出分文的合法证明。 右:任向对天默克尔树的在间部分进行改交的尝试都会最终导致链上某处的不一 致 比特币系统的一个重要的可扩展特性是:它的区块存储在多层次的数据结构中。 个区块的哈希实际上只是区块头的哈希,区块头是包含时间戳、随机数、上个 区块哈希和存储了所有的区块交易的默克尔树的根哈希的长度人约为字节 的一段数据。 汇智网 Hubwiz. com 以太坊白皮书屮文版 默克尔树是一种二叉树,由一组叶节点、一组中间节点和一个根节点构成。最下 面的大量的叶节点包含基础数据,每个中间节点是它的两个子节点的哈希,根节 点也是由它的两个子节点的哈希,代表了默克尔树的顶部。默克尔树的目的是允 许区块的数据可以零散地传送:节点可以从一个源下载区块头,从另外的源下载 与其有关的树的其它部分,而依然能够确认所有的数据都是正确的。之所以如此 是因为哈希向上的扩散:如果一个恶意用户尝试在树的下部加入一个伪造的交易, 所引起的改动将导致树的上层节点的改动,以及更上层节点的改动,最终导致根 节点的改动以及区块哈希的改动,这样协议就会将其记录为一个完全不同的区块 (几乎可以肯定是带着不正确的工作量证明的) 默克尔树协议对比特币的长期持续性可以说是至关重要的。在年月,比 特币网络中的一个全节点存储和处理所有区块的全部数据的节点需要占用 的内存空间,而且还以每个月超过的速度增长。目前,这一存储空 间对台式计算机来说尚可接受,但是手机已经负载不了如此巨大的数据了。未来 只有商业机构和爱好者才会充当完整节点。简化支付确认(协议允许另 种节点存在,这样的节点被成为“轻节点”,它下载区块头,使用区块头确认工作 量证明,然后只下载与其交易相关的默克尔树“分攴"。这使得轻节点只要下载整 个区块链的一小部分,就可以安全地确定任何一笔比特币交易的状态和账户的当 前余额 其它的区块链应用 将区块链的思想应用到其它领域的想法早就岀现了。在年,尼克萨博提出 了“用所有权为财产冠名”的概念,文中描述了复制数据库技术的发展如何使基于 区块链的系统可以应用于登记土地所有权,创建包括例如房产权、违法侵占和乔 治亚州土地税等概念的详细框架。然而,不幸的是在那时还没有实用的复制数据 库系统,所以这个协议被没有被付诸实践。不过,自年比特币系统的去中 心化共识开发成功以来,许多区块链的其它应用开始快速出现。 域名币( )创建于年,被称为去中心化的名称注册数据库。像 和 这样的去中心化协议,需要些确认账户的方法, 这样其他人才能够与用户进行交互。但是,在所有的现存的解决方案中仅有的可 用的身份标识是象 这样的伪随机 哈希。理想的情况下,人们希望拥有一个带有象" george”这样的名称的账户。然 而,问题是如果有人可以创建" george"账户,那么其他人同样也可以创建" george 9/33 汇智网 Hubwiz. com 以太坊白皮书屮文版 账户来假扮。唯一的解决方法是先屮请原则( ),只有第一个注册者 可以成功注册,第二个不能再次注册同一个账户。这一问题就可以利用比特币的 共识协议。域名币是利用区块链实现名称注册系统的最早的、最成功的系统。 彩色币 )彩色币的目的是为人们在比特币区块链上创建自己的 数字货币,或者,在更重要的一般意义上的货币一数字令牌提供服务。依照彩 色币协议,人们可以通过为某一特别的比特币 指定颜色,发行新的货币。 该协议递归地将其它 定义为与交易输入 相同的颜色。这就允许用 户保持只包含某一特定颜色的 ,发送这些 就像发送普通的比特币 样,通过回溯全部的区块链判断收到的 颜色。 元币( )元币的理念是在比特币区块链上创建新的协议,利用比特 币的交易保存元币的交易,但是采用了不同的状态转换函数 APPLY。因为元币 协议不能阻止比特币区块链上的无效的元币交易,所以增加一个规则如果 APPLY(S,TX)返回错误,这一协议将默认 APPLY(S,TX)=S。这为创建任意的、 先进的不能在比特币系统中实现的密码学货币协议提供了一个简单的解决方法, 而且开发成本非常低,因为挖矿和网络的问题已经由比特币协议处理好了 因此,一般而言,建立共识协议有两种方法:建立一个独立的网终和在比特币网 络上建立协议。虽然像域名币这样的应用使用第一种方法已经荻得了成功,但是 该方法的实施非常困难,因为每一个应用需要创建独立的区块链和建立、测试所 有状态转换和网络代码。另外,我们预测去中心化共识技术的应用将会服从幂律 分布,大多数的应用太小不足以保证自由区块链的安全,我们还注意到大量的去 中心化应用,尤其是去中心化自治组织,需要进行应用之间的交互。 另一方面,基于比特币的方法存在缺点,它没有继承比特币可以进行简化确认支 付(的特性。比特币可以实现简化确认支付,因为比特币可以将区块链深 度作为有效性确认代理。在某一点上,一旦一笔交易的祖先们距离现在足够远时, 就可以认为它们是合法状态的一部分。与之相反,基于比特币区块链的元币协议 不能强迫区块链不包括不符合元币协议的交易。因此,安全的元币协议的简化支 付确认需要后向扫描所有的区块,直到区块链的初始点,以确认某一交易是否有 效。日前,所有基于比特币的元币协议的“轻”实施都依赖可信任的服务器提供数 据,这对主要日的之一是消除信任需要的密码学货币而言,只是一个相当次优的 结果。 脚本 10/33

...展开详情
试读 33P 以太坊白皮书中文版(完整版)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
神仙2002 资料很好,非常感谢
2020-08-24
回复
u011143714 不错,不错,我觉得比较全也比较完备。
2018-09-10
回复
MingMing2033 不错,不错,我觉得比较全也比较完备。
2018-08-01
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚积分or赚钱
最新推荐
以太坊白皮书中文版(完整版) 15积分/C币 立即下载
1/33
以太坊白皮书中文版(完整版)第1页
以太坊白皮书中文版(完整版)第2页
以太坊白皮书中文版(完整版)第3页
以太坊白皮书中文版(完整版)第4页
以太坊白皮书中文版(完整版)第5页
以太坊白皮书中文版(完整版)第6页
以太坊白皮书中文版(完整版)第7页

试读结束, 可继续读3页

15积分/C币 立即下载 >