微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

以太坊黄皮书中文版

2017-10-17 20:30 程序员之家

以太坊是可编程的区块链,使用 Solidity 编程语言可以编写在以太坊区块链上运行的程序,这使得我们程序员可以编写出寿命更长的程序。中心化运行的公司往往会关停自己的服务,如百度说吧、Google Reader、Msn Space,或者公司本身也会挂掉。目前以太坊是全球市值第二的区块链资产,最近火爆的 ICO 大部分是使用以太坊 ERC20 代币来募集数字资产。 

来自 https://coinmarketcap.com/#CNY  2017-09-19


以太坊黄皮书是关于以太坊技术的实现规范。猿哥和高天露一起根据以太坊黄皮书英文版(https://ethereum.github.io/yellowpaper/paper.pdf)翻译了中文版,部分翻译内容摘录如下:


摘要:区块链对交易数据加密以保证安全, 已经通过一系列项目展示了它的实用性, 尤其是比特币。每一个这个的项目都可以看 作是一个基于去中心化的单实例且拥有计算资源的应用。我们称这种模式为可以共享状态的单例状态机。


以太坊以更广义的方式实现了这种模式。它提供了大量的资源, 每一个资源都拥有独立的状态和操作码, 并且可以通过消息传递方 式和其它资源交互。我们讨论了它的设计、实现难题、它提供的机会以及以后可能有的一些问题。


1 简介

随着互联网连接了世界上绝大多数地方,全球信息共享 的成本越来越低。比特币网络通过共识机制、自愿遵守的社 会合约, 实现一个去中心化的价值转移系统且可以在全球范 围内自由使用, 这样的技术改革展示了它的巨大力量。这样 的系统可以说是加密安全、基于交易的状态机的一种具体 应用。后续类似这样的系统, 如域名币(Namecoin), 从最 原先的货币应用发展到了其它应用, 虽然它只是其中很简单 的一种应用。


以太坊是一个尝试达到通用性的技术项目, 可以构建任 何基于交易的状态机。而且以太坊致力于为开发者提供一 个紧凑的、整合的端到端系统, 这个系统提供了一种可信的 消息传递计算框架让开发者以一种前所未有的范式来构建 软件。


1.1 驱动因素

这个项目有很多目标,其中最重要的目标是 为了促成不信任对方的个体之间的交易。这些不信任可能 是因为地理位置分离、接口对接难度, 或者是不兼容、不称 职、不情愿、支出、不确定、不方便, 或现有法律系统的腐 败。于是我们想用一个丰富且清晰的语言去实现一个状态 变化的系统,期望协议可以自动被执行, 我们可以为此提供 一种实现方式。


这个提议系统中的交易, 有一些在现实世界中并不常见 的属性。审判廉洁,在现实世界往往很难找到,但对公正的 算法解释器是天然的; 透明,或者说通过交易日志和规则或 代码指令能够清晰的看到状态变化或者判决, 但是因为人类 语言的模糊性、信息的缺乏以及老的偏见难以撼动, 导致基 于人的系统中从来没有完美实现透明。


总的来说,我们希望能提供一个系统,能够保证用户无 论是和其他个体、系统还是组织交互, 都能对可能的结果及 产生结果的过程完全信任。


1.2 前人工作

Buterin [2013a] 在 2013 年 9 月下旬第一 次提出了这种系统的核心机制。虽然现在发展出了多种方 案, 但最关键的部分, 具备图灵完备语言且不受限制的内部 交易存贮容量的区块链, 仍未变化。


Dwork and Naor [1992] 提出了一种使用计算支出的密 码学证明方式 (proof-of-work, 工作量证明) 在互联网上传 递信号值。信号值用作阻挡垃圾邮件,而不是任何一种货 币, 但展示了一个基本的数据通道可以承载强大经济信号的 可能性, 允许接受者无需依赖信任而做出物理断言。Back [2002] 后来设计了一个类似的系统。


Vishnumurthy et al. [2003] 最早使用工作量证明作为强 大的经济信号保证货币安全。在这个案例中,代币用作检查 点对点(peer-to-peer,p2p)文件交易,同时保证“消费者” 能支付给为他们提供服务的“供应商”。这种通过工作量证 明的安全模型逐步扩展, 包括使用电子签名和账本技术, 以保证历史记录不被篡改, 怀有恶意的用户不能进行欺诈支付 或不公平的抱怨。五年后(2008 年),中本聪 Nakamoto [2008] 介绍了另一种更广泛的工作量证明安全价值代币。这 个项目的成果就是比特币, 比特币成为了第一个被全球广泛 认可的去中心化交易账本。


由于比特币的成功,竞争币 (alt-coins) 开始兴起, 通过 修改比特币的协议创建了大量的其它数字货币。比较知名的 有莱特币(Litecoin)和素数币(Primecoin), 参见 Sprankel [2013] 。一些项目使用比特币的核心机制并重新改造以应用 在其它领域, 例如域名币(Namecoin)致力于提供一个去中 心化的名字解析系统, 参见 Aron [2012] 。


其它在比特币网络之上构建的项目, 也是依赖巨大的系 统价值和巨大的算力来保证共识机制。万事达币(Master- coin)项目是在比特币协议之上, 通过一系列基于核心协议 的的辅助插件, 构建一个包含许多高级功能的富协议, 参见 Willett [2013]。彩色币(Coloured Coins, 参见 Rosenfeld [2012], 采用了类似的但更简化的协议, 以实现比特币基础 货币的可替代性, 并允许通过色度钱包(chroma-wallet)来 创建和跟踪代币。


其它一些工作通过放弃中心化来进行。瑞波币(Ripple) , 参见 Boutellier 和 Heinzen [2014], 试图去创建一个货币 兑换的联邦系统(“federated”system)和一个新的金融清 算系统。这个系统展示了放弃去中心化特性可以获得性能 上的提升。


Szabo [1997] 和 Miller [1997] 进行了智能合约(smart contract)的早期工作。大约在上世纪 90 年代,人们逐渐认识到协议算法的执行可以成为人类合作的重要力量。虽 然当时没有这样的系统, 但可以预见未来的法律将会受到这 种系统的影响。基于此, 以太坊或许可以成为这种密码学-法律系统的通用实现……


编辑 | 码哥

图片源于网络,版权归原作者所有

 
程序员之家 更多文章 Facebook 如何识别出性工作者? 只要程序员!杭州大妈冲进云栖大会为女儿征婚 要让iPhone在中国消失!高通亮狠招! 身边有个漂亮的女程序员是什么体验? 这个人钱多话少死得早,没错!
猜您喜欢 专访CrowdStrike: 从“超级大炮”看中国的网络作战和防御能力 Google 昨晚发布的这些 App,让我们提前看到未来 我们为什么选择了 Go 语言 几个不得不知道的Hadoop周边开源系统 How to Monitor Redis