以太坊完全指南

2018年6月26日 246点热度 0人点赞 0条评论

以太坊是最近热门的话题。 它被一些人誉为“下一代互联网”或者“世界计算机”,也有人认为以太坊是庞氏骗局的温床。 在深入研究了有关以太坊,智能合约,DApps,DAO,ICO和 token 等文章之后,我深刻认识到以太坊可能成为“价值互联网”的主要协议。

图片


现在是时候仔细研究一下以太坊是什么,它有什么作用以及将来可以发挥什么作用。 首先,我们需要回顾一下区块链的价值。

去中心化和“无需信任”


简而言之,区块链是由全球大量节点维护的数据库。数据存储在区块中,区块被加上时间戳并相互链接以形成一个链。区块链确保存储在链中的所有数据都是安全且永久不变的,这就是区块链如此有趣的原因。通过其共识机制,区块链是“无需信任的”,这意味着人们不必依赖对方的可信赖性。

这是人类历史第一次在不需要信任第三方的情况下,人们就可以安全放心地在互联网上进行转账,这催生了比特币和其他加密货币。

实质上,比特币交易就是执行一段代码,说明'A'向X发送了X笔比特币。此交易是自执行的。为了执行相关代码,它首先检查A的地址是否有足够的比特币,然后将钱发送到B的地址。这段代码符合一个合约的所有特征:约定结果,条件执行。但是与传统不同的是它自动强制执行,不可修改,无法违约,这是第一个可以完全信任的『智能合约 』 。

计算机代码其实可以更加强大。

Vitalik Buterin 早就意识到,如果加密货币能通过消除可信第三方的需求来破坏传统金融,那么智能合约可能会扰乱更多需要中介机构提供信任的行业。他最初打算使用比特币的编码(脚本)语言,然而发现该语言不够灵活。于是他创造了以太坊。


以太坊


以太坊是一个可编程的区块链。与任何区块链一样,以太坊基于由全球众多计算机组成的P2P网络。 以太坊没有为用户提供能够直接使用一些预定义的操作(例如比特币交易),而是允许用户运行他们想要的任何代码。该代码存储在区块链中供其他人进行交互,并且通常被称为智能合约。

比特币网络中的计算机(节点)维护和更新区块链。在以太坊中,这些节点运行以太坊虚拟机(EVM)。以太坊虚拟机是一台超级计算机,它结合了网络中所有节点的计算能力。这种计算能力用于在区块链上运行用户提交的代码(智能合约)。为了执行智能合约,EVM收取非常小的交易费以换取智能合约需要的计算能力。这个费用被称为“gas”,它在Ether中支付,这就是为什么Ether不应该被视为一种加密货币,而是应该被认为是运行网络的所需要的燃料(像石油一样)。

以太坊是一台超级计算机,它可以让用户运行任何他们想要的代码。


智能合约


如前所述,以太坊允许人们在区块链上部署智能合约。智能合约是自运行的一段代码,它定义并执行多方之间的协议。 '智能合约'的想法最初是由尼克·萨博于1994年提出的。他认为代码完全能够控制一系列的逻辑关系、参数以及关联的行动。

在以太坊中,智能合约可以用Solinity(一种以太坊特定的编程语言)编写,然后上传到区块并永久存在。由于区块链是安全且不可更改的,因此可以完全相信以太坊的智能合约将按预期执行。代码的强制执行性使得赖账和毁约不可能发生。

Vitalik Buterin在Ethereum的白皮书中解释了智能合约:

“智能合约不应被视为应履行或遵守的义务,它们更像是居住在 EVM 中的机器人,当收到外部条件(消息或交易)时就自动执行特定的代码并修改相关地址的余额或其它信息。”


智能合约可以用于各种不同的交易,尤其适合容易量化的简单交易。比如金融产品(例如衍生品,期货,期权等),支付,物联网数据交换或内容付费。

作为另一个例子,我可以写一份智能合约,作为农民抗旱保险。基本参数如下:

  • 如果来自 KNMI(荷兰皇家气象研究所)的传感器显示过去3个月雨水少于6毫米;并且

  • 如果用户一直如期缴纳保险

  • 然后,向用户发送保险费X。


在我的例子中,KNMI传感器作为一个'oracle'来获取可靠的最新信息以供合约执行。oracle是一个值得信赖的第三方,可以提供合约所需的信息。

图片

插图1:农民保险可视化


去中心化应用


现在我们希望在区块链上启动一家保险公司。我们将其称为 BlockSurance。首先,我想要多个产品,并且会编写多个智能合约。不同的产品和功能有不同的智能合约。

以太坊的智能合约可以相互通信,这对 BlockSurance 非常有帮助。在一个非常干旱的年份之后,我不希望“农民 - 抗旱保险”合同耗尽所有资金来补偿农民。因此,我可以让我的不同保险产品(智能合约)将保险保费发送到一个中央智能合约作为一般储备。如果农民 - 旱灾保险合同认定农民有权获得X数额,则将向总储备合同发送消息以支付农民X数额,然后合约将自动执行。

BlockSurance 的智能合约在 Ethereum 的区块链中存储和执行,这意味着它们是“无需信任的”:我的客户不需要相信我,因为合同可以自行执行,所以当他们有权获得支付时,他们将获得赔付。我的客户也确保这些合约不会被黑客攻击或更改,因为区块链是不可变的。只要合约中的规则由ETH网络节点共同保证它们按预期的方式执行,则不存在违约风险。

当然,BlockSurance 需要客户 - 我希望他们的用户体验尽可能地简单。所以,我会建立一个网站并创建一个很棒的用户界面。这个网站将成为我的应用程序的前端,而以太坊的区块链和智能合约是应用程序后端。

如果我已经完成了上述所有内容,我就已经创建了一个去中心化的应用程序或 DApp。然而,现在 DApp 越来越多的被理解为不仅是一个在区块链上运行的应用程序,而且还需要有自己的 Token。


Tokens


那么什么是 Token?

Token 是一种新型的数字财产,其价值取决于供求关系。Token 为其所有者授予一组与其创建的去中心化应用程序相关的权利。例如,token 可以用于治理项目,分配权益或访问创建的去中心化应用程序。Token 广泛变化的特征使其法律性质成为一个非常有趣的话题。

对于 BlockSurance,我也创建了 Token。这个 Token 可以用于访问 DApp:为了使用我的保险,人们必须用 Token 支付保险费。

此外,如果保险的利润超过预期,我可以让 token 持有者对额外利润的用途进行表决。这可以通过在总储备金合约中设定门槛,以允许 Token 持有大户每年对以下四个选项表决:


  • token 持有者之间的利润分配

  • 降低保险费

  • 提高赔付金额

  • 开发资金


每个选项都部署了一个智能合约,允许用户在投票期间向其发送代币作为选票,结束后会退还。截止时间到了后合约间相互通信并统计,拥有最多代币的合约将会自动执行。

在过去,创造一个加密货币是一个耗时的过程,需要设计加密协议和共识机制并建立节点。如果没有足够的节点,那么它很容易受到女巫攻击或 51% 攻击。作为一个应用开发者,我不关心安全性或整体设计,只想用最小的代价实现业务逻辑。以太坊不仅解决了这个问题,还允许部署智能合约,而且还在区块链上创建了 Token。但是这些 Token 如何分配?


ICO


Token 通常通过 ICO 首次发行。 在 ICO 中,该平台的投资者和潜在用户可以通过交换比特币或以太坊来购买Token。 这是众筹的一种形式,让开发商筹集资金,而早期使用者和投资者就项目的未来价值进行投资。 ICO 也被称为 Token 分发。 今年迄今为止,ICO 已筹集超过 22 亿美元。

通过为 BlockSurance 提供 ICO,我可以筹集资金聘请开发人员构建去中心化应用程序的前端和后端。 ICO 还为我的保险公司避免了大量的风险,并帮助快速启动我的业务。 或者,我也可以将部分资金收入'总储备金合约'中,部分回报给我的种子投资者。 我也会为自己留一部分Token,最终Token的分布如下。


图片

插图2:Token的分配


大多数ICO发行都是这样的。确切的百分比可能会有所不同,但开发人员几乎总是给自己留一定份额的Token。ICO投资者募集的资金用于项目的实际开发。

去中心化的自治组织


去中心化自治组织(DAO)是由其部署的智能合约所设定的规则自主管理的组织。 DAO本质上是一个DApp,开发者在启动后不再扮演特殊角色。 DApp和DAO之间的区别是管理权和自主权。 DApp的源代码和未来路线图由一组开发人员或组织管理,而DAO则是真正自治的。该组织所做的事情以及该做的事情都是以前在其代码中确定的。实际上,代码就是组织本身。

换句话说,一个DAO的未来发展完全由内部机制决定,代币持有者共同投票决定组织基金的使用方式。既可以决定投资其它项目,也可以作为升级代码的开发费用,但这种升级方式同样需要在最初的合约功能中包括才能被实施。

在撰写本文时,有266个DApps和DAO。其中大部分都部署在以太坊上。一些值得注意的例子是:

Dapps:


  • Augur - 去中心化期货

  • Golem - 空闲算力交易

  • BAT - 在线广告交易和基于网页浏览时长的内容付费

  • Status:连接所有DApp的去中心化应用平台


DAO的:


  • DAO:第一个公开募资的DAO(智能合约史上的最大失败)

  • MakerDAO:旨在发行价格长期稳定的代币

  • DigixDAO:金本位的数字代币交易所


“价值互联网”


比特币所做的是允许个人交换现金,而不涉及任何中间商,如银行,支付处理商或政府。对于比特币的用例,这些机构提供的信任并非必要。

以太坊的影响可能更为深远。由于几乎任何事物都可以在区块链上进行编码和保护,其他提供信任的中间人可能会被替换。这取决于你认为这些中间人有多少价值,这些参与者可以包括公证人,银行家,保险部门,房地产机构,Uber和Ebay等商品和服务的网上交易平台。这个论点认为,任何需要第三方担保的事情都能在区块链上更高效地完成。

虽然这种说法有其缺陷,但很显然,区块链技术使来自世界各地的个人能够通过消除对手风险来相互交易。这意味着,在某种程度上,可信中介在我们的经济体系中失去了重要性。我们将看到更多点对点服务和共享经济。

在互联网技术崛起之前,大家无法想象分发信息的方式可以如此高效。区块链允许通过互联网进行可靠的价值交换,促使我们思考如何建构社会,定义价值等。这就是区块链技术被称为“价值互联网”或互联网3.0背后的驱动力的原因。以太坊已经是最大的协议,允许创建智能合约,DAO和DApps,许多人相信它可能会成为这个新互联网的中坚力量。

企业以太坊联盟和许可链


企业级以太坊联盟(EEA)是一个由学术界,巨头和创业公司建立的区块链网络,用于分享知识和协同解决复杂高性能的应用问题。参与者十分广泛,包括摩根大通,微软,万事达卡,英特尔,德勤和BP等。 考虑到区块链技术的可能性,各种各样的公司想要靠区块链提高各自行业的效率是合乎逻辑的。

图片

插图3:企业以太坊联盟成员


人们常常认为,EEA是以太坊估值的一个驱动因素,但这其实并非如此。这些公司正在试验部署私有链(在一家公司内部使用)和联盟链(与其它合作伙伴共同使用)。这些“经许可的”区块链是以太坊的私有版本。以太坊的私有分支允许公司限制用户访问。所有网络节点都由公司搭建维护,不存在利益博弈。因此有极大灵活性,更改区块代码、回滚交易和修改账户余额这些在公有链上很难推动的事情都可以轻松实现。其交易成本较低(因节点较少)也可以避免公共区块链中的常见风险(如51 %攻击不可能出现)。

补充一点,我相信大多数人都关注公有链(无权链)的潜力,并对许可链(私有链)不屑一顾。我并不质疑设计良好的区块链网络的效率。然而,如前所述,私有链比公有链更容易达成共识。这并不是说透明、匿名和安全不重要,而是许多区块链项目其实更需要良好的用户体验和成本优势。

结论


区块链可以提供高效、安全、可靠的独特优势,它将带来 Web 3.0 革命,并深刻长远影响社会,正如之前计算机普及和互联网浪潮一样。几乎任何现实事物都可以部署在以太坊上。然而,每次的技术革命都难以避开泡沫,上次互联网的泡沫还在眼前,这次又将何去何从呢?

编辑:这篇文章专注于以太坊积极的一面。 然而,这个项目有很多批评。 以太坊不好的一面将会在一篇新文章中陈述。


英文原文:

https://hackernoon.com/understanding-ethereum-a-complete-guide-6f32ea8f5888


相关阅读:


只用200行Go代码写一个自己的区块链!

200行Go代码实现自己的区块链——区块生成与网络通信

200行Go代码实现区块链 —— 挖矿算法

区块链及比特币入门指南

新一代开源分布式账本项目R3 Corda 技术揭秘:基于JVM开发

超越比特币以太坊的区块链技术:石墨烯项目简介


特别推荐:


比特币、以太坊、ERC20、PoW、PoS、智能合约、闪电网络……

想深入了解及讨论这些话题?高可用架构在知识星球(小密圈)创建了区块链学习小组,共同学习区块链包括数字货币前沿技术,欢迎点击链接加入。


区块链学习小组


本文作者 Thijs Maas,由方圆翻译,转载本文请注明出处,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。


高可用架构

改变互联网的构建方式

图片

长按二维码 关注「高可用架构」公众号

15790以太坊完全指南

root

这个人很懒,什么都没留下

文章评论