Hero Circle Shape
Hero Moon Shape
Hero Right Shape
tokenpocket官网版下载|智能合约 区块链

tokenpocket官网版下载|智能合约 区块链

  • 作者: tokenpocket官网版下载
  • 2024-03-09 20:52:01

区块链:一文读懂智能合约 - 知乎

区块链:一文读懂智能合约 - 知乎切换模式写文章登录/注册区块链:一文读懂智能合约币学布道区块链今天币学君给大家整理了智能合约的知识重点,以及币学君对智能合约的见解,让你一文读懂智能合约。一、智能合约的概念以太坊白皮书里面谈到一个最重要的话题,就是智能合约的普及。那么,什么是智能合约呢?在现实生活中跟智能合约最贴近的例子就是自动售货机。放一个硬币进去售货机,点击选项,售货机里对应的商品就会掉下来,这就是智能合约。“智能合约”概念由计算机科学家、加密大师尼克·萨博于1993年左右提出。智能合约本质上的抽象概念是在个人、机构和财产之间形成关系的一种公认工具,是一套形成关系和达成共识的协定。智能合约是能够自动执行合约条款的计算机程序,智能合约由代码进行定义,并有代码强制执行,完全自动且无法干预。智能合约事前执行,不像传统合约一样事后执行。智能合约3要素:自治:自治表示合约一旦启动就会自动运行,不需要它的发起者进行任何干预;自足:通过提供服务或发行资产来获取资金,但需要时也会使用这些资金;去中心化:不依赖单个中心化的服务器,而是分布式的,通过网络节点来自动运行。二、智能合约与传统合约的区别智能合约与传统合约(如法律合约)有相似之处,比如均需要明确合约参与者的权利、义务,违约方均会受到惩罚等。但是智能合约与传统合约存在着显著的区别:自动化维度:智能合约可以自动判断触发条件,传统合约需要人工判断触发条件。主客观维度:智能合约适合客观性请求的场景,传统合约适合主观性请求的场景。成本维度:智能合约的执行成本低于传统合约。执行时间维度:智能合约属于事前预定、预防执行模式。违约惩罚维度:智能合约依赖于抵押品、保证金、数字财产等具有数字化属性的抵押资产,一旦违约,参与者的资产将遭受损失。适用范围维度:智能合约技术可全球采用,适用于全球范围。三、智能合约与区块链的关系尼克·萨博提出的关于智能合约的工作理论迟迟没有实现,一个重要原因是因为缺乏能够支持编程合约的数字系统和技术。而区块链技术的出现解决了这一问题,也可以说,智能合约是区块链技术的特性之一。区块链技术的去中心化账本功能可以被用来创建、确认、转移各种不同类型的资产及合约。几乎所有类型的金融交易都可以改造成在区块链上使用,包括股票、私募股权、众筹、债券和其他类型的金融衍生品,如期货、期权等。四、智能合约的工作原理基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。基于区块链的智能合约构建及执行分为如下几步:多方用户共同参与制定一份智能合约;合约通过P2P网络扩散并存入区块链;区块链构建的智能合约自动执行。从本质上讲,这些智能合约的工作原理类似于计算机程序的if- then语句。即智能合约只需要提前规定好合约内容,程序就会在触发合约条件的时候自动执行合约内容,币学君来给大家举个例子:If Tomorrow rains:Send ( Bixue ¥100)Else:Send (Vitalik ¥100)以上就是币学君跟Vitalik规定合约,内容为:如果明天下雨,则合约给币学君打100元;否则,100元则会打到Vitalik的账户上。五、智能合约应用范例1. 房屋租赁:房东和租户构建一个房屋租赁合约,房东每月为房屋生成一次开锁密钥,当租户把每月的租金打到房东账号后,系统通过智能合约自动把开锁密钥发给租户。2. 代币系统:A发起一个智能合约项目,B把比特币或以太坊转账到A的钱包地址后,智能合约自动把A发行的一定数量的代币发送给B。3. 作物保险:例如农民A购买了一亩地收成3000斤土豆的金融衍生品,那么如果没有达到3000斤农民A将自动收到赔付资金;而如果收成超过了3000斤,即使没有赔付资金,他也很开心,因为作物收成良好。4. 博彩发行:用户获取博彩信息,按照博彩规则向博彩钱包地址充值,产生投注记录,当用户中奖后,智能合约自动把奖金发送到用户的钱包。六、对智能合约的几种误解1. 智能合约与协议合同一样?不一样,智能合约能够让违反协议的一方付出昂贵的代价,是通过数字形式掌控现实世界的资产。2. 智能合约具有法律效力?智能合约目前并不能等同于法律,但是它可以代表法律协议的一部分。3. 智能合约包括人工智能?智能合约本身并不是真的非常智能,也不能等同于人工智能,智能合约实际上是运行在区块链上的软件代码。4. 智能合约只能为高水平软件开发者所用?不是,允许商业或个人用户通过图形界面或简单的文本语音输入来配置智能合约。5. 智能合约存在应用程序限定?智能合约几乎可以应用到所有状态随着时间而改变的食物,并不会受应用程序的限定,参与者类型也多种多样。七、智能合约的未来展望智能合约是区块链最重要的特性之一,也是区块链能够被称为颠覆性技术的主要原因,更是各国央行考虑使用区块链技术发行数字货币的重要考量因素。智能合约是可编程货币、可编程金融的技术基础,多重签名智能合约也是未来的一个趋势。智能合约在今后可能会让人类社会结构产生重大变革。发布于 2018-09-26 10:14智能合约金融区块链(Blockchain)​赞同 8​​添加评论​分享​喜欢​收藏​申请

智能合约简介 | ethereum.org

简介 | ethereum.org跳转至主要内容学习用法构建参与研究搜索​​​​语言 ZH帮助更新此页面本页面有新版本,但现在只有英文版。请帮助我们翻译最新版本。翻译页面没有错误!此页面未翻译,因此特意以英文显示。不再显示Change page概述基础主题以太坊简介以太币简介去中心化应用程序简介Web2 与 Web3 的对比帐户交易区块以太坊虚拟机 (EVM)操作码Gas费用节点和客户端运行节点客户端多样性节点即服务节点架构轻客户端归档节点引导节点网络共识机制工作量证明矿工挖矿算法Dagger-HashimotoEthash权益证明Gasper弱主观性认证权益证明机制的奖励和惩罚权益证明攻击与防御密钥权益证明与工作量证明提出区块权益正明常见问题以太坊堆栈堆栈简介智能合约智能合约语言智能合约结构智能合约库测试用智能合约编译智能合约部署智能合约验证智能合约升级智能合约智能合约安全性智能合约形式化验证可组合性开发网络开发框架以太坊客户端APIJavaScript API后端APIJSON-RPC数据和分析区块浏览器存储集成开发环境 (IDE)编程语言DartDelphi.NETGolangJavaJavaScriptPythonRubyRust语言高级链桥标准令牌标准ERC-20:同质化代币ERC-721:非同质化代币 (NFT)ERC-777ERC-1155ERC-4626最大可提取价值 (MEV)预言机缩放乐观卷叠零知识卷叠状态通道侧链以太坊 Plasma 扩容解决方案Validium数据可用性网络层网络地址门户网络数据结构与编码默克尔前缀树递归长度前缀编码 (RLP)简单序列化 (SSZ)Web3 密钥存储定义设计基础设计和用户体验简介智能合约简介上次修改时间: , 2024年2月20日查看贡献者在本页面什么是智能合约?前置要求数字自动售货机无需准入性可组合性局限性多重签名合约智能合约资源延伸阅读什么是智能合约?智能合约只是一个运行在以太坊链上的一个程序。 它是位于以太坊区块链上一个特定地址的一系列代码(函数)和数据(状态)。智能合约也是一个以太坊帐户,我们称之为合约帐户。 这意味着它们有余额,可以成为交易的对象。 但是,他们无法被人操控,他们是被部署在网络上作为程序运行着。 个人用户可以通过提交交易执行智能合约的某一个函数来与智能合约进行交互。 智能合约能像常规合约一样定义规则,并通过代码自动强制执行。 默认情况下,你无法删除智能合约,与它们的交互是不可逆的。前置要求如果你刚刚入门或寻找技术含量较低的介绍,我们推荐我们的智能合约简介。确保在你已深入了解帐户、交易和以太坊虚拟机,然后再开始学习智能合约。数字自动售货机也许对于智能合约最恰当的比喻是自动售货机,就像 Nick Szabo(opens in a new tab) 描述的那样。 有了正确的投入,就保证了某些产出。要从售货机中获取零食:1money + snack selection = snack dispensed这种逻辑以程序的形式写入自动售货机。像自动售货机一样,智能合约也有逻辑编程到其中。 这里有一个简单的例子,说明了如果售货机是一个用 Solidity 编写的智能合约将会是什么样子:1pragma solidity 0.8.7;23contract VendingMachine {45 // Declare state variables of the contract6 address public owner;7 mapping (address => uint) public cupcakeBalances;89 // When 'VendingMachine' contract is deployed:10 // 1. set the deploying address as the owner of the contract11 // 2. set the deployed smart contract's cupcake balance to 10012 constructor() {13 owner = msg.sender;14 cupcakeBalances[address(this)] = 100;15 }1617 // Allow the owner to increase the smart contract's cupcake balance18 function refill(uint amount) public {19 require(msg.sender == owner, "Only the owner can refill.");20 cupcakeBalances[address(this)] += amount;21 }2223 // Allow anyone to purchase cupcakes24 function purchase(uint amount) public payable {25 require(msg.value >= amount * 1 ether, "You must pay at least 1 ETH per cupcake");26 require(cupcakeBalances[address(this)] >= amount, "Not enough cupcakes in stock to complete this purchase");27 cupcakeBalances[address(this)] -= amount;28 cupcakeBalances[msg.sender] += amount;29 }30}显示全部 复制就像自动售货机让厂商不再需要员工一样,智能合约可以在许多行业中取代中间人。无需准入性任何人都可以编写智能合约并将其部署到区块链网络上。 你只需要学习如何用智能合约语言编码,并有足够的以太币来部署你的合约。 部署智能合约在技术上是一笔交易,因此就像你需要为简单的以太币转账支付燃料费一样,你也需要为部署智能合约支付燃料费。 但是,合约部署的燃料成本要高得多。以太坊提供了对开发者友好的智能合约编程语言:SolidityVyper关于语言的更多信息然而,智能合约必须要先编译才能部署,以便以太坊虚拟机可以解释并存储它们。 关于编译的更多信息可组合性智能合约在以太坊上公开,并且可以看成开放应用程序接口。 这意味着你可以在自己的智能合约中调用其他智能合约,以大幅扩展可能的功能。 合约甚至可以部署其他合约。了解关于智能合约可组合性的更多信息。局限性智能合约本身无法获取有关“现实世界”事件的信息,因为它们无法从链下来源检索数据。 这意味着它们无法对现实世界中的事件作出响应。 这是设计使然。 因为依赖外部信息可能会影响共识,而共识对安全性和去中心化而言十分重要。然而,对于区块链应用程序来说,能够使用链下数据非常重要。 解决方案是预言机,它们是将链下数据引入并供智能合约使用的工具。智能合约的另一个限制是最大合约大小。 智能合约最大可达 24 KB,否则会消耗完燃料。 可以使用钻石模式(opens in a new tab)来规避它。多重签名合约多重签名合约是需要多个有效签名才能执行交易的智能合约帐户。 这对于避免持有大量以太币或其他代币的合约出现单点故障非常有用。 多重签名还可以在多方之间划分合同执行和密钥管理的责任,并防止丢失单个私钥导致不可逆转的资金损失。 由于这些原因,多重签名合约可用于简单的去中心化自治组织治理。 多重签名需要 M 个可能的可接受签名中的 N 个签名才能执行(其中 N ≤ M,并且 M > 1)。 普遍使用 N = 3, M = 5 和 N = 4, M = 7。 4/7 多重签名需要七个可能的有效签名中的四个。 这意味着即使失去了三个签名,资金仍然可以收回。 在这种情况下,这也意味着必须得到大多数密钥持有人的同意和签名才能执行合约。智能合约资源OpenZeppelin 合约** - 安全智能合约开发库。**openzeppelin.com/contracts/(opens in a new tab)GitHub(opens in a new tab)社区论坛(opens in a new tab)延伸阅读Coinbase:什么是智能合约?(opens in a new tab)Chainlink:什么是智能合约?(opens in a new tab)视频:智能合约简介(opens in a new tab)back-to-top ↑本文对你有帮助吗?是否前一页堆栈简介下一页智能合约语言编辑页面(opens in a new tab)在本页面什么是智能合约?前置要求数字自动售货机无需准入性可组合性局限性多重签名合约智能合约资源延伸阅读网站最后更新: 2024年2月16日(opens in a new tab)(opens in a new tab)(opens in a new tab)使用以太坊查找钱包获取以太币Dapps - 去中心化应用二层网络运行节点稳定币质押ETH学习学习中心什么是以太坊?什么是以太币 (ETH)?以太坊钱包Gas fees以太坊安全和预防欺诈措施什么是 Web3?智能合约以太坊能源消耗以太坊路线图以太坊改进提案 (Eip)以太坊的历史以太坊白皮书以太坊词汇表以太坊治理区块链桥零知识证明测试中心开发者开始体验相关文档教程通过编码来学习设置本地环境生态系统社区中心以太坊基金会以太坊基金会的博客(opens in a new tab)生态系统支持方案(opens in a new tab)以太坊漏洞悬赏计划生态系统资助计划以太坊品牌资产Devcon(opens in a new tab)企业级应用主网以太坊私密以太坊企业级应用关于ethereum.org关于我们工作机会参与贡献语言支持隐私政策使用条款缓存政策联系我们(opens in a new t

什么是智能合约?一文带你读懂智能合约 - 知乎

什么是智能合约?一文带你读懂智能合约 - 知乎切换模式写文章登录/注册什么是智能合约?一文带你读懂智能合约老韭菜01智能合约,是一段写在区块链上的代码,一旦某个事件触发合约中的条款,代码即自动执行。也就是说,满足条件就执行,不需要人为操控。简单来说,智能合约就是一种把我们生活中的合约数字化,当满足一定条件后,可以由程序自动执行的技术。我们的生活中处处充满着合约,就好比你跟我做了一个约定,我们订好了奖惩措施,但由于种种原因可能没法履行其中的条款,出现了无法履约的情况,而在进入赔付环节,往往会出现毁约,失约,耍赖的情况,最后弄得有理说不清。但是如果我们把约定通过代码的形式,录入区块链中,一旦触发约定时的条件,就会有程序来自动执行,这就是智能合约。 智能合约是区块链中四大核心技术之一,这个概念最开始是在1994年,由知名密码学家尼克·萨博提出的,可由于技术以及其他的一些原因一直都没有落地,哪怕到了今天,智能合约已经在互联网中很多的应用,比如自动还款,无人机售货等等,也多是局限在个人和机构之间的智能合约,个人和个人之间的智能合约几乎没有,原因就在于“信任”问题,我们会发现,只要谈起合约,大多数都是陌生人跟陌生人之间有这种需求,而且还跟钱有关系,如果在没有第三方做担保的情况下我们之间做了个约定,我把钱打给你,结果你毁约了,不承认怎么办?所以智能合约一直没办法在个人与个人之间普及,后来随着区块链的出现,人们发现,区块链与智能合约十分的契合,因为区块链的很多特点,比如去中心化,数据的不可篡改等,可以从技术的角度,去解决陌生人之间的信任问题,这才使智能合约大规模的应用成为可能,这一阶段的开始以以太坊的诞生为标志。在区块链的基础上,以太坊应用了智能合约技术。智能合约使得以太坊可以实现更多功能,智能合约是一个非常重要的应用,于是,慢慢的,智能合约就成了区块链的核心技术之一。智能合约有很多的优势第一 他去掉了中介,可以完全依托技术让用户之间自主建立合约。第二 透明公平 智能合约会用代码将条件写得清清楚楚并记录在区块链上,整个过程由程序执行,连包括编写这个代码的开发者都不能篡改。第三 灵活 让用户之间可以自由的建立合约,哪怕是与一个陌生的外国人也可以通过智能合约建立联系,总的来说,智能合约是区块链的核心技术之一,不仅在区块链中起到了执行的作用,他更是区块链的一个应用发展方向,拓宽了区块链的使用场景,正是因为他的存在,才使区块链有了一个更加广阔的舞台。 说了这么多很多朋友也关心说智能合约有哪些实际的应用场景?生活中常见的自动售货机就是一个很好的例子。在正常运行的状态下投入硬币后触发履行行为,释放买方选择的饮料并且这个是不可逆转的履行行为。今后,智能合约系统在投票、金融、房地产、物联网、供应链、能源、公共服务领域等方面都具有广泛的应用方案。本篇内容为水滴云整理未经允许请勿转载关注水滴云链了解更多Filecoin&IPFS资讯发布于 2021-09-24 16:00智能合约​赞同 15​​13 条评论​分享​喜欢​收藏​申请

区块链上的智能合约是什么? | IBM

区块链上的智能合约是什么? | IBM

区块链上的智能合约是什么?

智能合约是存储在区块链上的数字合约,在满足预先确定的条款和条件时会自动执行这些合约

已定义智能合约

智能合约只是存储在区块链上的程序,在满足预先确定的条件时会运行这些程序。 智能合约通常用于自动执行协议,以便所有参与者都可以立即确定结果,而无需任何中间人参与,也不会浪费时间。 智能合约还可以自动完成工作流程,在满足条件时触发下一个操作。

了解有关 IBM Blockchain 的更多信息

了解有关区块链技术的更多信息

智能合约如何工作

智能合约工作时遵循简单的“if/when…then…” 语句,这些语句被写入区块链上的代码中。 当满足并验证预先确定的条件时,计算机网络将执行操作。  这些操作可能包括向相应的各方发放资金、登记车辆、发送通知或开具凭单。 然后,在交易完成时会更新区块链。 这意味着交易无法更改,只有获得许可的各方才能看到结果。

在一个智能合约中,可以根据需要设立多项规定来让参与者满意,以便圆满地完成任务。 要确立条款,参与者必须确定交易及其数据在区块链上的表示方式,同意管理这些交易的“if/when...then…” 规则,探索所有可能的例外情况,并为解决争议定义一个框架。

然后,开发人员可以对智能合约进行编程,尽管使用商业区块链的企业已越来越多地提供模板、Web 界面和其他在线工具来简化智能合约的构建。

什么是商业区块链?

智能合约的优势

速度、效率和精确度

一旦满足条件,便会立即执行合约。 因为智能合约是数字化和自动化的,所以无需处理文书工作,也不必花时间来调和通常因手动填写文档而导致的错误。

信任和透明度

因为没有第三方参与,而且会在参与者之间共享加密的交易记录,所以不必质疑是否会为了个人利益而更改了信息。

安全

区块链交易记录经过加密,这使得它们很难被破解。 此外,由于每条记录都与分布式账本上的前后记录相关联,黑客必须改变整个链才能更改单个记录。

节省

智能合约避免了通过中介机构处理交易的需要,进而消除了相关的时间延迟和费用。

智能合约的应用

探索企业如何从主动区块链解决方案中的智能合约中获益

利用智能合约保障药物疗效

Sonoco 和 IBM 正在努力通过提高供应链透明度来减少救命药物运输过程中的问题。 Pharma Portal 由 IBM Blockchain Transparent Supply 提供支持,是一个基于区块链的平台,可通过供应链跟踪温控药品,进而在多方之间提供可信、可靠且准确的数据。

探索 IBM Blockchain Transparent Supply

在零售商/供应商关系中增进信任

家得宝使用区块链上的智能合约快速解决与供应商间的纠纷。 通过实时通信和提高供应链的可见性,他们正在加强与供应商间的关系,从而有更多的时间从事关键工作和创新。

了解家得宝如何建立信任

更快、更高效地开展国际贸易

通过加入由 IBM Blockchain 召集的贸易金融网络 we.trade,企业正在为全球贸易创建一个信任生态系统。 作为一个基于区块链的平台,we.trade 使用标准化的规则和简化的交易选项来减少摩擦和风险,同时简便交易流程,并为参与公司和银行扩大贸易机会。

探索区块链贸易金融解决方案

探索面向供应链的区块链解决方案

探索区块链贸易金融解决方案

智能合约相关解决方案

供应链透明度

创建区块链生态系统,以便与供应链合作伙伴共享数据,从而基于信任更高效地开展交易。

了解 IBM Blockchain Transparent Supply

贸易金融区块链

借助我们的网络召集专业知识和行业领先的平台,扫清看不见的增长障碍并重塑贸易和贸易金融。

了解贸易金融区块链

食品供应区块链

通过改善食品供应各个环节的可视性和问责制,帮助种植者、分销商和零售商建立信任,使我们的食品更加安全。

了解 IBM® Food Trust

智能合约资源

什么是区块链?

从头开始了解区块链的全部含义以及它如何让您的企业受益。 免费下载一份 IBM 的《区块链傻瓜书》指南副本。

区块链行业应用

借助 IBM Blockchain 消除摩擦、建立信任并创造新价值。 了解区块链如何为各个企业和行业解决问题并激发灵感。

区块链解决方案

您可以通过为供应链、全球贸易、国际支付、食品供应等带来革命性的信任和透明度,加入正在彻底改变行业的现有区块链网络。

IBM Blockchain Services

携手行业领先的区块链服务提供者共同创造。 我们可以帮助您建立以最佳技术为支撑的可扩展业务网络。

编写智能合约

IBM Blockchain Platform 支持用 Go 和 Node.js 编写的智能合约。 阅读本教程,了解如何开始编写在区块链上执行的编码业务逻辑、条款和条件。

在您的网络上部署智能合约

如果您正在运行 IBM Blockchain Platform 网络,本教程将指导您使用 Hyperledger Fabric 来编写、打包和部署智能合约。

智能合约后续步骤

浏览我们的参考指南,更深入地了解区块链的各个方面,包括工作方式、使用方法以及实施注意事项。

区块链主题

什么是区块链

区块链的优点

面向商业的区块链

区块链安全性

Hyperledger

Blockchain for good

区块链和物联网

如何理解区块链的智能合约? - 知乎

如何理解区块链的智能合约? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册区块链(Blockchain)如何理解区块链的智能合约?关注者89被浏览180,191关注问题​写回答​邀请回答​好问题​添加评论​分享​30 个回答默认排序Conflux中文社区价值比特 互信互享 ​ 关注智能合约,就是一段写在区块链上的代码,一旦某个事件触发合约中的条款,代码即自动执行。也就是说,满足条件就执行,不需要人为操控。举个生活中常见的例子,张三跟李四借了5w元钱。但是真的到了还钱的日子,李四去要钱,看着吃香喝辣的张三,他还说:兄弟手头紧,都不容易,宽限我几天。这时候李四只能哑巴吃黄连啊。智能合约就可以解决这类问题,当然前提是双方把借款金额、还款时间、对方绑定银行卡信息等打包进合约中。到了约定还款日,借款自动划到你的账户里。再举个例子,我们生活中的保险业务。不管是疾病险还是飞机延误险,如果把保单以及病历单,航班号等信息上链,当达到条件的时候,只能合约自动触发,自动理赔。既减少了人的纠纷和沟通,双方效率更高,摩擦和纠纷也会更少。智能合约的应用场景很多,协议签订,双方打款如果都自动触发。简化流程,进行更愉快的进行合作。发布于 2020-10-19 14:35​赞同 318​​25 条评论​分享​收藏​喜欢收起​二本谈币​​技术推广行业 技术员​ 关注简单点说,自能合约也就是智能合同,即达到某个条件自动执行的合同。本质上而言,其实就是一串代码而言,没什么神奇之处发布于 2022-04-12 23:01​赞同​​添加评论​分享​收藏​喜欢

智能合约是怎样运作的?三分钟读懂智能合约 - 知乎

智能合约是怎样运作的?三分钟读懂智能合约 - 知乎切换模式写文章登录/注册智能合约是怎样运作的?三分钟读懂智能合约币侠当今社会,执行合约需要耗费大量社会资源。比方说,A、B两家公司签订合同,后来A违反合同条约,导致B损失重大。B想要拿回属于自己的东西,于是向法院起诉。就算B打官司赢了,判决书生效后,他还需要向法院申请强制执行,包括立案,提供财产线索……整个流程下来,每个参与人都很憔悴,尤其是本来就是受害方的B。而智能合约能让这一切变得简单很多。智能合约和上述传统合约的区别,就在于“智能”,不涉及人类主观想法,一切皆代码。智能合约,就是一段写在区块链[1]上的代码,一旦某个事件触发合约中的条款,代码即自动执行。也就是说,满足条件就执行,管他愿不愿意。在《老友记》中有一集,瑞秋、莫妮卡和钱徳、乔伊打赌,如果男人们能猜中购物袋里装着什么,就给他们100美元。后来他们猜中了,但瑞秋和莫妮卡却赖账。不管钱徳怎样去讨要,女人们就是不给。这种情况下,钱徳和乔伊不可能去抢女生的钱包拿这100美元,只好认了。但如果有了智能合约,一旦男生们猜中,不管瑞秋和莫妮卡怎样耍赖,智能合约代码将自动执行,并把这100美元(真实的情况是数字货币)打到男生们的账户。如果说朋友之间的约定不需较真,那么放大到借5万块给亲戚、和房东签租1年、购买重大疾病险等与你切身利益相关的场景中呢?智能合约的工作原理:前文提到,智能合约是一段写在区块链上的代码。就像能做出好吃的蛋炒饭,并不需要亲自下蛋一样,本文不涉及代码怎么写,但可以讲讲智能合约的工作原理:构建 → 存储 → 执行1)智能合约由区块链内的多个用户共同参与制定,可用于用户之间的任何交易行为。协议中明确了双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。比方说,你把一套闲置的房子租给A,那么,这份智能租约中就规定了A必须在每月5号之前给你打房租、你必须在收到房租时马上给对方钥匙[2]等条款。2)一旦编码完成,这份智能合约就被上传到区块链网络上,即全网验证节点都会接收到你和A的租房合约。3)智能合约会定期检查是否存在相关事件和触发条件;满足条件的事件将会推送到待验证的队列中。假设A在4号提前打房租给你,这个事件就成了该合约的触发条件(每月5号以前)。4)区块链上的验证节点先对该事件进行签名验证[3],以确保其有效性;等大多数验证节点对该事件达成共识后,智能合约将成功执行,并通知用户。5)成功执行的合约将移出区块。而未执行的合约则继续等待下一轮处理,直至成功执行。部署到以太坊上的智能合约是要消耗以太币的。就好像把现实中的仲裁人、法官、执行人搬到了区块链上,尽管他们成了一行行的代码,但也是珍贵的计算机资源。智能合约也遵循“Less is more”,逻辑应尽可能地简单。逻辑越复杂,消耗的以太币就越多。根据区块链大神的说法,以太坊给常用的代码逻辑都规定了具体的价格。就好比你去买车,低配多少钱、高配多少钱,安装最先进的导航系统又多少钱,4S店已经规定好。既然执行要消费以太币,如何支付呢?这跟淘宝的直通车类似,商家提前存几千块进去,系统会自动执行(匹配推广),费用一旦用完,推广立即停下。智能合约也是预支付,为了合约顺利执行,宁愿提前多打一点以太币,都不要少给了。智能合约比淘宝推广还狠,如果预支付的以太币不足以支撑整个执行过程,就算进行到半路,合约也会回到初始状态;更郁闷的是,消耗的以太币也不会退回给合约发起人。智能合约有什么用?在区块链社会里,大家共同维护一个区块链账本,所有交易数据无法篡改、不可伪造,还能减少人工对账的出错概率和人力成本;随着智能合约普及,我们也会变得更加佛系。面对潜在的纠纷,无需自己出马,一切代码说了算。乘飞机买延误险,理赔就变得简单多了。投保乘客信息、航班延误险和航班实时动态均以智能合约的形式存储在区块链上。一旦航班延符合赔付标准,赔偿款将自动划账到投保乘客账户,保单处理十分高效,你也不需要跟工作人员费口舌、争论计赔时间等问题。假设你借了一大笔钱给亲戚,虽然打了白纸黑字的借条,但催款的时候,如果对方有一种坚持不要脸的精神,而你也没有撕破脸、或者把对方告上法庭的勇气,你就拿不回本属于自己的钱。智能合约也许是解决办法之一,当然前提是双方把借款金额、还款时间、对方绑定银行卡信息等打包进合约中。到了约定还款日,借款自动划到你的账户里。通过智能合约,真的就能拿回欠款吗?毕竟智能合约只在金融领域等方面开始有动作,还没有广泛融入普通大众的生活。这个乌托邦的设想,值得等待。未来已来,更多区块链最新干货,币圈行情,请关注币圈第一微信公众号:币侠 (ID:zongcuang666),带你走进财富自由之路!发布于 2018-03-11 15:55区块链(Blockchain)智能合约比特币 (Bitcoin)​赞同 42​​3 条评论​分享​喜欢​收藏​申请

智能合约 | ethereum.org

| ethereum.org跳转至主要内容学习用法构建参与研究搜索​​​​语言 ZH帮助更新此页面本页面有新版本,但现在只有英文版。请帮助我们翻译最新版本。翻译页面没有错误!此页面未翻译,因此特意以英文显示。不再显示首页/智能合约页面最后更新: 2023年12月8日在本页面传统合约中的信任问题数字自动售货机自动执行可预测的结果公开的记录隐私保护可查看的条款智能合约用例更愿意通过视频学习?延伸阅读智能合约简介智能合约是以太坊应用程序层的基石。 它们是存储在区块链上的计算机程序,遵循“如果...那么...”(IFTTT) 逻辑,并且保证按照其代码定义的规则执行,智能合约一旦创建就无法更改。Nick Szabo 创造了“智能合约”这一术语。 1994 年,他撰写了智能合约简介(opens in a new tab);1996 年,他撰写了对智能合约潜在功能的探索(opens in a new tab)。Szabo 构想了一个数字市场,在这个市场中,自动化的、通过加密学保证安全的流程使得交易和商业功能可在不需要可信中介的情况下进行。 以太坊上的智能合约将这一设想付诸实践。传统合约中的信任问题传统合约的最大问题之一是需要可信的个人来执行合约的结果。下面是一个例子:Alice 和 Bob 要进行一场自行车比赛。 假设 Alice 和 Bob 打赌 $10 元她会赢得比赛。 Bob 相信自己会成为赢家并同意下注。 最后,Alice 远远领先 Bob 完成了比赛,并且毫无疑问是赢家。 但 Bob 拒绝支付赌注,声称 Alice 一定是作弊了。这个荒唐的例子说明了所有非智能协议存在的问题。 即使协议条件得到满足(即你是比赛的获胜者),你仍然必须要信任对方会履行协议(即支付赌注)。数字自动售货机一个适合智能合约的简单比喻是自动售货机,其工作方式有点类似于智能合约 — 特定的输入保证预定的输出。你选择一种产品自动售货机显示出价格你付款自动售货机验证你的付款金额是否正确自动售货机给你提供产品只有在所有要求满足后,自动售货机才会提供你想要的产品。 如果你不选择产品或投入足够的钱,自动售货机将不会提供你选择的产品。自动执行智能合约的主要优点是在满足特定条件时确定地执行清晰的代码。 无需等待人来执行或商量结果。 这消除了对可信中介的需求。例如,你可以编写一个智能合约为孩子托管资金,并允许他们在特定日期后提取资金。 如果他们试图在指定日期前提取资金,智能合约将无法执行。 或者你可以编写一份合约,在你向经销商付款后它会自动授予你汽车的数字化所有权。可预测的结果传统合约比较含糊,因为它们依赖于人来解释和执行。 例如,两位法官可能会对合同有不同的解释,这可能会导致不一致的判决和不公平的结果。 智能合约消除了这种可能性。 然而,智能合约会根据合约代码中写入的条件精确执行。 这种精确性意味着在相同情况下,智能合约将产生相同的结果。公开的记录智能合约可用于审计和跟踪。 由于以太坊智能合约位于公共区块链上,任何人都可以立即跟踪资产转移和其他相关信息。 例如,你可以检查是否有人向自己的地址发送了资金。隐私保护智能合约还可以保护你的隐私。 由于以太坊是匿名网络(你的交易公开绑定到唯一的加密地址,而不是你的身份),你可以保护你的隐私不受观察者窥探。可查看的条款最后一点,与传统合约一样,你可以在签署(或以其他方式与之交互)之前检查智能合约的内容。 智能合约的透明性保证了任何人都可以进行审查。智能合约用例其他计算机程序可以做的事情,智能合约基本上都可以做。它们可以执行计算、创建货币、存储数据、铸造非同质化代币、发送通信甚至生成图形。 以下是一些常见的真实示例:稳定币创建和分发独特的数字资产自动、开放的货币交易所去中心化游戏自动赔付的保单(opens in a new tab)允许创建定制、可互操作货币的标准更愿意通过视频学习?观看 Finematics 解释智能合约:延伸阅读智能合约将如何改变世界(opens in a new tab)智能合约:将要取代律师的区块链技术(opens in a new tab)面向开发者的智能合约学习编写智能合约精通以太坊 — 什么是智能合约?(opens in a new tab)本文对你有帮助吗?是否编辑页面(opens in a new tab)在本页面传统合约中的信任问题数字自动售货机自动执行可预测的结果公开的记录隐私保护可查看的条款智能合约用例更愿意通过视频学习?延伸阅读网站最后更新: 2024年2月16日(opens in a new tab)(opens in a new tab)(opens in a new tab)使用以太坊查找钱包获取以太币Dapps - 去中心化应用二层网络运行节点稳定币质押ETH学习学习中心什么是以太坊?什么是以太币 (ETH)?以太坊钱包Gas fees以太坊安全和预防欺诈措施什么是 Web3?智能合约以太坊能源消耗以太坊路线图以太坊改进提案 (Eip)以太坊的历史以太坊白皮书以太坊词汇表以太坊治理区块链桥零知识证明测试中心开发者开始体验相关文档教程通过编码来学习设置本地环境生态系统社区中心以太坊基金会以太坊基金会的博客(opens in a new tab)生态系统支持方案(opens in a new tab)以太坊漏洞悬赏计划生态系统资助计划以太坊品牌资产Devcon(opens in a new tab)企业级应用主网以太坊私密以太坊企业级应用关于ethereum.org关于我们工作机会参与贡献语言支持隐私政策使用条款缓存政策联系我们(opens in a new t

针对初学者的智能合约指南 | ethereum.org

者的智能合约指南 | ethereum.org跳转至主要内容学习用法构建参与研究搜索​​​​语言 ZH帮助更新此页面本页面有新版本,但现在只有英文版。请帮助我们翻译最新版本。翻译页面没有错误!此页面未翻译,因此特意以英文显示。不再显示针对初学者的智能合约指南solidityhardhatalchemy智能合约入门指南部署初学者elanh 2021年3月31日17 分钟阅读 minute read在本页面步骤 1:连接到以太坊网络步骤 2:创建应用程序(和应用程序接口密钥)步骤 3:创建一个以太坊账户(地址)步骤 4:从水龙头添加以太币步骤 5:查看账户余额步骤 6:初始化我们的项目步骤 7:Hardhat步骤 8:创建安全帽项目步骤 9:添加项目文件夹步骤 10:编写合约步骤 11:将 MetaMask 和 Alchemy 连接至您的项目步骤 12:安装 Ethers.js步骤 13:更新 hardhat.config.js步骤 14:编写合约步骤 15:编写部署脚本步骤 16:部署合约如果您是区块链开发的初学者,还不知道如何开始,或者您只是想了解怎样部署智能合约并与之进行交互,这篇教程就是为您准备的。 通过使用虚拟钱包 (MetaMask(opens in a new tab))、Solidity(opens in a new tab)、Hardhat(opens in a new tab) 和 Alchemy(opens in a new tab)(如果您不理解这些名词的含义,不用担心,后续我们会进行解释),我们将演示在 Ropsten 测试网络上创建并部署一个简单的智能合约。在本教程的第 2 部分,我们将学习在智能合约部署后如何与之进行交互,第 3 部分将学习如何在 Etherscan 上发布智能合约。如果您有任何问题,请随时在 Alchemy Discord(opens in a new tab) 中提出!步骤 1:连接到以太坊网络有多种方法可以向以太坊链发起连接请求。 为了简单起见,我们将使用一个 Alchemy 上的免费帐户。 Alchemy 是一个区块链开发者平台和 API,允许我们与以太坊进行通信,而无需运行我们自己的节点。 平台还有用于监测和分析的开发者工具,我们将在本教程中利用这些工具来了解我们智能合约部署中的情况。 如果您还没有 Alchemy 账户,您可以在这里免费注册(opens in a new tab)。步骤 2:创建应用程序(和应用程序接口密钥)创建 Alchemy 帐户后,您可以通过创建应用程序来生成应用程序接口密钥。 我们可以用它向 Ropsten 测试网发出请求。 如果您不熟悉测试网络,请查看此页面。在 Alchemy 仪表板中,将鼠标悬停在导航栏中的“应用程序”上,单击“创建应用程序”并前往此页面。将您的应用命名为“Hello World”,提供简短的描述,选择“Staging”作为环境(用于您的应用程序簿记),选择“Ropsten”网络。点击“Create app”,完成! 您的应用程序应该就会出现在下面的表格中。步骤 3:创建一个以太坊账户(地址)我们需要一个以太坊帐户来发送和接收交易。 在本教程中,我们将使用 MetaMask,它是浏览器中的虚拟钱包,用来管理您的以太坊账户地址。 关于交易的详细信息。您可以点击此处(opens in a new tab)免费下载并创建一个 MetaMask 账户。 创建账户时,或者如果您已经有一个账户时,确保切换到右上方的“Ropsten 测试网络”(这样我们就不会用实际货币进行交易)。步骤 4:从水龙头添加以太币为了将我们的智能合约部署到测试网络,我们需要一些虚拟以太币。 要获取以太币,您可以转到 Ropsten 水龙头(opens in a new tab)并输入您的 Ropsten 帐户地址,然后点击“Send Ropsten Eth”。 由于网络原因,您接收虚拟以太币可能需要一些时间。 您应该会很快在您的 MetaMask 帐户中看到以太币!步骤 5:查看账户余额为了核查我们账户中有余额,我们使用 Alchemy composer 工具(opens in a new tab)发出 eth_getBalance(opens in a new tab) 请求。 这将返回我们钱包中的以太币数量。 输入您的 MetaMask 帐户地址并点击“Send Request”后,您应该会看到这样的响应:1{ "jsonrpc": "2.0", "id": 0, "result": "0x2B5E3AF16B1880000" } 复制注意:结果以 wei 为单位,而非 ETH。 Wei 是以太币的最小计量单位。 将 wei 转换为 ETH 的公式为:1 eth = 1018 wei。 因此,如果我们将 0x2B5E3AF16B1880000 转换为十进制,我们会得到 5*10¹⁸,即 5 ETH。哦! 我们的虚拟货币到账了。步骤 6:初始化我们的项目首先,需要为我们的项目创建一个文件夹。 导航到您的命令行,然后输入:1mkdir hello-world2cd hello-world现在我们进入了项目文件夹,我们将使用 npm init 来初始化项目。 如果你尚未安装 npm,请遵循这些说明(opens in a new tab)(我们还需要 Node.js,所以请一并下载!)。1npm init如何回答安装中的问题并不重要,以下提供一个回答的样例供参考:1package name: (hello-world)2version: (1.0.0)3description: hello world smart contract4entry point: (index.js)5test command:6git repository:7keywords:8author:9license: (ISC)10About to write to /Users/.../.../.../hello-world/package.json:1112{13 "name": "hello-world",14 "version": "1.0.0",15 "description": "hello world smart contract",16 "main": "index.js",17 "scripts": {18 "test": "echo \\"Error: no test specified\\" && exit 1"19 },20 "author": "",21 "license": "ISC"22}显示全部批准 package.json,我们就可以进行下一步了!步骤 7:Hardhat(opens in a new tab){#step-7}安全帽是一个用于编译、部署、测试和调试以太坊软件的开发环境。 它帮助开发者在本地构建智能合约和去中心化应用程序并部署到实时链上。在我们的 hello-world 项目中运行:1npm install --save-dev hardhat查看此页面,了解更多有关安装说明(opens in a new tab)的详细信息。步骤 8:创建安全帽项目在我们的项目文件夹中运行:1npx hardhat然后应该能看到一条欢迎消息和选项,用于选择您想要做的事情。 选择“创建一个空的 hardhat.config.js”:1888 888 888 888 8882888 888 888 888 8883888 888 888 888 88848888888888 8888b. 888d888 .d88888 88888b. 8888b. 8888885888 888 "88b 888P" d88" 888 888 "88b "88b 8886888 888 .d888888 888 888 888 888 888 .d888888 8887888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.8888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888910 Welcome to Hardhat v2.0.11 ‍?1112What do you want to do? …13Create a sample project14❯ Create an empty hardhat.config.js15Quit显示全部这将生成一个 hardhat.config.js 文件,我们将用以配置项目的所有设置(步骤 13)。步骤 9:添加项目文件夹为了使我们的项目有条理,我们将创建两个新的文件夹。 在您的命令行中导航到项目的根目录,然后输入:1mkdir contracts2mkdir scriptscontracts/ 是保存我们的 hello world 智能合约代码文件的位置scripts/ 是我们存放脚本的位置,用于部署我们的合约和与之交互。步骤 10:编写合约您可能要问自己,天啊,到底什么时候才能写代码?? 答案是,就是现在,步骤 10。在您最喜欢的编辑器中打开 hello-world 项目(我们喜欢的是 VSCode(opens in a new tab))。 智能合约是用一种叫 Solidity 的语言编写的,我们将用它来编写我们的 HelloWorld.sol 智能合约。导航到“contracts”文件夹并创建一个名为 HelloWorld.sol 的新文件下面是我们将用于本教程的来自以太坊基金会的 Hello World 智能合约样例。 复制下面的内容并粘贴到 HelloWorld.sol 文件,并一定要阅读注释以了解该合约的工作内容:1// Specifies the version of Solidity, using semantic versioning.2// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma3pragma solidity ^0.7.0;45// Defines a contract named `HelloWorld`.6// 一个合约是函数和数据(其状态)的集合。 Once deployed, a contract resides at a specific address on the Ethereum blockchain. Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html7contract HelloWorld {89 // Declares a state variable `message` of type `string`.10 // 状态变量是其值永久存储在合约存储中的变量。 The keyword `public` makes variables accessible from outside a contract and creates a function that other contracts or clients can call to access the value.11 string public message;1213 // Similar to many class-based object-oriented languages, a constructor is a special function that is only executed upon contract creation.14 // 构造器用于初始化合约的数据。 Learn more:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors15 constructor(string memory initMessage) {1617 // Accepts a string argument `initMessage` and sets the value into the contract's `message` storage variable).18 message = initMessage;19 }2021 // A public function that accepts a string argument and updates the `message` storage variable.22 function update(string memory newMessage) public {23 message = newMessage;24 }25}显示全部 复制这是一个非常简单的智能合约,创建时存储了一条消息,而且可以通过调用 update 功能来更新消息。步骤 11:将 MetaMask 和 Alchemy 连接至您的项目我们创建了 MetaMask 钱包、Alchemy 帐户,并且编写了一个智能合约,现在是将这三者连起来的时候了。从虚拟钱包发送的每笔交易都需要使用您独有的私钥签名。 为了给程序提供此项许可,我们可以安全地将私钥(和 Alchemy 应用程序接口密钥)存储在一个环境文件中。如需了解更多关于发送交易的信息,请查看关于使用 web3 发送交易的 本教程。首先,在项目目录中安装 dotenv 软件包:1npm install dotenv --save然后在我们的项目根目录中创建 .env 文件,并将您的 MetaMask 私钥和超文本传输协议 Alchemy 应用程序接口网址加入其中。遵循这些说明(opens in a new tab)导出您的私钥请从下方获取超文本传输协议 Alchemy 应用程序接口网址复制 Alchemy 应用程序接口网址您的 .env 文件应该类似:1API_URL = "https://eth-ropsten.alchemyapi.io/v2/your-api-key"2PRIVATE_KEY = "your-metamask-private-key"为了将这些变量和代码连接,我们将在步骤 13 中调用 hardhat.config.js 文件中的这些变量。不要提交 .env! 请确保永远不要与任何人共享或公开您的 .env 文件,因为这样做会泄露您的私钥。 如果您使用版本控制,请将您的 .env 添加到 gitignore(opens in a new tab) 文件中。步骤 12:安装 Ethers.jsEthers.js 是一个软件库,通过以更加方便用户的方法打包标准 JSON RPC 方法,从而更容易与以太坊互动,并向以太坊提出请求。安全帽使我们更容易将插件(opens in a new tab)集成到工具和扩展功能中。 我们将利用 Ethers 插件(opens in a new tab)完成合约部署(Ethers.js(opens in a new tab) 有非常简洁的部署方法)。在您的项目目录中输入:1npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0"下一步中,我们还将在 hardhat.config.js 中使用 ethers。步骤 13:更新 hardhat.config.js到目前为止,我们已经添加了几个依赖库和插件,现在我们需要更新 hardhat.config.js,以便项目使用所有这些新的组件。按如下所示更新您的 hardhat.config.js 代码:1require('dotenv').config();23require("@nomiclabs/hardhat-ethers");4const { API_URL, PRIVATE_KEY } = process.env;56/**7* @type import('hardhat/config').HardhatUserConfig8*/9module.exports = {10 solidity: "0.7.3",11 defaultNetwork: "ropsten",12 networks: {13 hardhat: {},14 ropsten: {15 url: API_URL,16 accounts: [`0x${PRIVATE_KEY}`]17 }18 },19}显示全部步骤 14:编写合约为了确保一切正常,我们来编译一下合约。 compile 任务是安全帽的内部任务之一。在命令行中运行:1npx hardhat compile您可能会看到关于 SPDX license identifier not provided in source file 的警告,但不用担心,希望其它的均看起来正常! 如果遇到问题,您可以随时在 Alchemy cord(opens in a new tab) 社区中发消息询问。步骤 15:编写部署脚本合约已经写完,配置文件也准备妥当,现在是写合约部署脚本的时候了。转到 scripts/ 文件夹,创建一个名为 deploy.js 的新文件,在其中添加以下内容:1async function main() {2 const HelloWorld = await ethers.getContractFactory("HelloWorld");34 // Start deployment, returning a promise that resolves to a contract object5 const hello_world = await HelloWorld.deploy("Hello World!");6 console.log("Contract deployed to address:", hello_world.address);}78main()9 .then(() => process.exit(0))10 .catch(error => {11 console.error(error);12 process.exit(1);13 });显示全部安全帽在合约教程(opens in a new tab)中对这些代码的每一行均提供了很好的解释,我们在这里直接引用他们的解释。1const HelloWorld = await ethers.getContractFactory("HelloWorld");ethers.js 中的 ContractFactory 是用于部署新智能合约的抽象对象。因此这里的 HelloWorld 是我们 hello world 合约实例的工厂。 使用 hardhat-ethers 插件时,ContractFactory 和 Contract 实例默认与第一个签名账户相连。1const hello_world = await HelloWorld.deploy();调用 ContractFactory 代码中的 deploy() 函数会启动合约部署,然后返回解析为 Contract 的 Promise。 这个对象包括我们智能合约中每个函数的对应调用方法。步骤 16:部署合约我们终于准备好部署我们的智能合约啦! 导航到命令行后运行:1npx hardhat run scripts/deploy.js --network ropsten您会看到类似以下所示的信息:1Contract deployed to address: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570如果我们访问 Ropsten etherscan(opens in a new tab) 并搜索我们的合约地址,应该能够看到它已经成功部署。 交易将类似以下:From 地址应该和您的 MetaMask 账户地址相同,而 To 地址会显示“Contract Creation”,但如果我们点击进入交易,我们会在 To 字段看到我们的合约地址:恭喜! 您刚刚在以太坊区块链上部署了一个智能合约 为了更深入了解到底发生了什么,我们转到 Alchemy 仪表板(opens in a new tab)中的 Explorer 选项卡。 如果您有多个 Alchemy 应用程序,请确保按应用程序筛选,然后选择“Hello World”。 在这里您会看到一系列的 JSON-RPC 调用,都是在我们调用 .deploy() 函数时,Hardhat/Ethers 替我们在后端完成的。 这里有两项重要调用,一个是 eth_sendRawTransaction(opens in a new tab),这是实际将我们的合约写入 Ropsten 链的请求,另一个是 eth_getTransactionByHash(opens in a new tab),此为读取有关我们交易给定哈希值的请求(即 交易时的典型模式)。 如需了解更多关于发送交易的信息,请查看关于使用 Web3 发送交易的本教程这是本教程第 1 部分的全部内容,在第 2 部分中,我们将更新我们的初始信息,从而与我们的智能合约交互(opens in a new tab);在第 3 部分,我们将在 Etherscan 上发布我们的智能合约(opens in a new tab),使得每个人都会知道如何与之交互。想了解更多有关 Alchemy 的信息吗? 查看我们的网站(opens in a new tab)。 不想错过更新? 在这里(opens in a new tab)订阅我们的新闻通讯! 请务必关注我们的 Twitter(opens in a new tab) 并加入我们的 Discord(opens in a new tab)。上次修改时间: , 2023年8月15日查看贡献者本教程对你有帮助吗?是否编辑页面(opens in a new tab)在本页面步骤 1:连接到以太坊网络步骤 2:创建应用程序(和应用程序接口密钥)步骤 3:创建一个以太坊账户(地址)步骤 4:从水龙头添加以太币步骤 5:查看账户余额步骤 6:初始化我们的项目步骤 7:Hardhat步骤 8:创建安全帽项目步骤 9:添加项目文件夹步骤 10:编写合约步骤 11:将 MetaMask 和 Alchemy 连接至您的项目步骤 12:安装 Ethers.js步骤 13:更新 hardhat.config.js步骤 14:编写合约步骤 15:编写部署脚本步骤 16:部署合约网站最后更新: 2024年2月16日(opens in a new tab)(opens in a new tab)(opens in a new tab)使用以太坊查找钱包获取以太币Dapps - 去中心化应用二层网络运行节点稳定币质押ETH学习学习中心什么是以太坊?什么是以太币 (ETH)?以太坊钱包Gas fees以太坊安全和预防欺诈措施什么是 Web3?智能合约以太坊能源消耗以太坊路线图以太坊改进提案 (Eip)以太坊的历史以太坊白皮书以太坊词汇表以太坊治理区块链桥零知识证明测试中心开发者开始体验相关文档教程通过编码来学习设置本地环境生态系统社区中心以太坊基金会以太坊基金会的博客(opens in a new tab)生态系统支持方案(opens in a new tab)以太坊漏洞悬赏计划生态系统资助计划以太坊品牌资产Devcon(opens in a new tab)企业级应用主网以太坊私密以太坊企业级应用关于ethereum.org关于我们工作机会参与贡献语言支持隐私政策使用条款缓存政策联系我们(opens in a new t

智能合约:它们在区块链中的作用和操作

智能合约:它们在区块链中的作用和操作

产品

加密支付网关

彻底改变支付方式

加密钱包

保护数字资产

加密货币发票

轻松的计费解决方案

批量支付

简化批量传输

White Label

定制品牌解决方案

Donations

通过加密货币增强捐赠能力

连接

API

整合与创新

整合解决方案

优化的插件和库以实现平滑集成

学习

博客

见解和更新

常问问题

澄清您的疑问

帮助

支持与指导

公司

安全

保护您的数字资产

漏洞赏金

奖励安全研究

联系我们

寻求帮助

价钱

登录

报名

智能合约:它们在区块链中的作用和操作

发表于 Nov 15, 2023

分享到

智能合约以当前形式由以太坊区块链引入,是新兴Web3行业的基本构建块。它们支撑着各种应用程序,包括DeFi 、 NFT 、游戏等,在 Web3 领域的增长和突出地位中发挥着关键作用。作为区块链上去中心化应用程序的基础,智能合约对于开发人员来说至关重要,使他们能够编纂各方之间的协议,自动化去中心化交易,并创建可替代和不可替代的代币。智能合约代表了数字时代传统合约的演变。它们用虚拟语言编写,能够根据编程参数自主、自动地执行和强制执行。区块链技术的整合放大了其价值,增强了签名者之间的安全性、透明度和信任。这消除了误解、伪造或更改的风险,并减少了对中介机构的需求。智能合约的前景在于它们有可能简化复杂的流程,比如买房,这通常涉及银行、公证人、土地登记处和大量的文书工作。借助区块链和智能合约,可以简化这些流程,从而增强相关各方之间的信任、安全性和透明度。什么是智能合约?智能合约是区块链技术领域的一项突破性创新,由现代计算机科学的先驱人物Nick Szabo在 20 世纪 90 年代提出概念。 Szabo 还在 1998 年发明了虚拟货币“Bit Gold”,他将智能合约定义为带有确保其执行的协议的虚拟承诺。尽管比特币协议可以被视为智能合约的基本形式,但随着以太坊的出现,这些合约的创建和实施已经大大简化。智能合约充当区块链上的自动化程序或协议,在满足某些预设条件时激活。这些自动执行的合同直接写入代码,详细说明了买卖双方之间的协议条款。它们在使交易可追踪、透明和不可逆转方面发挥着关键作用,从而消除中介并减少时间延迟。智能合约托管在区块链网络上,根据触发特定结果的特定条件进行编码。它们在区块链上的去中心化性质确保了准确性、及时性和安全性,使其防篡改。该技术对于自动化多方数字协议、降低风险、提高效率、降低成本以及提高各种流程的透明度至关重要。此外,智能合约超越了合约行为的自动化。萨博经常被猜测是真正的中本聪(他否认了这一说法),他将这些合约设想为将 POS(销售点)等电子交易方法扩展到数字领域的机制。他预见到它们在衍生品和债券等复杂金融工具中的应用,允许复杂的支付期限结构,同时最大限度地降低交易成本。区块链上的智能合约是自动执行的脚本,可以自动执行合同义务。它们不包含传统的法律语言,而是由满足指定条件时执行操作的编程命令组成。这些创新合约由 Szabo 首次提出,改变了数字交易和协议的执行方式,预示着数字世界进入了高效和安全的新时代。智能合约如何运作?智能合约本质上是托管在区块链上的防篡改程序,其基本逻辑是“如果/当 x 事件发生,则执行 y 操作”。这些合约可以包含多个条件,并且单个应用程序可能会集成多个智能合约以形成复杂的流程网络。开发人员可以出于各种目的在公共区块链上创建和部署这些合约,包括自动收益聚合器等个人金融应用程序。智能合约的吸引力在于它们能够促进独立且通常是匿名的各方之间的可信交易,而无需中央机构或法律系统。虽然以太坊目前是领先的智能合约平台,但 EOS、Neo、Tezos、 Tron 、 Polkadot和 Algorand 等其他区块链也支持它们。以太坊和类似网络上的智能合约是用各种编程语言编写的,例如Solidity 、 Web Assembly和Michelson 。他们的代码存储在区块链上,使其透明且可公开验证,允许任何人检查合约的代码及其当前的运行状态。网络中的每个节点都存储所有智能合约的副本以及区块链和交易数据。当智能合约收到资金时,所有节点都会执行其代码以就结果达成共识,从而确保在没有中央机构的情况下安全运行。为了在以太坊等网络上执行智能合约,用户通常需要支付称为“ gas ”的费用。智能合约的工作原理是遵循编码到区块链中的简单“if/when...then...”语句。一旦满足条件,它们就会自主执行释放资金、登记资产或发出通知等操作。区块链的不可变性质确保这些交易是永久的并且仅对授权方可见。这些合约可能包含许多规定,要求参与者就区块链上的交易表示、管理规则、潜在例外情况和争议解决机制达成一致。值得注意的是,并非所有区块链都可以运行智能合约。虽然包括以太坊、 Arbitrum 、Avalanche、Base、 BNB Chain 在内的一些支持它们,但比特币的基础区块链等其他技术则不支持。区别在于区块链执行和存储任意逻辑的能力。一旦部署,智能合约通常是不可变的,即使是其创建者,除了少数例外,确保抵抗审查或关闭。智能合约的优点和局限性智能合约作为区块链技术的创新组成部分,提供了一种更安全、可验证的建立社会协议的方式,特别是涉及价值和数据转移的协议。尽管它们还处于起步阶段并存在固有的局限性,但它们比传统的数字协议提供了相当大的好处。智能合约的主要优势之一是它们能够在没有中介的情况下进行交易,从而降低通常与依赖中心化机构的数字协议相关的交易对手风险。这不仅简化了流程,还限制了这些较大实体所施加的影响。满足某些条件时,智能合约会自动执行,从而提高准确性、速度和效率。消除文书工作和手动数据输入进一步减少了错误和延迟。在信任和透明度方面,智能合约确保信息的完整性,因为交易是加密的并在参与者之间共享,而无需第三方参与。这种级别的安全性得到了区块链结构的支持;记录极难被破解,改变任何一条记录都需要篡改整个链。从财务角度来看,智能合约通过消除中介机构来节省大量资金,从而减少相关费用和时间延迟。他们还通过减少纸张使用来促进可持续发展,并通过减少实物文件验证的旅行来减少污染。此外,智能合约通过分布式网络中的存储来确保可靠性,使其几乎不可变且不易伪造。每个合约都在网络节点上复制,确保它不会丢失。参与者直接做出安排而获得独立性,无需中间人。这些合同的精确性实际上消除了条款和处理中的错误。虽然智能合约领域仍在发展,但主要进步涉及将它们与区块链之外的现实世界数据和系统连接起来。在 Chainlink 等平台的推动下,这种演变允许智能合约与外部数据和传统系统进行交互,从而显着扩展了其功能。通过启用此类外部连接,智能合约可以超越孤立的区块链网络的限制,更全面地集成到不同的行业和用例中。智能合约用例代币智能合约用于创建、跟踪和分配区块链网络上存在的特定数字代币的所有权。代币合约将功能编程到其发行的代币中,为持有者提供诸如dApp中的效用/保险(效用代币)、协议中的投票权重(治理代币)、公司股权(安全代币)、独特的所有权主张等功能。现实世界或数字资产(不可替代的代币)等等。例如, FIL代币用于支付Filecoin的去中心化存储服务, COMP代币允许用户参与Compound协议的治理。金融产品(DeFi)去中心化金融(DeFi)由使用智能合约重新创建传统金融产品和服务(例如货币市场、期权、稳定币、交易所和资产管理)的应用程序组成,并通过无需许可的可组合性组合多种服务来创建新的金融原语。智能合约可以托管用户的资金,并根据预定义的条件在用户之间分配资金。例如,BarnBridge 使用智能合约为希望固定资产暴露于价格对(例如 45% 代币 A、55% 代币 B)的用户实现自动化交易, Aave使用智能合约以无需许可和去中心化的方式促进借贷。 Aave 通过使用资产价格来确定用户的借贷借款人并查看贷款是否抵押不足并需要清算,从而支持去中心化借贷市场游戏和 NFT基于区块链的游戏使用智能合约来防篡改地执行游戏内的操作。一个例子是 PoolTogether,这是一款无损储蓄游戏,用户将资金放入共享池中,然后将资金导入货币市场并赚取利息。在预定的时间段后,游戏结束,获胜者将随机获得所有应计利息,而其他人可以提取原始存款。同样,限量版 NFT 可以具有公平的分配模型,而 RPG 可以使用随机性支持不可预测的战利品掉落,有助于确保所有用户都有公平的机会获得稀有的数字资产。许多项目使用Chainlink可验证随机函数 (VRF) 来访问随机性,VRF 是一种随机数生成器 (RNG),它使用加密技术来证明其防篡改,这意味着 RNG 过程是可公开审核的。 MLB 棒球运动员 Trey Mancini 进行了一次 NFT 投放,为癌症患者的支持筹集资金,其中 Chainlink VRF 用于随机为一些 NFT 分配额外的效用保险参数保险是一种保险,其赔付直接与特定的预定义事件挂钩。智能合约提供防篡改基础设施,用于创建基于数据输入触发的参数保险合约。例如,可以使用智能合约创建农作物保险,用户根据特定的天气信息(例如某个地理位置的季节性降雨量)购买保单。保单结束时,如果特定地点的降雨量超过原来规定的金额,智能合约将自动发放赔付。最终用户不仅可以以更少的管理费用及时收到付款,而且保险的供应方可以通过智能合约向公众开放。智能合约允许用户将资金存入池中,然后根据池参与者对池的贡献百分比将收取的保费分配给池参与者。智能合约和众筹以太坊区块链上的智能合约提供了创建数字代币的创新能力,可用于各种交易。您可以选择通过创建可交易的数字代币来开发和流通自己的数字货币。这些代币遵循标准硬币 API,例如以太坊的ERC 2.0标准,可以与任何兼容的钱包进行无缝交互以进行交易。这将导致创建具有预定供应量的可交易代币,从而有效地将平台转变为发行自己货币的数字中央银行。考虑一下您正在创业并需要资金的场景。挑战在于找到愿意在没有建立信任的情况下借钱的人。这就是基于以太坊的智能合约发挥作用的地方。您可以设置一个智能合约,安全地持有贡献者的资金,直到达到特定日期或达到融资目标。根据结果,资金可以释放给项目所有者或退还给贡献者。传统的中心化众筹系统常常面临管理和信任方面的挑战。为了解决这些问题,去中心化自治组织(DAO)越来越多地用于众筹目的。在DAO中,众筹条款嵌入在智能合约中,每个参与者都会获得代表其贡献的代币。这确保了每笔捐款都透明地记录在区块链上,从而增强了众筹过程中的信任和问责制。

请注意,Plisio 还为您提供:

单击 2 次即可创建加密发票 and 接受加密捐赠

12 整合

BigCommerce

Ecwid

Magento

Opencart

osCommerce

PrestaShop

VirtueMart

WHMCS

WooCommerce

X-Cart

Zen Cart

Easy Digital Downloads

6 最流行的编程语言库

PHP 图书馆

Python 图书馆

React 图书馆

Vue 图书馆

NodeJS 图书馆

Android sdk 图书馆

19 加密货币和 12 区块链

Bitcoin (BTC)

Ethereum (ETH)

Ethereum Classic (ETC)

Tron (TRX)

Litecoin (LTC)

Dash (DASH)

DogeCoin (DOGE)

Zcash (ZEC)

Bitcoin Cash (BCH)

Tether (USDT) ERC20 and TRX20 and BEP-20

Shiba INU (SHIB) ERC-20

BitTorrent (BTT) TRC-20

Binance Coin(BNB) BEP-20

Binance USD (BUSD) BEP-20

USD Coin (USDC) ERC-20

TrueUSD (TUSD) ERC-20

Monero (XMR)

分享到

最新的文章

Exodus 钱包评论:2024 年的优点、缺点和功能

Mar 8, 2024

Kraken 评论:2024 年的优点、缺点和功能

Mar 8, 2024

加拿大加密货币税收指南(2024 年 CRA 规则)

Mar 7, 2024

Polymarket:去中心化预测市场如何运作

Mar 6, 2024

2024 年最佳 DeFi 加密货币

Mar 6, 2024

体育用品进入加密世界。轻松接受付款。

Mar 6, 2024

MEV Bot:以太坊套利分步手册

Mar 6, 2024

什么是闪电贷?

Mar 5, 2024

最佳区块链游戏公司

Mar 5, 2024

2024 年最佳白标 NFT 市场

Mar 4, 2024

2024 年英国最佳加密货币交易所

Mar 4, 2024

2024 年最佳 AI 加密货币项目

Mar 3, 2024

LFG 的含义

Mar 3, 2024

什么是冷钱包?

Mar 2, 2024

云挖矿:您的终极入门指南

Mar 2, 2024

维塔利克·布特林净资产

Feb 29, 2024

美容行业现在正在与加密货币合作!

Feb 29, 2024

Web3 和加密领域的最佳工作(以及在哪里可以找到�...

Feb 29, 2024

软件开发人员正在进入加密货币时代。

Feb 29, 2024

2024 年最适合质押的加密货币

Feb 28, 2024

产品

商业

个人的

价钱

批量支付

白色标签

发票

捐款

集成

资源

应用程序接口

博客

安全

漏洞赏金

常问问题

联系我们

政策

隐私政策

服务条款

跟着我们

简体中文

English

اَلْعَرَبِيَّةُ

Deutsch

ελληνικά

Español

فارسی

Français

हिन्दी

Bahasa Indonesia

Italiano

日本語

한국어

Polski

Português

Русский

ไทย

Türkçe

Українська

Tiếng Việt

简体中文

© 2024 Plisio, 公司。保留所有权利。