美文网首页我爱编程
以太坊白皮书分析

以太坊白皮书分析

作者: 40岁重生 | 来源:发表于2018-06-21 19:34 被阅读46次

    以太坊区块链圈成是仅次于比特币的,其位置也是非常重要的 ,因为重要所以币精英的这周作业分析以太坊白皮书,技术性太强,文章晦涩难懂,奔着币精英“完成比完美重要”的理念,那就写吧,写完了也就明白了。

    项目简介

    以太坊是什么

    定义

    以太坊是一个全新开放的区块链平台,它允许任何人子在平台中建立和使用通过区块链技术运行的去中心化应用。就像比特币一样,以太坊不受任何人控制,也不归任何人所以——它是一个开放源代码项目,由全球范围的很多人共同创建。和比特币协议有所不同的是,以太坊的设计十分灵活,极具适应性。在以太坊平台上给你创立新的应用十分简便,随着homestead的发布,任何人都可以安全的i使用高该平台上的应用。

    网络

    以太坊是运行在一个计算机网络中的软件,他确保数据以及称为智能合约的小程序可以子没有中心协调者的情况下被所有网络中的计算机辅助和处理。以太坊的愿景是创建一个无法停止,抗屏蔽和自我维持的去中心化世界计算机。
    它延伸了比特币的区块链概念;在全球范围 多个计算机验证,储存,和复制交易数据。以太坊在这个概念上更近一步,使在全球范围的多个计算机上运行代码称为现实。
    比特币用来分不少储存数据的,以太坊用来分布式储存数据并且计算。这些小型的电脑运行程序叫做智能合约,合约有参与者在他们自己的机器上通过一种称为“以太坊虚拟机”的操作系统运行。

    以太坊从法律角度的理解

    以太坊是一种新的法律形式,现行法律的本质是 一种合约,它是人和他们的领导者之间所缔结 ,一种关于此该如何行动的共识。个体之间也存在着一些合约,这些合约可以理解为一种私法,相应的,这种私法金队合约的参与者生效。
    例如,你和一个人订立合约,借给他一笔钱,但是最后毁约了,不打算还这笔钱。此时你多半会将对方告上法庭。在现实生活中,打官司这种事情常常混乱不堪并且充满了不确定性。将对方告上法庭,也通常意味着你需要支付高昂的费用聘请律师,来帮你在法庭上针对法律条纹展开辩论,而且这一过程一般都旷日持久。而且即使你最终赢了官司,你依然可能会遇到问题。令人欣慰的是,当初你和借款人把条款写了下来,订立了合约。但法律的制定者和合约的起草者们都必须面对一个不容忽视的挑战:那就是,理想情况下,法律或者合约都是有语句构成的,而语句,则是出了名的充满歧义。
    因此,一直以来,现行的法律体系都存在着两个巨大的问题:首先,合约或法律是由充满歧义的语句定义的,第二,强制执行合约或法律的代价非常大。而以太坊,通过数字货币和编程语言的结合,解决了现行法律体系的这两大问题。
    以太坊系统自身带有一种叫做以太币的数字货币。以太币和著名的数字货币比特币有着非常多的相似之处,两者均为数字储值货币,且无法伪造,都以去中心化的方式运行来保证货币供应不被某一方所控制。两者口可以想电子邮件一样,作为货币自由地在全世界流通。而且由于他们可以做到传统货币做不到的事情,因此用户对他们未来的价值充满期待。

    以太坊设计哲学

    简洁原则 - 以太坊协议将尽可能简单,即便以某些数据存储和时间上的低效为代价。一个普通的程序员也能够完美地去实现 完整的开发说明。这将最终有助于降低任何特殊个人或精英团体可能对协议的影响并且推进以太坊作为对所有人开放的协议 的应用前景。添加复杂性的优化将不会被接受,除非它们提供了非常根本性的益处。
    简洁,就是以太坊协议将尽可能简单,即便以某些数据储存和世界上的低效为代价。一个普通的程序 员也能够完美地去实现完整的开发说明。这将最终有助于降低任何特殊个人或精英团体可能对协议的影响并且推进以太坊作为所有人开发的协议的应用前景。添加复杂性的优化将不会被接受,除非他们提供了非常根本性的益处。使得开发者能够创建任意的基于共识,可扩展的,标准化的,特性完备的,易于开发 和协同的应用。以太坊通过建立终极的抽象的基础层-内置有图灵完备编程语言的区块链-使得任何人都能够创建合约和去中心化应用并在其中设立他们自由定义的所有权规则,交易方式和状态转换函数。易于操作,使用的便捷性,增加了人的使用率,容易推广,是它 的一个设计理念。

    **通用原则 **– 没有“特性”是以太坊设计哲学中的一个根本性部分。取而代之的是,以太坊提供了一个内部的图灵完备的脚本 语言以供用户来构建任何可以精确定义的智能合约或交易类型。想发明你自己的金融衍生品?用以太坊,你可以。想创造你 自己的货币?把它做成一个以太坊合约就好。想建立一个全规模的守护程序(Daemon)或天网(Skynet)?你可能需要几 千个联锁合约并且确定慷慨地喂养它们,一切皆有可能。
    没有特殊性是以太坊设计哲学中的一个根本性部分,取而代之的 是,以太坊提供了一个内部的图灵完备的脚本语言以供用户来构建任何可以精确定义智能合约或交易类型。通用图灵完备,通俗讲,就是凡是人可以想象出来的计算任务,计算机都可以完成,具备这样的编程语言就是图灵完备的语言,

    **模块化原则 **– 以太坊的不同部分应被设计为尽可能模块化的和可分的。开发过程中,应该能够容易地让在协议某处做一个小 改动的同时应用层却可以不加改动地继续正常运行。类似“短剑”(Dagger), “帕特里夏树”(Patricia trees) and“递 归长度前缀编码“(RLP, recursive length prefix encoding,)等创新应该以独立的库的形式实施并且应该特性完整,以便 于让其它的协议同样使用,即便以太坊不需要其中的某些特性。以太坊开发应该最大程度地做好这些事情以助益于整个加密 货币生态系统,而不仅是自身。
    无歧视原则 – 协议不应主动地试图限制或阻碍特定的类目或用法,协议中的所有监管机制都应被设计为直接监管危害,不应 试图反对特定的不受欢迎的应用。你甚至可以在以太坊之上运行一个无限循环脚本,只要你愿意为其支付按计算步骤计算的 交易费用。
    以太坊是一个平台,它上面提供各种模块让用户来搭建应用,如果搭建应用必做造房子,那么以太坊就提供了墙面,屋顶,地板等模块,用户只需要像搭积木一样把房子搭起来,因此在以太坊上见应用等成本和速度都大大改善。

    以太坊基础块创建

    在内核中,以太坊的起点是一个相当规则的使用内存困难的工作量证明机制挖矿的不附带多少额外复杂度的加密货币,以太坊在许多 方面比我们今天使用的基于比特币的加密货币简单。由多个输入输出构成的交易概念被更直观的基于平衡账目的模型取代了。

    修改实施幽灵协议
    什么事幽灵协议?幽灵是一个协议,通过这个协议,区块可以包含不只是他们父块的散列值,也散列付款的父块的父块的其他子快的陈腐区块。这确保陈腐区块任然有助于区块链的安全性,并减轻大型矿工在快速区块链上的有优势的问题,因为他们能够立即得知自己的区块,因此不太可能产生陈腐区块。
    以太坊仅采用了幽灵协议的最基础部分,即废区块只能以叔区块的身份被它的兄弟区块的子区块,而不是更远关系的后辈区块,纳入 计算。这样做有几个原因。首先,无条件的幽灵协议将给计算给定区块的哪一个叔区块合法带来过多的复杂性。其次,带有以太坊所 使用的补偿的无条件的幽灵协议剥夺了矿工在主链而不是一个公开攻击者的链上挖矿的激励。最后,计算表明基础部分的幽灵协议已 经拥有了幽灵协议 80%以上的益处, 并且在区块生成时间 40 秒的情况下提供了和区块生成时间为 2.5 分钟的莱特币可相比较的废块 率。不过,我们将保守一点,依旧选择和质数币相当的 60 秒区块时间因为单个区块需要更长的时间确认。

    以太坊客户端 P2P 协议
    以太坊客户端 P2P 协议是一个相当标准的加密货币协议,并且能够容易地为其它加密货币使用;仅有的改动是引入了上述的“幽灵“协 议。以太坊客户端基本上是被动的;如果没有被触发,它自己做的仅有工作是调用网络守护进程维护连接及定期发送消息索要以当前 区块为父区块的区块。然而,该客户端同时会更强大;与只存储与块链相关的有限数据的 bitcoind 不同,以太坊客户端将同时扮演一 个功能完整的区块浏览器的后台的角色。

    货币及其发行
    以太坊网络包含其内建的货币,以太币,在网络内包含一种货币的原因是双重的。首先,以太币被奖励给矿工以促进网络安全。其次, 用它来支付交易费用是一种反欺诈机制。类似 Hashcash 的以交易为单位的工作量证明和放任自由是收取交易费的两个替代方案,前 者浪费资源并且对于低档计算机和智能手机是一种不公平的折磨,后者将会导致网络立刻被无限循环的“逻辑炸弹”合约淹没。以太 币有一个理论上的最大量 - 2128 单位 (比照比特币的 250.9 单位),虽然在可预见的将来不会有超过 2100 被发行。为方便和避免将来 的争论(参见现在关于 mBTC/uBTC/聪的争论),这里提前为一些数额设定单位:

    数据格式
    以太坊中的所有数据都以“递归长度前缀编码(recursive length prefix encoding,RLP)”形式存储, 这种编码格式将任意长度和维 度的字符串构成的数组串接成字符串。

    挖矿算法
    挖矿算法的一个令人高度向往的特性是对专业化硬件优势的抵抗力。最初,通过允许每一个人用 CPU 参与挖矿过程,比特币被设想为 高度民主的货币。

    交易

    交易合法的条件: (i)签名具有合法格式 (即 27 <= v <= 30, 0 <= r < P, 0 <= s < N), 以及 (ii) 发送地址具有足 够的资金支付交易金额和交易费用。 一个区块不能够包含一个非法的交易;如果一个合约产生了一个非法交易则该交易将直接无效。 交易费用将被自动包含。如果一个用户自愿支付更高费用,他总可以通过构建一个合约来自动地发送一定数量或一定比例的金额给现 区块的矿工同时加速交易确认。

    区块奖励
    个矿工接受三种奖励:静态的产生区块的奖励,交易费用,以及上面幽灵协议部分描述过的叔区块/侄区块奖励。
    难度调整

    合约

    以太坊里,有两种实体可以发起和接收交易:真实的人(或者软件机器人,因为密码协议是不能区分这两者的)与合约。合约事实 上可以看成是活在以太坊网络上的自动化代理人,它有以太坊的地址以及账户金额,可以发送和接收交易。每当有人向合约发送交易 后,它就被激活了,然后就开始运行它自己的程序,例如改变它自己的内部状态或者甚至放送一些交易,完成后它又休息了。

    子货币
    子货币有很多的应用,例如他们可以用来代表美元或黄金、公司的股票,甚至可以有总数只有一个单位的子货币,它们可以用来代表 抵押物或智能资产。一些基于以太坊的具有特殊目的的高级金融协议,可能也会想要拥有内部货币来作为组织形式。 这些子货币在以 太坊里实现起来比你想象中要容易,接下去我们会用一个很简单的合约来举例说明。

    总结

    从很多方面看,以太坊协议的设计哲学跟现阶段其它密码货币恰好相反,它们致力于增加复杂性并加入各种各样的“特性”,而以太
    坊却是将特性剥离。此协议不“支持”多重签名交易、多重输入和输出、哈稀代码、锁定时间、以及另外一些就连比特币都支持的特
    性,相反,它的全部复杂性都来自于一门通用的图灵完备的脚本语言,这语言可以通过合约机制来建立几乎任何可以以数学方式表述

    相关文章

      网友评论

        本文标题:以太坊白皮书分析

        本文链接:https://www.haomeiwen.com/subject/dwvcyftx.html