jjzjj

第146篇 笔记-智能合约介绍

wonderBlock 2024-04-09 原文

定义:当满足某些预定义条件时,智能合约是一种在区块链网络上运行的防篡改程序。

1.什么是智能合约

智能合约是在区块链网络上托管和执行的计算机程序。每个智能合约都包含指定预定条件的代码,这些条件在满足时会触发并产生结果。通过在去中心化区块链而不是集中化服务器上运行,智能合约允许多方以准确、及时和防篡改的方式达成共享结果。‍

智能合约是一种强大的自动执行的基础设施,因为它们不受中央管理员的控制,不易受到恶意实体的单点攻击。当应用于多方数字协议时,智能合约应用程序可以降低交易对手风险、提高效率、降低成本,并为流程提供新的透明度。

2.智能合约的历史

智能合约最早由美国计算机科学家尼克·沙博(Nick Szabo)于1994年创造,他给出了一个广义的智能合约定义如下:“执行合约条款的计算机化交易协议”,其总体目标是“满足共同的合约条件,最小化恶意和意外,并最小化对可信中介的需求。”

虽然智能合约的一般概念可以在自动售货机等系统中看到,但区块链形成了数字、防篡改和无许可的智能合约的基础。2009年比特币区块链的引入支持了第一个协议智能合约,该合约建立了一组必须满足的条件,才能在网络上的用户之间传输比特币。这些条件包括用户使用与其公共地址匹配的正确私钥(类似于链接到特定帐户的密码)签署交易,以及用户拥有足够的资金来支付交易。

2012年,比特币区块链演变为提供另一种主要类型的智能合约,称为多签名交易。多重签名交易需要定义一定数量的人(公钥)使用其私钥签署交易,然后才被认为有效。这通过减少单点故障(如被盗或丢失的私钥)来提高用户资金的安全性。

一个用于比特币区块链上多签名交易的简单框架,需要3个私钥中的2个签署才能使交易被视为有效

在接下来的几年中,区块链开始尝试添加新的编程条件(称为操作码)。然而,2013年Vitalik Buterin发布了以太坊白皮书,这是智能合约的下一个重大飞跃。2015年,以太坊作为可编程智能合约的新型区块链推出。以太坊智能合约区块链提供了一台可以同时运行多个独立智能合约的“世界计算机”,而不是将区块链作为单个智能合约应用程序或提供一些有限的操作码。

3.智能合约工作原理

智能合约是区块链上的防篡改程序,具有以下逻辑:“如果/当x事件发生时,执行y操作。”一个智能合约可以有多个不同的条件,一个应用程序可以有多种不同的智能合约,以支持一组相互连接的流程。还有多种用于编程的智能合约语言,以太坊的Solidity是最受欢迎的。‍

任何开发者都可以创建一个智能合约,并将其部署在公共区块链上,用于他们自己的目的,例如,一个个人收益聚合器,自动将他们的资金转移到最高收益的应用程序。然而,许多智能合约涉及多个独立方,这些独立方可能相互了解,也可能不相互信任。智能合约准确定义了用户如何与之交互,包括谁可以与智能合约交互,在什么时间,什么输入导致什么输出。其结果是多方数字协议从今天的概率状态发展到新的确定性状态,在这种状态下,它们可能会按照期望执行,在这种新的确定性状态下,保证它们能够根据代码执行。

4.智能合约示例

智能合约的一个目的是在不同的实体组之间自动化特定的业务流程。这些实体共同就所有智能合约的条款达成一致,如支付、流程和争议解决。一个简单的全球贸易智能合约示例可能包含以下条款:

  • 条款1:如果货物按时到达,则零售商向供应商全额付款。
  • 条款2:如果货物迟到一天,那么零售商应向供应商支付全额的98%。

其他智能合约支持公共去中心化应用程序(dApp),任何人都可以在不需要任何权限的情况下与之交互。公共dApps通常是开源的,因此世界上的任何人都可以在决定是否与它们交互之前检查它们的功能。公共dApp的一个例子是去中心化借贷市场,它可能有以下术语:

  • 条款1:如果用户将抵押品存入特定的智能合约,他们可以获得高达抵押品价值50%的贷款(即,100美元的存款可以借入高达50美元的贷款)。
  • 条款2:如果用户的抵押比率(抵押物/未偿贷款价值)低于200%,则用户的抵押物将自动清算并转移给贷款人,以确保他们不会亏损。
  • 条款3:贷款人可以将资金存入特定的合同中,其他用户可以按照预定义的抵押比率从该合同中借款,同时贷款人可以获得部分利率付款。

5.智能合约的好处

大多数传统的数字协议都涉及彼此不认识的双方,这会带来其中一方不履行承诺的风险。为了解决交易对手风险,数字协议通常由大型集中机构(如银行)托管和执行,这些机构可以执行合同条款。这些数字合同可以直接在用户和大公司之间进行,也可以让大公司充当两个用户之间的可信中介。尽管这种动态允许许多合同存在,否则这些合同不会承担此类风险,但它也造成了一种情况,即较大的中央集权机构对合同施加不对称的影响。

通过区块链支付与银行系统支付时用户资金处理方式的差异

智能合约在数字协议的基础上提供了一些优势。

  • 安全性——在去中心化区块链基础设施上运行合约,确保没有攻击的中心故障点,没有可贿赂的中央中介,也没有任何一方或中央管理员用来篡改结果的机制。
  • 可靠性–通过分散的节点网络冗余处理和验证合约逻辑,提供了强大的防篡改、正常运行时间和正确性,保证合约将根据其条款按时执行。
  • 公平——使用去中心化网络托管和执行协议条款,降低了营利性中间商利用其特权地位进行寻租和虹吸价值的能力。
  • 效率–自动化协议托管、维护、执行和/或结算的后端流程意味着任何一方都不必等待手动数据输入、交易对手履行其义务或中间人处理交易。

6.智能合约用例

1.权限管理(令牌)

代币智能合约用于创建、跟踪和分配区块链网络上存在的特定数字代币的所有权。代币合约将功能编程到其发行的代币中,为持有者提供dApp(效用代币)中的效用/保险、协议中的投票权(治理代币)、公司股权(安全代币)、对唯一真实世界或数字资产的所有权主张(不可替代代币)等功能。例如,FIL代币用于支付Filecoin的去中心化存储服务,COMP代币允许用户参与Compound协议的治理。

2.金融产品(DeFi)

去中心化金融(DeFi)由应用程序组成,这些应用程序使用智能合约重新创建传统金融产品和服务,如货币市场、期权、稳定币、交易所和资产管理,以及通过无许可组合组合多种服务来创建新的金融原语。智能合约可以将用户的资金托管,并根据预定义的条件在用户之间分配。例如,BarnBridge使用智能合约为希望固定资产暴露于价格对(例如,45%代币a,55%代币B)的用户自动化交易,Aave使用智能合约以无许可和分散的方式促进借贷。

通过使用资产价格来确定用户的借款借款人,并查看贷款是否未充分抵押和是否需要清算,从而支持分散的贷款市场

3.游戏和NFT

基于区块链的游戏使用智能合约来防止游戏内动作的执行。一个例子是PoolTogether,这是一个无损失的储蓄游戏,用户将他们的资金存入一个共享池,然后将其转入货币市场,在那里赚取利息。在预定义的时间段后,游戏结束,获胜者将随机获得所有应计利息,而其他人可以提取他们的原始存款。类似地,限量版NFT可以有公平的分配模型,RPG可以使用随机性支持不可预测的战利品掉落,有助于确保所有用户都有机会获得稀有的数字资产。许多项目使用Chainlink可验证随机函数(VRF)访问随机性,这是一种随机数生成器(RNG),使用密码学来证明其不可篡改,这意味着RNG过程是可公开审核的。

7.智能合约限制

智能合约的一个固有限制是,它们运行的底层区块链是孤立的网络,这意味着区块链没有与外部世界的内置连接。没有外部连接,智能合约无法与外部系统通信以确认真实世界事件的发生,也无法访问成本高效的计算资源。与没有互联网的计算机类似,如果没有真实世界的连接,智能合约是极其有限的。例如,他们无法在执行交易前了解资产的价格,无法在支付作物保险索赔前检查月平均降雨量,也无法在与供应商结算前核实货物是否已到达。‍

因此,区块链行业正在进行的主要演变是可编程智能合约,它与区块链之外的真实世界数据和传统系统连接,扩展了智能合约逻辑中使用的输入和输出。这些混合智能合约使用称为oracle的安全中间件,将链上代码与链下基础设施相结合,例如,使用外部数据触发智能合约,或在传统支付轨道上结算链下合同。

Oracle将输入和输出连接到区块链,以创建混合智能合约

与互联网对计算机的影响类似,oracles是将新兴区块链网络与当今系统连接起来的关键,以实现互连、高效和隐私保护的智能合约,从而保持底层区块链网络的安全性和可靠性。通过启用混合智能合约,oracles极大地扩展和增强了区块链的宝贵属性,从而在更多行业和用例中基于加密真实性达成了卓越的数字协议。

有关第146篇 笔记-智能合约介绍的更多相关文章

  1. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一) - 2

    前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型

  4. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

  5. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  6. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  7. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  8. 计算机网络笔记:TCP三次握手和四次挥手过程 - 2

    TCP是面向连接的协议,连接的建立和释放是每一次面向连接的通信中必不可少的过程。TCP连接的管理就是使连接的建立和释放都能正常地进行。三次握手TCP连接的建立—三次握手建立TCP连接①若主机A中运行了一个客户进程,当它需要主机B的服务时,就发起TCP连接请求,并在所发送的分段中用SYN=1表示连接请求,并产生一个随机发送序号x,如果连接成功,A将以x作为其发送序号的初始值:seq=x。主机B收到A的连接请求报文,就完成了第一次握手。客户端发送SYN=1表示连接请求客户端发送一个随机发送序号x,如果连接成功,A将以x作为其发送序号的初始值:seq=x②主机B如果同意建立连接,则向主机A发送确认报

  9. 华为数通笔记VXLAN&BGP EVPN - 2

    VXLAN简介定义RFC定义了VLAN扩展方案VXLAN(VirtualeXtensibleLocalAreaNetwork,虚拟扩展局域网)。VXLAN采用MACinUDP(UserDatagramProtocol)封装方式,是NVO3(NetworkVirtualizationoverLayer3)中的一种网络虚拟化技术。目的随着网络技术的发展,云计算凭借其在系统利用率高、人力/管理成本低、灵活性/可扩展性强等方面表现出的优势,已经成为目前企业IT建设的新趋势。而服务器虚拟化作为云计算的核心技术之一,得到了越来越多的应用。服务器虚拟化技术的广泛部署,极大地增加了数据中心的计算密度;同时,为

  10. 基于python的短视频智能推荐/django的影视网站/视频推荐系统 - 2

    摘要本论文主要论述了如何使用Python技术开发一个短视频智能推荐,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述短视频智能推荐的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。 短视频智能推荐的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、热门视频管理、用户上传管理、系统管理,用户:首页、个人中心、用户上传管理、我的收藏管理,前台首页;首页、热门视频、用户上传、公告信息、个人中心、后台管理等功能。由于本网站的功能模块设计比较全面,所以使得整个短视频智能推荐信

随机推荐