首页 / Web3 / 书名:初学者也能看懂的Web3技术入门指南

书名:初学者也能看懂的Web3技术入门指南

标题:小白也能懂的Web3技术入门指南

本文来自微信公众号:元天空城(ID:gh_a702b8d21cdf),作者:城主,原标题:《以最简明的方式创造新世界:关于以太坊,非技术的你值得了解的所有技术细节》,题图来自:视觉中国

我想写这样一篇文章很久了。这是一篇为非技术专业的学生写的技术文章。但本文试图比大多数科普文章更深入:我们讨论以太坊的技术本质,希望能让具有一般计算机使用水平的同学对以太坊的技术框架有一个初步清晰的概念。

如果读者不只是想了解一些时髦的Web3词汇作为聊天的资本,而是准备投身拥抱Web3,那么对以太坊底层原理有更本质的了解绝对不是坏事,不管他的工作是否是技术领域。

当笔者开始深入钻研Web3和以太坊时,作为一个有技术出身的人,也深深感受到了这个世界很多基本概念的新鲜感。

当然,我也认识了一些学到很多东西的朋友,比如团队帅气的产品经理。从零开始到成为Web3区块链专家,没有任何障碍。他不仅擅长产品设计,而且还能走在最前沿。技术部负责解决技术难点。

但这样的人太少了。对于大多数人来说,笔者认为Web3的入门学习曲线可能比较陡峭。很多人可能还处于知其然不知其所以然的阶段。

因此,我萌生了这个想法,为所有需要真正了解Web3区块链的非技术背景的朋友写一篇文章,将值得非技术背景的朋友了解的技术知识点以他们能够了解的方式放在一起。理解。说出来。写出这样的技术内容,并希望写得简单易懂又不枯燥,确实是一个很大的挑战。但如果确实能帮助那些非技术的朋友更深入地了解以太坊,那么本文的目的就达到了。

以太坊是一台计算机什么是以太坊?

当然,关于以太坊的文章已经有很多了。如果读者对此有一定的了解,应该知道以太坊是第二代区块链网络(与第一代比特币网络不同),以太坊的通用货币称为以太坊。基于智能合约的分布式应用程序(dapp)可以在以太坊上运行。

我们先来看看百度百科上关于以太坊的词条:以太坊(英文Ethereum)是一个具有智能合约功能的开源公链平台,通过其专用的加密货币以太坊(“ETH”)提供。集中式以太坊虚拟机处理点对点合约。

这个解释没有问题。大家也知道以太坊是一个公共区块链平台。

但如果你从技术角度更深入地了解以太坊,以太坊的本质可能会让读者感到惊讶:以太坊本质上是一台全球通用计算机。而且基于其全球分布的性质,它无疑是全球性的。

为什么说以太坊是一台计算机?

以太坊的创建者从一开始就希望构建用于通用计算目的的以太坊网络。这是一个非常美好的想法:利用分布式网络构建一个全世界人民都可以参与的通用计算系统。注意,与当前主流互联网系统不同,以太坊分布式网络是一个统一的单一整体。在计算机科学中,我们说以太坊作为一个整体是一个图灵完备的状态机。

“图灵完备”这个词太迂腐了,读者只需要理解它代表了执行通用计算的能力。这与以太坊和第一代比特币网络完全不同:比特币网络没有通用计算能力。

另外,什么是所谓的“状态机”呢?

用个人计算机来类比可以更好地理解这一点:当计算机运行时,CPU从内存中加载指令和数据来执行计算。计算完成后,将中间计算结果保存在内存中(更新“状态”),然后进行下一步加载并计算。像这样需要保存状态的逻辑机就是状态机。

虽然上面的解释是对计算机如何运行的非常简化的描述,但是当前的计算机系统本质上是一个“计算-保存状态-重新计算”的所谓图灵完备状态机。

至于以太坊,说它是一台通用计算机,这意味着以太坊整体也是一个“计算-保存状态-重新计算”的逻辑机器。

只是与个人电脑将状态保存在机器内存中(然后记录在硬盘上)不同,以太坊的“状态”记录在分布于全球的数万个节点上。

以太坊的突破性创新在于,它将存储程序计算机等通用计算架构与去中心化区块链相结合,从而创建了分布式、单状态世界计算机。

以太坊程序无论运行在哪里,都可以产生一致的状态,并通过共识规则保证数据的准确性和安全性。

以太坊的数据记录方式在每个节点上保存相同的信息。

也就是说,任何一个以太坊节点都记录了以太坊网络的所有信息。特别形象地说,这样的节点称为“全节点”。这意味着以太坊网络的所有状态信息在每个节点上都是完全同步的。

只要不是所有全节点同时被摧毁,以太坊就可以重生。这是多么强大的生命力啊。

一个全节点需要多大才能保存整个以太坊网络的信息?这个数量比读者想象的要小得多:今天,所有以太坊区块信息的总大小为345GB。与当今个人电脑中数TB的硬盘容量相比,这个容量确实很小。

以太坊的总信息容量每天都在增加,但是速度并不是特别快,因为在以太坊网络上记录信息需要支付非常高的费用。这也是以太坊的一个重要特点:所有的计算操作和数据记录都需要真金白银。

如前所述,“图灵完备性”一词描述了以太坊系统的通用计算属性。以太坊可以运行用户定义的通用代码,即所谓的智能合约。这是以太坊区别于第一代比特币网络的根本创新。

由于智能合约的支持,以太坊可以完成个人电脑可以完成的一般计算任务。从计算机科学理论的角度来看,以太坊是一台通用计算机,即“计算-记录状态-重新计算”的状态机。

既然以太坊被称为“状态机”,那么我们不妨继续问两个问题:以太坊的状态什么时候更新?以太坊是否像《终结者》 中的天网一样自动运行?

答案可能再次让读者大吃一惊。以太坊虽然是一台世界计算机,全节点遍布全球,但其运行机制是完全非并行的。以太坊是一个单线程系统。换句话说,以太坊计算机首先完成一个任务的计算,然后将计算结果的“状态”更新到全球所有节点,然后才能继续下一个任务。

以太坊用户可以并发提交交易申请(Concurrency),但以太坊不是并行处理(Parallelism)。所有交易都试图改变整个全局状态,而以太坊选择一一处理交易。

读者可能听说过以太坊网络日益严重的拥塞和排队问题,现在你可以明白:这是以太坊单线程任务处理机制的错。在以太坊上执行的任务只能按顺序排队。如果使用的人太多那就奇怪了。

如何解决以太坊的拥塞问题是当前区块链技术研究的热点话题。例如,您可能听说过Layer2/侧链等新词。主要目的是避免以太坊主链的拥塞问题(以及高昂的运营成本)。

回过头来看,从任务执行机制来看,以太坊比读者现在使用的个人电脑甚至手机系统要简单得多。

如今的个人计算机系统都是实时多任务,各种后台和前端程序同时运行;除了以太坊的信息状态同时存储在分布式世界的各个节点之外,系统运行模式是特别简单的单线程模式。

另外,以太坊底层是否有一个所谓的持续运行的操作系统?这个世界的计算机是否像《终结者》中的天网一样自动化、智能化?或者,至少有一个类似计算机的操作系统来控制整体操作。

答案是:不。

以太坊上不存在“幕后自动操作”这样的东西。以太坊中的所有计算任务都是由“交易”驱动的。交易由用户持有的以太坊地址账户发起,只有两种结果:成功和不成功。如果交易成功,全局状态更新将记录在以太坊中;如果交易不成功,全局状态将保持不变。

值得重复的是,以太坊是一个全局单一状态机,交易是唯一能让这个状态机前进并改变状态的东西。以太坊上的智能合约代码不会自动运行。以太坊也不“在后台”运行。这一切都是由用户交易触发的。

因此,虽然同为通用计算机,但以太坊的运行方式与个人计算机系统有很大不同。

至于以太坊计算机是否拥有神秘的人工智能,甚至是“天网”的雏形,读者可以直接回答:以太坊没有任何自动运行机制,更不用说人工智能;它不是天网,只是一个非常好的分布式平台。从任务执行的底层机制来看,它可能比你桌面上的笔记本电脑简单得多。

去中心化的本质和基础

我们总说以以太坊为代表的Web3网络是一个去中心化的网络。那么什么是去中心化呢?为什么可以去中心化?谁来保证去中心化交易的可信性和安全性?

所谓中心化,从目前互联网模式的意义上来说,是指互联网上用户之间的交互,是基于由可信赖的公司维护的互联网服务。从技术上讲,它是典型的服务器-客户端模型。

例如,看似简单的点对点转账:用户A扫描二维码,通过微信或支付宝亲自向另一个用户B转账100元。事实上,需要A、B双方信任的腾讯或蚂蚁金服的后端服务器来操作双方的账户。服务器将用户A的账户金额减少100元,将用户B的账户金额增加100元,并保证这两次操作。一起发生。由于微信支付或支付宝已经被广泛使用,用户“相信”他们的后端服务器不会出错。

我们可以看到,在当前的互联网模式下,互联网服务的特点是:

服务由特定公司运营。如果服务器宕机,用户服务可能会中断。当然,无数工程师付出了辛勤的努力,才保证了各种互联网中心化服务的稳定性。

基于这些服务,用户之间的交互,即使看起来完全是人与人之间的交互,也是通过中央服务器完成的。这背后的底层逻辑是,用户“信任”这些企业服务器是公正的,会按照承诺为用户服务。

这也是目前大公司提供的互联网服务显得比小公司更“可靠”、“信誉良好”的原因。因为目前大公司的用户量较大,服务的技术和运营能力更容易赢得用户的“信任”。

因此,从本质上来说,现在的互联网应用模式就是提供服务的公司做出了保证,而使用服务的用户选择相信。

那么什么是“去中心化”呢?最基本的一点是没有中心化的服务器。

以太坊上不存在建立在众生(节点)之上的通用服务器,也不存在提供特定服务的服务器。换句话说,在以太坊上,不存在针对特定应用的服务器的概念。只有完全平等的“全节点”,每个节点都保存了整个网络的信息状态。

在以太坊上,任何用户都可以直接与另一个用户发起交易。这笔交易的合法性和正确性不需要大公司服务器来保证;而正是因为用户交互可以完全点对点,Web3用户不再需要将自己的账户信息委托给大公司来完成服务。

用户的账户信息完全掌握在自己手中。当用户A和B进行以太坊转账等交易时,这个操作是由以太坊网络整体保证正确完成的。

如前所述,以太坊网络本质上是一台通用计算机;用户发起的交易是驱动世界计算机“状态变化”的唯一机制。但如前所述,以太坊并不具备超凡的人工智能;或者更明确地说,以太坊上没有总体控制程序来充当互联网的服务器仲裁者。

那么问题来了:没有人或人工智能的监管,交易是完全可信的。如此美妙的事情是如何实现的呢?

答案是,它不依赖于“信任”,更不依赖魔法,而是依赖于一个基础的、绝对可信的科学——数学。以下是数学如何从最低级别支持这个美妙的去中心化系统的简单解释。

有一个非常有趣的数学,叫做非对称密码学。

让我们记住几个术语:

公钥:一个很大的数字,通常用一串十六进制数字表示。

私钥:较大的数字,由较长的十六进制数字字符串表示。

数字签名:是一种信息处理方法,通过“私钥”对任何二进制信息进行数学运算,得到称为数字签名的字符串。

打个简单的比方,公钥可以看成是一个账号,对公众来说是公开的;私钥是一个密码,只有用户知道。公钥和私钥是一一配对的。

一个奇妙的特性是,如果你知道私钥,你就可以轻松推导出公钥;但反之则不然。知道公钥,就无法推导出私钥。这也是“不对称”的根源。

“非对称密码学”奇妙的数学理论保证了一个结果:任何获得公钥和数字签名信息的人都可以通过标准数学方法确认数字签名对应于公钥、私钥进行处理或“签名”;数学理论保证只有这个私钥才能获得数字签名结果。

因此,数学理论向我们保证,这些带有数字签名的信息确实是由拥有相应私钥的人“签名”的,而无法被他人伪造。

但这和我们所说的去中心化交易所有什么关系呢?

在以太坊系统中,我们的每个账户地址都是一个公钥。这不是比喻,而是字面意思。如果读者使用过以太坊相关软件,都知道以太坊账户是用十六进制地址表示的。这个地址只不过是密码学意义上的公钥。

那么,用户的私钥在哪里呢?

事实上,每个第一次使用以太坊的人都会被Web3账户管理软件提示记住一串助记词,并且会被软件反复提醒。不要将助记词告诉任何人,更不要丢失助记词。话,否则帐户将永远无法恢复。这个助记词是私钥的某种映射;简单理解,这串助记词就是私钥本身。

Web3的账户管理软件,即所谓的Web3“钱包”,在本地为用户存储和管理私钥,并帮助用户生成由私钥数字签名的交易请求并将其发送到以太坊,从而成为用户Web3网络的事实。入口。

(这里还有一个小细节,使用过MetaMask等Web3钱包的读者都会知道,进入钱包需要设置一个额外的密码。但一定要注意,这个密码不是以太坊的密码。以太坊账户做不到没有密码,而用户的私钥是访问账户的唯一且最高的凭证,该密码仅用于保护本地存储的以太坊账户私钥信息,甚至密码本身也不同步到互联网。密钥信息本身不会同步到服务器,钱包密码也没有理由再做在线同步。)

当一个以太坊账户向另一个账户发起交易时,交易请求中的所有信息都将由该账户的私钥进行数字签名。签名信息连同交易请求数据本身和账户地址(即公钥)将被广播到On Ethereum。

在以太坊上,没有中心化服务器负责发出交易请求。大量收到广播请求的全节点会同时确认交易的合法性。

(这里隐藏了一点细节:只有那些希望获得系统奖励的全节点才会主动验证用户交易的合法性,并根据自己的工作量赢得以太坊——的系统奖励,这就是所谓的“挖矿”。)

以太坊交易的验证方式采用前面介绍的密码验证机制:

发起者的账户地址信息就是公钥,同时还有声称从此地址发起的交易请求信息以及账户私钥对交易信息进行的数字签名。然后,任何全节点都可以通过公钥+数字签名验证来确认交易请求确实来自这个以太坊账户。

换句话说,以太坊中的任何节点都可以非常确定地确认一笔交易不是伪造的,而是真正来自账户所有者的。确认了这一点后,每个以太坊全节点就可以愉快地根据交易请求执行操作,并将新的状态结果记录在以太坊数据链上。这是以太坊区块链的核心密码通信机制。

这种基于密码学理论的可信通信机制从根本上使得任意两个账户无需中央服务器即可完成交易。确实不需要第三方信任,所有操作都是点对点的;换句话说,这种点对点交易的“可信度”是有数学理论支持的。

数学保证,如果有人说在以太坊上给你一笔钱(发起交易),你可以立即判断这是骗子还是天上掉馅饼。

说到底,我们能相信的不是承诺,而是数学。

以太坊账户里到底有什么?以太坊账户里有什么?一句话回答,以太坊账户里基本什么都没有。

以太坊中有两种账户,一种是人的,称为外部账户;另一种是人的,称为外部账户;另一种是人的,称为外部账户。另一种是智能合约,称为合约账户。

“智能合约”这个词看起来确实很神秘,但实际上,所谓的智能合约只是一段代码,而在以太坊的机制下,智能合约代码一般都很短,一个智能合约就几百行已经是一件大事了。

外部账户和合约账户都由以太坊上的地址表示。对于外部账户,即人们使用的账户,只有一个数据字段,即该账户拥有的以太币数量。对于智能合约账户来说,数据要多一些。除了Ether amount 字段(是的,智能合约账户本身也独立拥有Ether)之外,还有一个数据字段,存储智能合约本身的代码,以及这个智能合约所需的信息。数据存储区。

除了以太坊的数量之外,以太坊账户中还有一个内部计数,称为nonce。这是账户交易笔数的统计,每笔交易后加1。此计数对于防止“可重复使用的攻击”很重要。

简单来说,如果别有用心的人复制了这个账户曾经发出过的交易数据,然后发送出去,因为数据包中的公钥和签名都是真实的,如果不存在单向增加交易数的话用户账户进行验证,交易可能会被执行多次。

以太坊账户的架构特别简单,就像以太坊区块链网络是通过最简单的密码通信连接起来的一样。

智能合约的代码也非常简单,但智能合约的强大之处在于,整个以太坊代码都可以“为我所用”:每个智能合约代码都可以自由调用另一个智能合约。

这与搭建乐高积木特别相似。每块砖看起来都很普通,但当无数块砖组合在一起时,就能建造出一座辉煌的建筑。

像以太坊这样的架构让人想起蚂蚁金服的社区组织。每只蚂蚁能做的事情非常有限,但整个蚁群加在一起似乎拥有更高层次的智慧存在。这种存在不是人工智能意义上的存在,而是社会学意义上的存在。

以太坊的创始人一定是一群理想主义的人。只有这样的人才会致力于构建一个基于最简单规则运行的新世界,但又能够衍生出一个复杂而强大的社会。功能逻辑。

当我们更多地了解以太坊时,我们会一次又一次地感受到这一点。

以太坊和gas与以太坊货币(简称“以太坊”)的概念有些关联。这里我们继续解释清楚。

以太坊现在值很多钱。确实这个价值波动很大,关于区块链币价值的真实性也有很多讨论。但笔者可以判断,这个价值会波动,但以太坊的价值不会消亡。原因有很多,但这里我们只讨论一个技术性和基础性的问题:以太币最基本的功能是什么?

是的,以太坊是以太坊生态系统中的通用货币,现在可以购买许多虚拟物品,但以太坊的内在价值,在技术层面上,是为以太坊网络设计的计算资源的购买力。

这里需要讲一下以太坊运营的一个核心概念,运营需要相应的费用。

大家都已经知道,在以太坊上,每个用户都可以自由发起全网同步计算,即“交易”。但这笔交易会消耗全网的计算资源,相应的费用由发起账户支付。

以太坊使用一个单位gas(英文是汽油的意思,很形象)来衡量执行特定操作所需的计算和存储资源。

它与当前互联网生态系统中为用户提供免费网络服务的理念完全不同。任何以太坊用户想要发起交易都需要先支付相应的gas费。天然气费是特定操作的固定值。例如,两个值相加消耗3 个Gas,计算一个哈希值消耗30 个Gas,发送一个交易请求消耗21,000 个Gas。

在以太坊上购买gas所用的正是以太坊。有趣的是,购买以太坊的Gas 费的“汇率”仍然是浮动的。

因此,如果我们确信以太坊网络具有继续存在的价值,那么以太坊将永远具有价值,因为它对以太坊网络的计算资源进行了基准测试。

为什么以太坊上的计算需要付费?天下没有免费的午餐,用户付费也是理所当然的。不过,这里还有一个原因:以太坊是一台全球通用计算机,通用计算机的运行可以进入无限循环。

如果您的电脑陷入循环,您只需拔掉电源插头并重新开始即可。但以太坊网络没有插头。以太坊运行中如何避免恶意循环死锁?

除了反复关注底层设计之外,最重要的是引入gas费用。每次操作都需要付费。这样,无论怎样,都会有费用花完的时刻,无限循环计算自然终止。

Gas 是以太坊极其重要的组成部分。创建交易的用户需要表明他们愿意为交易执行支付的价格,以防止无意或恶意的无限循环以及其他形式的网络计算资源浪费。

一个精彩的设计不需要设定复杂的规则来限制它,只讲好处。

人性是逐利的,这也是人性的某种弱点。以太坊的设计反过来又利用人性来保持系统的运转。这种设计思想在整个以太坊系统设计中已经不止一次的体现。

人的欲望是自然法则,以太坊真正践行了这句话。

钱包,远程客户端Web3钱包是区块链网络用户每天都要打交道的工具。它是事实上的Web3入口。

第一次接触Web3钱包的人很可能会把它比作微信支付钱包或支付宝钱包,顾名思义,即由服务器支持存储某种货币的系统。这是对Web3 钱包最大的误解。

Web3钱包是一款本地化的区块链账户管理工具。本地化意味着它不会在线存储个人帐户数据。以太坊上的所有活动都是通过具有自己的以太坊地址的帐户向以太坊网络发送交易请求来驱动的。那么谁来帮助用户做到这一点呢?它是web3钱包软件。

例如,当用户打开NFT 交易市场并下单购买NFT 时,网页将启动浏览器的MetaMask 钱包插件。这个MetaMask插件存储了用户以太坊账户地址的私钥。 MetaMask钱包帮助用户打包交易请求数据,与用户确认所需费用,然后将交易请求信息发送到以太坊网络来完成交易。

如果用户丢失以太坊私钥怎么办?答案是——。私钥以一串助记词的形式呈现给用户。如果助记词串丢失,并且本地存储密钥的钱包软件被意外删除,则对应的以太坊地址账户将永远无法访问。

那么,集中式服务是否可以托管用户密钥?

这样做的好处是用户还有机会通过传统的身份检索方法从服务器恢复其帐户密钥。这从易用性的角度来说是可行的,并且已经有一些Web3产品例如MetaNotey.IO在做这个——,为用户提供Web3账户托管服务。

毕竟web3钱包也是有使用门槛的。托管后,用户的Web3学习曲线将更加平滑;另一方面,如果允许中心化服务器托管自己的Web3帐户,那么它将回到传统互联网的主张并失去100的隐私和安全性。隐私性和易用性可能无法同时100%满足。我们都有选择。

此外,像MetaMask这样的账户管理工具还有另一个名字:远程客户端。

在以太坊这样的区块链网络上,所有节点都是所谓的客户端(这个名称并不准确,因为全节点还承载着服务以太坊用户的功能)。以太坊中每个全节点的地位都是平等的,它们都包含了整个以太坊的完整信息。

然而,许多用户并不想成为全节点,而只想访问和使用以太坊网络。于是就衍生出了远程客户端的概念。远程客户端不需要在本地存储整个以太坊网络的信息。他们在以太坊上的信息是通过访问其他全节点来完成的。远程客户端负责将账户发起的交易广播到以太坊并接收结果。

像MetaMask 这样的Web3 钱包本质上是一个远程客户端。

代币“代币”是一个经常被提及的概念。 Token是英文token的直译,是指以太坊上用户可以通过智能合约自行发行的虚拟货币。只要接口符合协议ERC20标准,任何智能合约都可以成为某种代币的发行者。

为什么常说所谓的发币是“空气币”、“割韭菜行为”?原因其实很简单,因为每个人都可以自由创建智能合约来“发行”某些代币。

“发行”是一个听起来非常高级的词,但在技术层面上,代币合约的作用可以非常简单。只需几行代码声明一定数量的代币,并通过标准的ERC20接口转移代币。硬币被奖励给不同的以太坊账户。

如前所述,每个以太坊账户都有一个字段,记录该账户中以太坊币的数量。那么,这些授予的代币数量是否也记录在用户自己的以太坊账户中呢?从逻辑上来说似乎应该是这样,但答案会让你大吃一惊:事实并非如此。

您的以太坊账户中记录的唯一金额是以太币的金额。各种代币授予每个以太坊账户的代币数量仅记录在创建该代币的智能合约的数据区域中。

读者可以想象一下,这个代币智能合约的数据存储区域中有一个表,表中的每一行记录了“地址”

, 比如说一组20个药水,10个草药原材料……ERC721在支持这样成组的虚拟物品上有些吃力, 因为它所描述的NFT都是单个生成的。因此另外一个协议 ERC1155被提出来,用来支持这种不同品类批量生成NFT。
NFT除了名字和“代币”有关系,其他方面并没有多少关联。NFT的核心认知其实是“权证”,这个权证使用一串字符,或者更学究一点,一串哈希值来对应某个虚拟物品,比如一个头像图或者一个视频,甚至现实的物品比如一双袜子等等。这种对应关系由数学算法生成。
一个NFT质疑者常挑战的问题是:虚拟物品(更不用说现实世界的物品)的“所有权”如何和NFT元数据里的一串字符产生100%不可分割的关系?
这个问题并没有答案。
目前也没有任何国家法律来保证NFT所对应的物权。NFT的当前价值仍是基于所有人对于NFT的共识,以及公开交易市场上所呈现的真金白银上。作者私以为,支持Web3的人不会过多争论NFT的“价值”是什么,正如游戏玩家从来不会怀疑虚拟装备有没有价值一样。
价值本质是一种“群体共识”,只要足够多的人认可NFT作为“Web3时代的流通商品”的定位,只要特定NFT能和某种稀缺性的无形价值相关联,再加上NFT本身的流通性,热度还是会持续的。
智能合约,DAO智能合约是以太坊的精髓所在。支持用户自行发布可执行代码,智能合约机制让以太坊上的应用(所谓分布式应用dapp)蓬勃生长。
以当前互联网生态来对比智能合约,相同的地方是,所有用户都可以开发自己的应用并发布到网络(移动app V.S. 智能合约);前者发到应用商店,后者直接部署到智能合约账户里。
但有个很不同的地方是,智能合约代码是完全公开的,且具有相互调用的能力。这在当前封闭的移动互联网模式下是不能想象的。
以太坊智能合约的这种联动模式,有点类似AWS的发家史。最早的时候,亚马逊了打通全公司技术能力, 强制推行各后台技术团队以统一接口开发模块,并在公司范围内允许互相之间调用,这就是AWS云服务的雏形。
这是典型的积木式体系构建思路。而以太坊更进一步,因为代码的公开特性, 整个以太坊生态技术的迭代都以一种特别透明和合作的方式呈现在世人面前。
在技术上没有可以藏着掖着的地方, 需要了解别人怎么做就直接去看看对方的智能合约代码。在这种极致透明的设定下,一种全新的社区共创的技术文化正在欣欣向荣发展起来。
关于智能合约有个热点值得单提出来讲讲, 就是热门新潮概念DAO。DAO这个词很多人第一次听说是源于红杉在twitter发了一个推,要all in DAO。未来是不是属于DAO的,下定论还有点早,但DAO(去中心化自治组织)是一个有趣的概念, 虽然名字(又)有点绕,但其核心概念是容易理解的。
DAO把组织的管理和运营执行规则写进了智能合约代码,这个智能合约发行的代币很类似公司股票,不仅有经济价值,也有股权价值。所有拥有DAO合约代币的用户通过合约代码所约定的投票机制来决定一个执行结果, 这就是所谓基于智能合约的治理。
此外,智能合约账户本身也拥有着以太坊币额度,所以DAO智能合约完全可以看做一个有资金池和严格的投票治理制度的虚拟公司组织。这个组织的程序执行基于以太坊机制,确保没有人可以破坏既定的组织规则。
根据以太坊的特性, 智能合约一旦部署就不能更改,这意味着这个“智能合约”DAO公司的运营机制必须在部署之前完全确认。任何的代码疏漏都可能成为未来的问题。
这其实不是DAO的问题,而是以太坊网络所有智能合约所必须面对的挑战。
有趣的是,正因为有这样的“一次部署必须完全准确”的挑战, 以太坊上的智能合约代码都以一种特别简单明了的方式来构筑:既然越复杂的代码越容易出错,那不妨就尽可能简单些。
从现实利益出发,以太坊机引导了所有参与构建的开发者去遵循缔造者的思路:以最简明的方式创造新世界。如不遵循这样的设计思路,则要承担更高概率出错且无可挽回的风险。
用人性和利益而非教条来驱动社区共同遵循一个方向,我们又一次看到了这种天才的构思。
共识机制和挖矿在了解以太坊的各种细节后,为什么还要聊共识机制? 因为这是以太坊的决策基础。
在一个没有中心化管理的分布式网络里,要让整个网络节点达成统一的意见,比如决定一个新的数据区块由谁生成,应该怎么办?
这就是“共识机制”发挥作用的地方。
在计算机科学里,“共识”这个术语比“区块链”出现得更早,它泛指了在各种分布式系统里的不同参与者对单个状态达成一致。
共识是以太坊的关键属性, 它之所以那么关键,是因为这个承载着真金白银的系统, 并没有某个人某个组织或者团队“掌控”;或者说,控制权分布在广泛的参与者之间。共识的终极目的是打造一个严格按照规则来运行且没有单一控制者的系统。
这简直是技术的理想国。
共识算法非常底层, 远比智能合约的抽象概念更加底层。对于读者来说,不一定要理解其工作原理才能使用以太坊,正如使用互联网也不需要理解路由原理一样。但简单了解共识这个机制顺便可以帮助读者进一步理解什么是“挖矿”,一个大家听得很多的概念。
最早区块链(比特币)的创造者发明了一种叫做工作量证明(Proof of Work,PoW)的共识算法,工作量证明的一个通俗表述就是“挖矿”。
挖矿多有被误解,很多人都以为挖矿的目的就是从系统获得新的区块链货币,但事实上,挖矿操作的本质目的是为了保证整个区块链系统的去中心化, 保证整个系统以一种共识机制来运行。而遵循这个机制“挖矿”得到的奖励则是区块链所铸造的货币。
这个机制有隐含的惩罚机制, 如果不遵循共识规则来得到区块奖励,则挖矿上花费的电力就有可能血本无归。这种实际利益驱动的规则遵循机制是各种共识算法的核心思想。
有意思的是, PoW工作量证明尽管比较容易理解(…真的吗?),但它不是历史上首个被提出的共识算法。在PoW出现之前,有人就提出基于抵押金的共识算法,就是所谓的权益证明(Proof of Stake,PoS)。
共识机制都通过系统的奖励和惩罚来让验证者遵守共识规则:PoW工作量证明的惩罚是外部的,花费电力做了无用功没有得到以太坊奖励,PoS权益证明的惩罚是区块链内在性的,即失去了质押的以太币。
很有意思,严谨的计算机科学又一次利用了人性,区块链分布式网络上最核心的需要全体维护的“共识规则”,其校验机制用人性来确保: 遵守者获益,违反者被惩罚。
从最初,以太坊的创始者就希望有一天以太坊的共识机制能切换到权益证明, 因为工作量证明有一些明显的缺点,比如浪费现实世界的能源。
所以,以太坊在创建之初埋下了一个“难度炸弹”机制,目的是迫使以太坊的PoW挖矿变得越来越难,最终不得不让网络转向PoS。而在本文发出之时,以太坊的PoW时代已是终章,以太坊正在过渡到它的PoS时代。
这个切换并不容易, 已经数次推迟。最新的消息是以太坊网络将在今年内正式切换到PoS模式, 到时候,以太坊的“挖矿”将不复存在。
以太坊上庞大的应用体量对底层架构的性能和可扩展性的要求越来越高,这也是以太坊下定决心向PoS机制过渡的重要原因。
无论矿工对现在的以太坊有多么留恋,以太坊网络将以不可逆的方式降下挖矿的帷幕。
写在最后如果读者还能坚持看到最后, 对以太坊这个Web3时代最重要的基础设施的技术概念应该有了一些初步的理解。
以太坊的技术构建,在每个细节上都闪耀着技术理想主义的光芒。以太坊的缔造者期望用一种简洁明了的方式, 构造一个所有用户都能平等参与,自由构建的Web3新世界。
这个理想国新世界构筑在严谨的数学理论和简明的逻辑结构之上。无数技术天才正在为这个理想国添砖加瓦。了解越多,则会越倾向于相信,这个网络将拥有一个非凡和长久的价值。
本文来自微信公众号:元天空之城(ID:gh_a702b8d21cdf),作者:城主
本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系 hezuo@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP

上一篇
下一篇

为您推荐

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部