什么是以太坊?什么是智能合约?

以太坊是一个分布式的计算平台。它会生成一个名为Ether的加密货币。程序员可以在以太坊区块链上写下“智能合约”,这些以太坊智能合约会根据代码自动执行。

以太坊是什么?

以太坊经常与比特币相提并论,但情况却有所不同。比特币是一种加密货币和分布式支付网络,允许比特币在用户之间转移。

相关:什么是比特币?它是如何工作的?

以太坊项目有更大的目标。正如Ethereum网站所说,“以太坊是一个运行智能合约的分布式平台”。这些智能合约运行在“以太坊虚拟机”上,这是一个由所有运行以太网节点的设备组成的分布式计算网络。

“分布式平台”部分意味着任何人都可以建立并运行以太坊节点,就像任何人都可以运行比特币节点一样。任何想要在节点上运行“智能合约”的人都必须向Ether中的这些节点的运营商付款,这是一个与以太坊相关的加密货币。因此,运行以太网节点的人提供计算能力,并在以太网中获得支付,这与运行比特币节点的人提供哈希能力并以比特币支付的方式类似。

换句话说,虽然比特币仅仅是一个区块链和支付网络,但以太坊是一个分布式计算网络,其区块链可以用于许多其他事情。以太坊白皮书中提供了详细信息。

以太是什么?

以太网是与以太坊区块链相关的数字标记(或者说就是加密货币)。换句话说,以太是代币,以太坊是平台。但是,现在人们经常交替使用这些术语。例如,Coinbase允许你购买以太坊代币(Ethereum),即代表以太币代币。

这在技术上就是“altcoin”,这实际上意味着一个非比特币加密货币。和比特币一样,Ether也受到分布式区块链支持 - 在这种情况下是以太坊区块链。

想要在以太坊区块链上创建应用程序或以太坊 智能合约的开发人员需要以太网代币来支付节点来托管它,而基于以太坊的应用程序的用户可能需要以太网来支付这些应用程序中的服务费用。人们也可以在以太坊网络之外销售服务,并接受以太网支付,或者可以在交易所以现金形式出售以太币代币 - 就像比特币一样。

为什么分布式应用程序有趣?

 
以太坊区块链应用程序

比特币区块链存储比特币交易的历史,就是这样。以太坊区块链将以太币代币存储在人们的钱包中,但它还存储每个智能合约的最新状态以及每个智能合约的代码。

区块链是存储在多个位置的分布式账本,所以这意味着智能合约数据由那些以太坊节点存储。如果您在区块链上创建“智能合约”(也称为应用程序),则会以分布式的方式进行存储和运行。

为了比较,请考虑我们今天使用的许多应用程序。这包括Gmail等电子邮件应用程序,Microsoft OneNote等笔记记录应用程序,以及使用应用程序并将数据存储在公司服务器上的任何其他应用程序。如果存储数据的公司禁止您的帐户,关闭应用程序或停业,那么除非您有脱机备份副本,否则您将丢失该应用程序中的所有数据。

如果您使用的是构建在以太坊之上的应用程序,组成应用程序的代码(智能合约代码)和个人数据(智能合约的状态)将存储在区块链中。每当您使用应用程序并更改数据时,所有以太坊节点都会更新智能合约的状态。这意味着没有中央“失败点”可能会阻止您访问数据或关闭您使用的应用程序。您的数据和应用程序的代码本身将在全球范围内备份,并且没有人可以将所有这些备忘录脱机。当然,您的数据将通过区块链进行加密,所以没有其他人可以读取它。

什么是智能合约?

智能合约是在以太坊虚拟机上运行的应用程序。这是一个分布的“世界计算机”,计算能力由所有以太坊节点提供。提供计算能力的任何节点都将以Ether数字货币作为资源支付。

他们被命名为智能合约,因为您可以编写满足要求时自动执行的“合同”。

例如,想象一下在以太坊之上建立一个类似Kickstarter的众筹服务。有人可以建立一个以太坊智能合约,将资金汇集到别人身上。这个智能合约可以写成这样的话:当将100,000美元的货币添加到池中时,它将全部发送给收件人。或者,如果一个月内没有达到100,000美元的门槛,所有的货币都将被发回给货币的原始持有人。当然,这将使用以太币代替美元。

这一切都将根据智能合同代码进行,智能合同代码可自动执行交易,而无需可信任的第三方持有货币并签署交易。例如,Kickstarter在5%的付款处理费之上收取5%的费用,这意味着在$ 100,000的众筹项目中将收取8000到10000美元的费用。智能合约不需要向像Kickstarter这样的第三方支付费用。

智能合约可以用于许多不同的事情。开发人员可以创建智能合约,为其他智能合约提供功能,类似于软件库的工作方式。或者,智能合约可以简单地用作应用程序来存储以太坊区块链上的信息。

为了真正执行智能合同代码,有人必须发送足够的以太网代币作为交易费 - 多少取决于所需的计算资源。这为以太坊节点参与并提供计算能力付出了代价。

CryptoKitties使用智能合约

 
CryptoKitties 智能合约

在以太坊网络上使用智能合约构建的最知名的应用之一是CryptoKitties,它自称是“世界上第一款基于区块链技术构建的游戏”。

从本质上讲,CryptoKitties是存储在以太坊区块链中的一种数字“可收集”形式。 CryptoKitties提供了在Ethereum网络上存储和交换数字项目的能力的良好演示。

新的CryptoKitties是通过“繁殖”生成的。这涉及到选择两个基本的CryptoKitties并花费以太币代币运行智能合约。合约使用两只选择的猫来产生新的CryptoKitty。这些小猫和繁殖过程的细节存储在以太坊区块链的公共账本上。

您可以“拥有”CryptoKitties,它们存储在以太坊区块链分类账中。您可以将其出售或交易给其他人,也可以购买。这与使用允许您购买,交易和养殖猫的智能手机应用程序不同。这些通常会存储在应用程序自己的服务器上,如果公司关闭应用程序或禁止您的帐户,则可能会丢失珍贵的数字宠物。但是,因为CryptoKitties存储在区块链中,所以不会发生。没有人能把你的小猫带走。

2017年12月 - 巧合的是,在比特币的历史最高价格附近,人们花费了超过1200万美元的CryptoKitties的Ether费用,而最昂贵的CryptoKitty售价约为12万美元。

像以太网,比特币和昂贵的绘画一样,CryptoKitties值得人们准备为它们付钱。

原文:howtogeek.com/350322/what-is-ethereum-and-what-are-smart-contracts
作者: Chris Hoffman

以太坊虚拟机EVM介绍,智能合约详解 指的是“套以数字形式指定的承诺,包括合约参与方可以在上面执行这些承诺的协议”。早在1994年,美国计算机科学家尼克·萨博(Nick Szabo)就提出了智能合约的概念。智能合约种基于区块链技术的自动执行合约的计算机程序。它们是组以代码形式编写的、在区块链上运行的规则逻辑。智能合约定义了在满足特定条件时应该执行的操作,而无需中介方的干预。以太坊是最为著名的支持智能合约区块链平台之。在以太坊中,智能合约是用种称为Solidity的编程语言编写的。 阅读详情

相关推荐

起学:以太坊智能合约开发

课程介绍 无论在科技圈还是金融圈,“区块链”俨然成了最热的词汇。2016年,区块链写入了国家的十三五规划中;2017年,央行基于区块链技术的数字票据交易平台测试成功;同年,工信部发布了首个区块链参考架构标准。
经过2017年如火如荼的投资盛宴,区块链开始逐渐走向应用落地,业内都在积极探索使用场景。如金融领域的资产贸易、支付系统、金融服务,其他领域的电子商务、社交通讯、游戏娱乐等等。同时,BAT、迅...

GitChat 1万+

以太坊智能合约开发教程:从基础到实践

智能合约是指在区块链上自动执行合约条款的代码。当特定条件满足时,智能合约会自动执行指定的操作。与传统合约不同,智能合约不需要中介方(如律师或银行)来执行,而是通过去中心化的网络加密技术来确保其执行。智能合约的执行是透明的、可追溯的且不可篡改的,这使得它们在去中心化金融(DeFi)、供应链管理、数字身份等领域有广泛应用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1320

以太坊智能合约之如何执行智能合约

区块链技术在顶级技术中占据主导地位的主要原因在于其去中心化。虽然区块链的主要目的是在没有中心的情况下维护交易记录,但为了实现自动化,智能合约被引入。那么在写完智能合约之后呢?在本文的这个以太坊智能合约教程中,我们将了解如何使用Truffle Ethereum以太坊专用网络来执行智能合约。 我们将在以太坊智能合约教程中查看以下主题: 使用案例:保险流程中的智能合约 智能合约的好处 安装先决条件 ...

mongo_node的专栏 4043

以太坊智能合约:从概念到实操指南

智能合约组自动执行预定义规则的代码,类似于我们生活中的自动售货机。当用户选择商品并支付后,售货机会自动释放商品,用户不必担心交易的信任问题,因为售货机按照预设的程序操作。类似地,信用卡的自动还款也是种实现了智能合约逻辑的机制:在设定自动还款之后,到期时系统会自动扣款。智能合约的这概念,在数字货币区块链领域得到了更深入的应用发展。2008年,个化名为中本聪的人或团队发表了《比特币:种点对点的电子现金系统》论文,这标志着比特币的诞生。

Reveone的博客 4878

以太坊(3)——智能合约

美链(Beauty Chain)个部署在以太坊上的智能合约,有自己的代币BEC。ICO:Initial Coin Offering没有自己的区块链,代币的发行、转账都是通过调用智能合约中的函数来完成的可以自己定义发行规则,每个账户有多少代币也是保存在智能合约的状态变量里ERC 20(Ethereum Request for Comments)是以太坊上发行代币的个标准,规范了所有发行代币的合约应该实现的功能遵循的接口。

Hock2023的博客 4813

以太坊智能合约开发-《精通以太坊智能合约开发》学习总结实践

文章目录初探以太访智能合约remix小demo以太坊核心概念交易/事务( Transaction )区块参考 初探以太访智能合约 remix小demo https://remix.ethereum.org 目前尝试 Solidity 编程的最好方式是使用 Remixo Remix 是个基于浏览器的 Solidity IDE , 它集成了 Solidity 编译器、运行环境 ,以及调试发布工具。 使用浏览器打开网址 https://remix.ethereum.org 官方demo // SPDX-Lic

西京刀客 4001

以太坊如何部署智能合约

以太坊社区开发并开源了非常好用的在线 Solidity 集成开发环境Remix,可以方便的在 Remix 中编写、部署、测试智能合约,Remix 提供了强大的自动完成,语法高亮,实时编译检查错误等。打开remix,界面如下: 在代码区输入下合约代码: pragma solidity ^0.4.21; contract Phone { string public model; ...

zengchen73的专栏 1万+

以太坊智能合约

什么是智能合约智能合约是运行在区块链上的段代码,代码的逻辑定义了合约的内容。 智能合约的账户保存了合约当前的运行状态 balance:当前余额 nonce:交易次数 code:合约代码 storage:存储,数据结构是颗MPT树 Solidity是智能合约最常用的语言,语法上与JavaScript很接近 example 【payable】 以太坊规定如果合约账户要能接受外部转账,必须标注payable。 调用智能合约 如何调用智能合约 创建个交易,接收地址为要调用的呢个智能合约的地址,dat

handsomeyinjun的博客 3330

以太坊智能合约Demo

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供个官方实战demo示例快速入门,用demo例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力。智能合约其实是“执行合约条款的计算机交易协议”。区块链上的所有用户都可以看到基于区块链智能合约。 维基上说智能合约(英语:Smart...

weixin_44172023的博客 1058

使用Go语言以太坊智能合约交互

尽管最近遇到了些麻烦,但以太坊仍然是区块链领域内智能合约的最大参与者,这似乎不会很快改变。 在我看来,技术本身具有很大的潜力,是从学术的角度看很有意思,但正如上面提到的问题之前的许多问题是区块链技术方面的,智能合约,特别是具有Solidity的以太坊生态系统还是不太成熟的,并没有为prime-time生产用例做好准备。 然而,这是个学习了解这项技术的好时机,并且当它达到严格应用程序的可接受...

mongo_node的专栏 2316

真正理解以太坊智能合约

链客,专为开发者而生,有问必答! 此文章来自链客区块链技术问答社区,未经允许拒绝转载。 你可能听说过“智能合约”,甚至可能知道它们是在区块链上运行的代码。 但是你如何才能在区块链上运行代码?这不是可以轻易理解的简单概念。 本文解释了智能合约是如何在以太坊区块链上运行的。对编程的基础理解将会有所帮助,因为本文包含了些用于举例的简单代码。为了清晰起见,本文将其中的些技术细节稍微进行了简化,但概念...

weixin_44172023的博客 474

以太坊智能合约ABI详解

以太坊生态系统中, ABI 是从区块链外部与合约进行交互以及合约与合约间进行交互的种标准方式。本文让我们了解智能合约的 ABI 是什么。

StevenX5 8679

基于以太坊智能合约开发Solidity(内存&结构体篇)

本文介绍了Solidity中数据存储位置(storage/memory/calldata)的概念与使用规则:1)storage变量永久存储在区块链上,memory变量在函数执行后释放;2)函数参数默认为memory,状态变量强制为storage;3)storage引用可修改区块链数据。详细讲解了结构体的定义、初始化类型转换规则,包括storage与memory间的四种转换方式。还介绍了枚举类型的基本用法。通过代码示例展示了不同存储位置变量的操作特性及注意事项,为智能合约开发提供了重要参考。

Zevalin的博客 1552

基于以太坊智能合约开发Solidity(函数&继承篇)

本文介绍了Solidity智能合约开发中的核心概念,主要包括: 函数重载:允许同名函数通过参数类型数量区分,但不考虑返回值类型。需要注意参数歧义问题。 命名参数:支持通过形参名传参,提高多参数时的代码可读性。 返回值特性:支持命名返回值、多返回值,以及通过返回值交换数据等灵活用法。 变量作用域与生命周期:遵循块级作用域规则,生命周期从定义到作用域结束。 构造函数:0.5+版本使用constructor关键字定义,在合约部署时执行。 函数修改器(modifier):用于函数前置条件检查,支持参数化多重修饰

Zevalin的博客 1653

web3-以太坊智能合约基础(理解智能合约Solidity)

以太坊智能合约基础》摘要 本文介绍了Solidity智能合约的基本概念核心特性。Solidity类似于Java/C等静态语言,编译为EVM字节码运行。主要知识点包括:1)数据类型分为值类型、引用类型映射类型;2)函数签名与构造函数机制;3)可见性修饰符(public/private)状态修改标识(view/pure);4)事件机制用于日志记录;5)调用外部合约的方法;6)原生代币处理需使用payable修饰符;7)可读取区块时间等元数据。文章通过类比Java等传统语言,帮助开发者快速理解Solidi

m0_46421522的博客 1345

以太坊智能合约是什么?

以太坊是最早提出做智能合约的平台。由于以太坊区块链被普遍接受,因此多数区块链智能合约采取与以太坊相似的设计。本文将详细介绍以太坊智能合约:它是什么?它有什么用?

unber的博客 1737

web3系列———2.以太坊智能合约

2分钟彻底搞懂以太坊智能合约

future_M的博客 1655
上一篇: 什么是以太坊?什么是智能合约?
下一篇: 基于以太坊的58同城 | DApp开发与应用案例
落叶无声9
博客等级 码龄12年 442粉丝 343原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值