主页 > imtoken钱包苹果版手机下载 > 科普|以太坊概述
科普|以太坊概述
您可能听说过“区块链”和“智能合约”这两个术语,但它们到底是什么意思? 我们将揭开它的神秘面纱,向您解释实用的区块链解决方案,然后为您提供一些创建方法的指导。 这是一个高级概述,包括:
区块链基础
为什么要使用区块链?
什么是区块链?
区块链如何运作?
以太坊区块链
什么是以太坊?
什么是智能合约?
以太网络
分布式应用程序(Dapps)
为什么要使用区块链?
当参与者众多,分布在世界各地,无法相互信任,又需要共享数据、传递价值时,就需要区块链。 金融界将这种信任描述为交易对手风险,即其他方最终无法履约的风险。 区块链通过数学、密码学和点对点网络的创新系统完全解决了交易对手风险。 在我们详细了解它们如何工作之前,我们需要回顾一些历史以及对区块链的需求。
第一个数据库
在 1960 年代,出现了第一个计算机化数据库。 硬件占用了很多房间,互联网距离我们还有几十年,数据通常存储在一个中央物理位置。 这是一种集中式方法,这意味着数据的位置和访问都由中央机构控制。 中心化系统可以在内部或外部被恶意行为者控制,因此我们相信这些系统的所有者有足够的意愿和资源来保护数据的安全性和完整性。 集中式数据库在今天仍然是最常见的,支持大多数在线和离线应用程序。
自托管博客是集中式数据库的一种常见形式。 所有者可以在事后进行编辑以使文章更好,或者在没有追索权的情况下审查用户。 即使拥有诚实的所有者,黑客也可以渗透服务器并执行恶意行为。 如果没有数据库备份,几乎不可能确定哪些数据已被修改或损坏。
如下图所示,每个服务器旁边的箭头是需要信任的连接。
共享数据要求
共享大量数据既昂贵又麻烦。 我们可以通过在需要共享数据的各方之间分发数据来减轻这种负担。 读/写由该组中的一个或多个方控制,因此会以类似于集中式数据库的方式进行更改。
现代共享数据库使用技术来减轻这种损坏,其中一些与区块链重叠。 根据共享数据库系统的不同,它可以具有以下特征:
区块链具有以上特点,并将其应用到更深层次,彻底解决了信任问题。
什么是区块链?
区块链的核心是一个称为分类账的共享数据库。 像银行一样,一个简单的区块链分类帐跟踪货币(在本例中为加密货币)所有权。 与中心化银行不同,每个人都有一份账本,可以验证彼此的账户。 这就是区块链的分布式(或去中心化)特性。 每个包含分类帐副本的连接设备称为节点。
区块链网络中账户之间的交互称为交易,它们可以是货币交易,例如向某人发送以太坊中的加密货币以太币; 它们也可以是数据传输,例如评论或用户名。 区块链上的每个账户都有一个独特的签名,让每个人都知道哪个账户激活了交易。
与以往的数据库相比,区块链除了解决信任问题外,还有以下主要优势:
现在我们对区块链的价值有了一些了解,让我们更深入地了解它们的工作原理。
区块链如何运作?
在公链中,任何人都可以读写数据。 读取数据是免费的,但是将数据写入公链是要花钱的。 此费用有助于阻止垃圾邮件并支付以确保其安全。 网络上的任何节点都可以参与一种称为挖掘的方法来保护网络。 由于挖矿需要计算能力和电力成本,因此矿工为他们的服务付费。
矿业
网络中的每个节点都可以选择参与挖矿。 通常,节点的矿工竞相解决确保区块链内容安全的数学问题。 每个块都是新创建的待处理交易的集合,需要在链中的最新块之后添加。 数学题竞赛的获胜者创建下一个区块并获得一些加密货币作为奖励。 这会激励节点保护网络并防止任何一个矿工持有过多的权力。
散列
一旦一个新区块被开采出来,其他矿工就会收到通知,他们开始验证并将这个新区块添加到他们的链副本中。 我们前面提到的数学问题称为密码哈希(或简称哈希)。 散列函数是一种特殊的单向过程,它获取数据并返回表示该数据的固定长度字符串。 尽管无法从其哈希值中复制原始数据,但相同的数据总是会产生相同的哈希值。 因此,未经验证的数据可以用相同的函数进行哈希处理,并与原始数据进行比较。 如果它们相同,则数据验证通过。
一旦超过一半的矿工验证了新区块,网络就新区块达成共识并成为链的永久部分。 现在这个数据可以很方便的被非挖矿节点下载(同步),并且它的有效性得到了保证。
这是整个可视化:
1. Bob 尝试发送 1 ETH 给 Alice。
2. Bob 和 Alice 的交易与自上一个区块以来发生的其他交易捆绑在一起。
3. 矿工竞争验证新交易集产生的区块。
4.成功创建新区块的矿工将获得奖励。
5. 交易通过验证,Alice 收到 1 ETH。
什么是以太坊?
以太坊不仅仅是一个数据库,它可以让你在区块链的可信环境中运行程序。 以太坊在区块链上构建了一个名为EVM(Ethereum Virtual Machine,以太坊虚拟机)的虚拟机。 EVM 允许在区块链上验证和执行代码,确保代码在每个人的机器上都以相同的方式运行。 这些代码包含在智能合约中(更多内容见下文)。
除了跟踪账户余额,以太坊使用相同的方法将 EVM 的状态存储在区块链上。 所有节点都处理智能合约以验证合约本身及其输出的完整性。
什么是智能合约?
智能合约是在 EVM 上运行的程序,就像其他编程语言一样。 智能合约可以接受和存储以太币、数据或两者的组合。 然后,使用编程到合约中的逻辑以太坊建立时间,它可以将以太币分配给其他账户,甚至其他智能合约。 您可以看到复杂系统如何从这种灵活性中成长起来。
智能合约是用 Solidity 语言编写的。 Solidity 是静态类型的,支持继承、库和复杂的用户定义类型等特性。 它的文件扩展名为“.sol”。 Solidity 的语法类似于 JavaScript。 我们将在以后的教程中介绍 Solidity 基础知识,但您也可以通过查看文档进行更深入的研究。
这里继续 Bob 和 Alice 的智能合约示例。 这一次,他们使用托管合约(在满足特定条件之前持有特定货币的货币存储空间)以便在最终交易之前存储他们的以太币。
爱丽丝想雇用鲍勃建造一个露台。 为了让双方都诚实以太坊建立时间,Alice 同意在托管合约中存入平台资金,Bob 也同意在合约中存入相同数量的资金。
2. 鲍勃完成露台后,爱丽丝很高兴! 她允许智能合约释放资金。
3. Bob 取出抵押的 1 ETH,Alice 支付的 1 ETH
在更复杂的托管合约中,如果 Bob 没有完成露台,或者他做得很差,可以在合约代码中写入条款,将 Bob 的抵押权释放给 Alice。
以太网络
到目前为止,我们已经描述了主网(或mainnet),以太坊的公共链。 任何人都可以创建一个节点并开始验证交易; 因此,它是高度安全的。 链上数据,包括账户余额和交易,都是公开的。 网络上的以太币具有市场价值,可以兑换成其他数字货币,或美元等法定货币。
除了主网络之外,还有测试网络(本地和公共)以及专用网络。
本地测试网络
以太坊区块链可以在本地开发进行模拟。 本地测试网络可以即时处理交易,以太币可以按需分发。 存在一系列以太坊模拟器; 我们推荐我们自己的:Ganache。
公共测试网络
这些测试网存在并且是公开的。 这些网络上的以太币仅用于测试目的,没有货币价值。 由于这些网络是公开的,因此硬币是免费的,开发人员需要在最终将以太坊应用程序部署到主网上之前使用它们进行测试。
*Ropsten:由以太坊基金会创建的官方测试网。
私有/企业网络
私有以太坊网络允许各方共享数据而无需公开访问。 在以下情况下,私有区块链是一个很好的选择:
基于以太坊的私有链也运行 EVM,因此与 Truffle 和其他开发工具兼容。 最初由摩根大通开发的 Quorum 是一个很好的例子,它也与 Truffle 兼容。 在我们的博客上阅读有关在 Quorum 上使用 Truffle 的更多信息。
Dapps(分布式应用程序)
大多数(尽管不是全部)使用智能合约的应用程序都进行称为 dapps 的后端处理,dapps 是分布式应用程序的简称。 这些 dapp 的用户界面使用您可能已经知道的语言:HTML、CSS 和 JavaScript。 这些文件可以托管在传统的可信 Web 服务器上,也可以托管在 Swarm 或 IPFS 等无需信任的分布式文件服务上。
鉴于以太坊区块链的优势,dapps 可以成为许多行业的解决方案,包括但不限于:
......这个名单一直在继续。 我们将在短期内提供有关如何构建您自己的 dapp 的详细教程,因此请收藏此教程并继续关注。
原文链接: