主页 > 苹果手机imtoken怎么下载 > 第二! 他位居中本聪和V神之间,单靠文字“打败”程序员!

第二! 他位居中本聪和V神之间,单靠文字“打败”程序员!

苹果手机imtoken怎么下载 2023-08-24 05:12:21

第二! 他排中本聪与V神中间, 单靠文字就“打败”了敲代码的程序员!

安德烈亚斯·安东诺普洛斯是谁?

他可能不是一个很好的区块链开发者,他对区块链的贡献也不在技术层面,但他确实是一个知名的区块链技术布道者。

在去年 9 月 Strictly Crypto 网站发表的一篇题​​为《The Most Influential Names In Crypto 2018》的文章中,他在中本聪和 V 神之间排名第二。

有多少人是因为他的影响才开始了解区块链和比特币的? 这个庞大的数字我们不得而知,但我们可以看一些官方的数字,是可以统计的。

他还是一位产出牛牛的多产作者,着有《精通比特币》、《精通以太坊》、《精通区块链编程》等15本区块链相关书籍。

且不说排名是否属实,从一定程度上也反映了他在区块链领域的努力确实得到了认可。 他有理解复杂技术的细微差别并以非常简单易懂的术语解释它们的天赋。

为什么 Andreas 写的技术书籍如此受欢迎? 看完《精通以太坊》,你就会知道答案,说不定你会重新认识以太坊。

以太坊通常被称为“世界计算机”。 但这到底是什么意思呢? 让我们首先尝试从计算机科学的角度来描述它,然后通过与比特币和其他去中心化信息交换平台(也称为区块链)技术和属性的比较,从更务实的角度分析以太坊的能力。

从计算机科学的角度来看,以太坊是一个几乎没有边界的确定性状态机。 它有两个特点:它具有全局可访问的单体状态; 它有一个执行状态更改的虚拟机。

在更实际的层面上,以太坊是一个开源的、全球去中心化的计算基础设施,可以执行称为智能合约的程序。 它使用区块链来同步和保存系统状态,使用以太币这种数字货币来衡量和控制程序执行的资源开销。

以太坊平台使开发人员能够构建具有内置经济性的强大去中心化应用程序。 在提供高可用性、可审计性、透明度和中立性等特性的同时,它减少或消除了审查制度、第三方参与和交易对手风险。

以太坊和比特币的比较

很多人在接触以太坊之前就已经对数字货币有了一定的了解,比如比特币。 以太坊与其他公共区块链有很多共同点:连接参与方的点对点网络、用于同步状态的拜占庭容错共识算法(工作量证明)、使用数字签名和哈希等密码学,一种数字货币(以太币)。

然而,在许多方面,以太坊的目的和结构与之前的开放区块链(包括比特币)有很大不同。

以太坊的主要目的不是成为数字货币的支付网络。 虽然以太坊本身是以太坊的形成和运作不可或缺的一部分,但以太坊的主要目的是作为一种实用货币来支付使用以太坊(“世界计算机”)的费用。

与脚本语言非常有限的比特币不同,以太坊被设计为通用可编程区块链,其虚拟机能够执行任意和无限复杂的代码。 比特币的脚本语言有意限制为简单支付条件的真假判断,而以太坊的语言是图灵完备的,这意味着以太坊可以直接用作通用计算机。

区块链的组成部分

公共公共区块链通常由以下组件组成:

这些组件基本上包含在单个客户端软件中。 例如,在比特币中,Bitcoin Core 开源项目开发了一个名为 bitcoind 的比特币客户端参考实现。 与参考实现相比,以太坊有一个参考标准——从数学上描述整个系统的黄皮书(详见下文“延伸阅读”部分)。 许多现有的以太坊客户端都是根据黄皮书中的参考标准实现的。

过去,我们用区块链来表示上述所有的组成部分,这是对实现上述特性的技术的概括描述。 如今,市场上存在着大量不同属性的区块链项目。 我们需要一些修饰符来帮助我们理解区块链的特性,比如开放的、公共的、全球的、去中心化的、中立的和抗审查的,以识别和理解这些区块链组件背后出现的重要特性。

精通以太坊代码_以太坊英文代码_以太坊go代码

并非所有的区块链都是平等的。 当有人向您展示区块链时,您应该能够通过提问来阐明该区块链背后的含义。 你应该问清楚这条区块链对应的上述各个组成部分的描述,这条区块链是否具有公开、公开等特征。

以太坊的诞生

所有伟大的创新都是为了解决特定问题而设计的,以太坊也不例外。 当时,人们已经意识到比特币背后系统的能力,并试图以数字货币技术为基础,将其推广到更广泛的应用领域。 但开发人员面临一个难题:他们要么需要在比特币的大厦上进行构建,要么需要从头开始实施新的区块链。 建立在比特币之上意味着接受比特币网络的局限性并努力寻找解决方案。

比特币对数据存储的类型和大小有特定的要求,这限制了可以作为第二层解决方案在比特币之上运行的应用程序类型。 程序员构建的应用程序只能构建在这些有限的变量、交易类型和数据之上,无法利用公链的诸多优势。 对于需要更多自由度和更复杂的应用程序,从头开始实施新的区块链是唯一的选择。 但从头开始实施新的区块链也意味着在基础设施、测试等方面从头开始。

2013 年底,一位年轻的程序员和比特币爱好者 Vitalik Buterin 开始思考未来如何扩展比特币和 Mastercoin(一种基于比特币的协议,提供初步的智能合约)。 2013 年 10 月,Vitalik 向 Mastercoin 团队提出了一个更通用的想法——一种更灵活和可编写脚本(但尚未图灵完备)的合约机制,可用于替代 Mastercoin 特定的合约语言。 虽然 Mastercoin 团队很感兴趣,但该提议过于激进,不符合团队目前的发展计划。

2013 年 12 月,Vitalik 分享了一份白皮书,概述了以太坊背后的理念:一个图灵完备的通用区块链。 几个人阅读了白皮书并将反馈反馈给 Vitalik,帮助他逐步完善这个想法。

本文的两位作者都收到了 Vitalik 的白皮书并提供了反馈。 Andreas M. Antonopoulos 对这个想法很着迷,并向 Vitalik 提出了很多问题,包括使用独立的区块链来实现智能合约执行的共识规则,以及图灵完备编程语言背后的意义等。 Andreas 继续以极大的兴趣关注以太坊的发展,但由于忙于撰写《精通比特币》一书,此后并没有直接参与该项目。 Gavin Wood 博士是第一个接触 Vitalik 并在 C++ 编程领域提供帮助的人。 加文成为以太坊的联合创始人、联合设计师和以太坊基金会的首席技术官。

Vitalik 在《以太坊史前记忆》一文中写道:

“当时以太坊协议只是我的心血结晶。 但从那以后,又有新的玩家加入,其中以 Gavin Wood 在协议层的贡献最为显着。

有人将以太坊视为一个可编程的数字货币平台,基于区块链合约,按照事先约定的规则持有和转移数字资产。 为了改变这种看法,加文起了不小的作用。 他让人们相信以太坊将是一个通用的计算平台。 这源于焦点和术语的一些微妙变化,这些变化后来随着“Web 3”概念的确立而变得更具影响力。 Web 3 将以太坊视为去中心化技术的一部分,去中心化技术的另外两个重要组成部分是 Whisper 和 Swarm。 “

从 2013 年 12 月开始,Vitalik 和 Gavin 重新定义和打磨了这些想法,共同构建了以太坊未来的协议层。

以太坊的创始人都认为,区块链不应该针对特定的目的,而是通过实现可编程性来支持更广泛的应用类型。 这个想法是,使用像以太坊这样的通用区块链技术,开发人员可以开发自己的应用程序,而无需构建对等网络、区块链、共识算法等基础设施。以太坊平台的目的是抽象这些细节,并为分散式区块链应用程序提供确定性、安全的编程环境。

与中本聪类似,Vitalik 和 Gavin 并没有发明一项新技术,而是将一些新的想法和发明以一些新颖的方式与现有技术相结合。 然后,他们向世界展示了这些想法的原型实现。

以太坊的创始人花了数年时间来构建和完善这一愿景。 2015 年 7 月 30 日,第一个以太坊区块被成功开采。 “世界计算机”开始为全世界提供服务。

2017年9月,Vitalik Buterin写了一篇名为《以太坊史前记忆》的文章,以第一人称描述了以太坊早期发展的精彩历史。

你可以在这里读这篇文章:

.

以太坊的四个发展阶段

以太坊的发展计划分为四个不同的阶段,每个阶段都会有重大变化。 阶段以“硬分叉”形式发布,这意味着在此版本中所做的更改将不会向后兼容以前的版本。

以太坊go代码_精通以太坊代码_以太坊英文代码

四个主要的开发阶段代号为 Frontier、Homestead、Metropolis 和 Serenity。 到目前为止已经发生(或计划)的临时硬分叉代号为冰河时代、DAO、Tangerine Whistle、Spurious Dragon、拜占庭和君士坦丁堡。 开发阶段和临时硬分叉都显示在以下时间表中,按区块高度编号日期:

区块高度:0

Frontier:以太坊的初始阶段,从2015年7月30日持续到2016年3月。

区块高度:200000

冰河时代:引入难度呈指数级增长的硬分叉,以激励准备就绪后向权益证明 (PoS) 过渡。

区块高度:1150000

Homestead:以太坊的第 2 阶段,于 2016 年 3 月发布。

区块高度:1192000

The DAO:一个硬分叉来补偿被黑客攻击的 DAO 合约的受害者,并导致“Ethereum”和“Ethereum Classic”分裂成两个相互竞争的系统。

区块高度:2463000

Tangerine Whistle:一个硬分叉,用于更改某些 I/O 密集型操作的气体计算,并消除可以利用这些操作的低气体成本的拒绝服务 (DoS) 攻击。

区块高度:2675000

Spurious Dragon:解决更多 DoS 攻击向量的硬分叉,以及另一个状态清理。 它还提供针对重放攻击的保护。

区块高度:4370000

Metropolis Byzantium:这是以太坊的第三阶段,于 2017 年 10 月启动。拜占庭是 Metropolis 计划的两个硬分叉中的第一个。

在拜占庭分叉之后,还有另一个硬分叉计划用于大都会阶段:君士坦丁堡。 大都会阶段之后将是以太坊部署的最后阶段,代号为 Serenity。

以太坊:通用区块链

原始区块链,即比特币背后的区块链,用于追踪比特币及其所有权状态。 您可以将比特币视为分布式共识状态机,其中交易会导致全局状态转换,从而改变比特币的所有权。 状态转换受共识规则约束,允许所有各方(最终)在开采多个区块后就系统状态达成一致。

以太坊也是一个分布式状态机。 但以太坊不是跟踪数字货币所有权的状态,而是跟踪通用数据存储中的状态转换。 通用目的是指任何可以表示为键值元组的数据。 基于键值的数据存储可以存储任意复杂的内容,由某个键引用。 例如,持有这篇文章的信息可以通过文章名称来引用。

精通以太坊代码_以太坊go代码_以太坊英文代码

一些通用计算机中的 RAM 数据存储模型采用相同的方式建模。 以太坊有一个保存代码和数据的内存,并使用区块链来跟踪该内存随时间的变化。 与通用存储程序计算机一样,以太坊可以将代码加载到状态机中,运行该代码,并将状态转换的结果存储在区块链上。

与通用计算机相比,以太坊有两个主要区别:状态转换由共识规则控制,状态全局分布在共享账本上。 如果有可能创建一个基于共识规则的全球计算机,该计算机可以跟踪任何复杂的状态变化并对状态机进行编程怎么办? 以太坊给出了这个问题的答案。

以太坊的组成部分

以太坊中对应的组件如下:

点对点 (P2P) 网络

以太坊运行在以太坊主网上,这是一个通过 TCP 端口 30303 寻址的网络,运行在网络层的协议称为 Vp2p。

共识规则

以太坊的共识规则由以太坊黄皮书的参考标准精确定义。

贸易

以太坊交易是一种网络消息,主要包括交易的发送者、接收者、价值和数据负载。

状态机

以太坊中的状态转换由以太坊虚拟机 (EVM) 处理,这是一种基于堆栈的虚拟机,可执行字节码(字节码指令)。 称为“智能合约”的 EVM 程序是用高级语言(如 Solidity)编写的,并编译成由 EVM 执行的字节码。

数据结构

以太坊的区块链作为数据库存储在每个节点上(通常使用谷歌的LevelDB)。 区块链包含交易和系统状态,哈希数据存储在 Merkle Patricia Tree 数据结构中。

共识算法

以太坊使用比特币的共识模型,即 Nakamoto Consensus,它使用连续的单一签名块,使用 PoW 加权重要性来确定最长的链,从而确定当前状态。 但是,有计划在不久的将来转向代号为 Casper 的 PoS 加权投票系统。

经济安全

以太坊目前使用一种称为 Ethash 的工作量证明算法,该算法迟早会被放弃并转而使用 PoS。

客户

以太坊go代码_精通以太坊代码_以太坊英文代码

以太坊有多个可以相互交互的客户端软件实现,其中使用最广泛的是 Go-Ethereum (Geth) 和 Parity。

以太坊和图灵完备性

只要阅读任何与以太坊相关的材料,您就会立即听到“图灵完备”一词。 大家都说以太坊不像比特币精通以太坊代码,是一个图灵完备的系统。 这到底是什么意思?

“图灵完备”一词来自被誉为计算机科学之父的英国数学家艾伦·图灵。 1936 年,图灵创建了一个计算机数学模型,其中包含一个状态机,该状态机可以操作符号,从连续存储器(例如无限长度的磁带)中读取和写入这些数据。

在这个构想下,图灵进一步探索了普适可计算性问题的数学基础,即证明任何问题是否可解(图灵的研究试图给出否定的答案)。 图灵证明有一类问题是不可解的,尤其是著名的停机问题(即给定任意程序和输入,试图证明程序最终是否会停止运行)是不可解的。

艾伦·图灵随后定义了一个称为图灵完备的系统,可以用来模拟所有的图灵机。 这样的系统被称为通用图灵机。

以太坊执行存储在区块链上的程序的能力是通过称为 EVM 的状态机实现的。 能够从存储中读写数据,使得这个状态机成为一个图灵完备的系统,即满足通用图灵机的定义。 给定无限内存,以太坊可以计算图灵机可以计算的任何算法。

以太坊的突破性创新在于,它将存储程序计算机这样的通用计算架构与去中心化的区块链相结合,从而创建了分布式单片状态计算机。 无论以太坊程序运行在什么地方,都能产生一致的共识状态,通过共识规则保证安全。

图灵完备性作为“特征”

当你在以太坊中听到图灵完备的概念时,你可能首先想到它是对那些“图灵不完备”系统的补充功能。 事实上,恰恰相反。 实现一个“图灵不完备”的系统是一件需要付出足够努力的事情。 即使是最简单的状态机也是图灵完备的。 事实上,已知最简单的图灵完备状态机只需要4个状态,使用6种符号,状态定义也只有22个指令长度。 有时,系统被发现“恰好是图灵完备的”。

由于我们前面提到的停机问题,图灵完备性在公共区块链这样的开放访问系统中是非常危险的。 例如,现代打印机是图灵完备的,如果你向打印机发送一个特殊格式的文件,就会导致打印机进入死循环,永远运行下去。 以太坊是图灵完备的事实意味着任何复杂的程序都可以由以太坊计算。 但这种灵活性带来了一些棘手的安全和资源管理问题。 陷入无限循环的打印机可以关闭再打开,但这在公共区块链中是不可能的。

图灵完整性的含义

图灵指出,人们无法通过在计算机上模拟来判断程序的执行是否会终止。 简单地说,在程序真正运行之前,人们是无法预测程序的执行路径的。 图灵完备系统可以在无限循环中运行,这是描述永不终止的程序的一种极简主义方式。 创建一个始终循环不退出的程序并不难。 但是由于程序的起始条件和代码之间复杂的相互作用,那些无意中陷入的无限循环可能会突然出现。

在以太坊中,这意味着一个挑战:参与以太坊的每个节点(客户端)都必须验证每笔交易并运行交易调用的任何智能合约。 但是根据图灵的理论,在真正运行合约之前,以太坊实际上无法提前判断一个合约是否会终止或者需要运行多长时间。 也许合约会陷入死循环,一直运行下去。 无论是程序中的错误还是故意的,智能合约都可以在节点尝试验证它时永远执行,从而造成 DDoS 攻击。

与普通智能合约几毫秒即可完成验证和执行相比,这种永远运行的恶意合约会造成资源浪费、内存消耗、CPU过载等,是节点资源的浪费。 对于世界计算机来说,一个滥用资源的程序可能会扩散到所有节点,这是对“全球”资源的浪费。 如果无法提前预测,以太坊如何防止智能合约过度使用资源?

为了应对这一挑战,以太坊引入了一种称为气体的计量机制。 EVM 在执行智能合约时,会仔细计算每条执行指令(计算量、数据访问量等)。 每条指令都有预定义的 gas 成本。 当以太坊交易触发智能合约的执行时,该交易必须包含智能合约执行所需的计算资源开销的上限。 如果执行过程中的资源开销量超过了交易中规定的gas limit上限,EVM会主动终止合约的执行。 以太坊在保证图灵完备计算的同时,利用gas机制限制程序可以使用的资源量。

下一个问题是,如何获得 gas 来支付以太坊世界计算机的计算费用? 你不会在任何交易所找到天然气。 它只能作为交易的一部分购买,并且只能使用以太币购买。 交易需要发送以太币,并且需要清楚地标记气体,以及可接受的气体价格。 就像在加油站一样,汽油的价格不是固定的。 为交易购买气体,执行计算,并将任何未使用的气体返回给交易发送方。

从通用区块链到 DApp

以太坊为通用区块链用于构建各种应用程序开辟了道路。 很快,以太坊的愿景扩展为分散式应用程序 (DApps) 的编程平台。 DApps 代表了更广泛的“智能合约”类别。 一个 DApp 只需要包含一个智能合约和一个 Web 用户界面。 更广泛地说,DApp 是一种建立在开放、去中心化、点对点基础设施之上的网络应用程序。

精通以太坊代码_以太坊英文代码_以太坊go代码

DApp 至少包含:

此外,许多 DApp 还包含其他去中心化组件,例如:

第三次互联网浪潮

从 2004 年开始,“Web 2.0”的概念开始受到关注,它描述了 Web 向用户生成内容、响应式界面和交互性的革命。 Web 2.0 不是一个技术标准,而更像是一个描述Web 应用程序新特性的术语。

DApps 的概念正在引领万维网走向下一次革命,在每个 Web 应用程序中引入点对点协议的去中心化的力量。 人们用 web3 这个词来描述这场革命,意思是 Web 的第三个“版本”。 web3 一词最早由 Gavin Wood 博士提出,它代表了 Web 应用的新愿景和重点:从集中统一的管理应用到构建在去中心化协议上的应用。

在接下来的章节中我们将介绍以太坊的 web3.js JavaScript 库,它在浏览器中运行的 JavaScript 程序和以太坊区块链之间架起了一座桥梁。 web3.js 库还支持称为 Swarm 的 P2P 存储网络和称为 Whisper 的 P2P 消息服务。 使用支持这三种服务组件的 JavaScript 库,开发者可以在浏览器中构建完整的应用程序开发包,用于开发 web3 DApp。

以太坊的发展文化

到目前为止,我们已经讨论了以太坊的目标以及它在技术层面上与以前的区块链实现(例如比特币)有何不同。 以太坊也有非常不同的开发文化。

在比特币的世界里,开发遵循一个相对保守的原则:所有的更改都必须经过严格检查,以确保它们不会在现有系统之上造成问题。 在大多数情况下,只允许那些向后兼容的修改。 现有客户端可以选择与新版本系统保持一致,也可以选择不更新继续运行。

相比之下,在以太坊的世界里,发展文化更着眼于未来精通以太坊代码,对应的口号是:move fast and break things。 如果需要更改,请实施它,即使这意味着打破以前的假设、破坏兼容性或导致客户端被迫更新。 以太坊开发文化的特点是快速创新、快速变化以及愿意进行前瞻性试验,甚至不惜牺牲向后兼容性。

对于开发人员而言,这意味着您需要保持一定程度的灵活性,并准备好在底层假设发生变化时重建基础设施。 以太坊开发人员面临的最大挑战是将他们的代码部署到一个不可变的系统或一个不断增长和发展的平台之间的内在张力。 简单地“升级”智能合约是不够的。 您必须准备好重新部署和迁移用户、应用程序和资金,并重新开始。

有趣的是,这也意味着构建一个更自主、更少依赖中央控制的系统的目标很难实现。 自治和去中心化要求像以太坊这样的平台在未来几年具有更好的稳定性。 为了适应平台的不断“进化”,开发者必须随时重塑他们的智能合约,这也意味着他们仍然必须对时间保持一定程度的控制。

然而,从乐观的角度来看,以太坊正在快速发展。 “自行车棚”效应的可能性很小:这意味着争论细节,例如如何在核电站后面建造自行车棚。 如果你开始像这样争论细节,你可能会突然发现开发团队的其他成员改变了他们的计划,他们放弃了“自行车”,转而致力于“自主气垫船”。

最终,以太坊平台的发展演化会放缓,其接口会变得相对固定。 但与此同时,创新是核心驱动力。 你最好跟上步伐,因为没有人会停下来等你。

为什么要学习以太坊?

区块链的学习曲线非常陡峭,因为该领域汇集了许多不同种类的知识:编程、信息安全、密码学、经济学、分布式系统、点对点网络等等。 以太坊让这条学习曲线不那么陡峭,你可以很快上手。 但在这个看似简单的环境下,却蕴含着很多。 当您开始深入学习和思考时,总会发现更深层次的复杂性和奇迹。

以太坊是我们了解区块链的绝佳平台。 以太坊建立在庞大的开发者社区之上,并且比其他区块链平台更快。 与其他区块链实现相比,以太坊更像是一个开发者区块链,由开发者构建,为开发者服务。

熟悉 JavaScript 应用程序的开发人员可以快速掌握以太坊并开发出可用的代码。 在以太坊早期,很多宣传T恤上都印着“只需要五行代码就可以创建一个以太坊代币”等标语。 当然,这也是一把双刃剑。 编写代码相对容易,但编写良好且安全的代码要困难得多。

加入鸵鸟社区交流,微信号:tuoniao02

来源:区块链营地(blockchain_camp)

安德烈亚斯·安东诺普洛斯 (Andreas Antonopoulos)、加文·伍德 (Gavin Wood)