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

这篇具有很好参考价值的文章主要介绍了第146篇 笔记-智能合约介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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极大地扩展和增强了区块链的宝贵属性,从而在更多行业和用例中基于加密真实性达成了卓越的数字协议。文章来源地址https://www.toymoban.com/news/detail-792831.html

到了这里,关于第146篇 笔记-智能合约介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[25]以太坊-智能合约-5

    智能合约-1 智能合约-2 智能合约-3 智能合约-4 网上竞拍第二版:由投标者自己取回出价 (1)存在的问题         重入攻击,如果有黑客写了一个如下方程序会怎么样?         这个hack_bid跟前面的那个黑客合约hack_bid合约是一样的,通过调用拍卖bid函数参与竞拍,ha

    2024年03月11日
    浏览(65)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[22]以太坊-智能合约-2

    智能合约-1 目录 一、智能合约的创建和运行         1.智能合约的创建         2.汽油费         3.错误处理         4.嵌套调用 二、思考         1.GasLimit和GasUsed         2.以太坊中的GasLimit跟比特币的区别 1.智能合约的创建         智能合约 由一个外

    2024年02月19日
    浏览(50)
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记:以太坊原理(三):智能合约

    9、ETH-智能合约 智能合约是以太坊的精髓,也是以太坊和比特币一个最大的区别 1)、什么是智能合约 智能合约的本质是运行在区块链上的一段代码,代码的逻辑定义了智能合约的内容 智能合约的账户保存了合约当前的运行状态 balance:当前余额 nonce:交易次数 code:合约代

    2024年01月20日
    浏览(51)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[23]以太坊-智能合约-3

    智能合约-1 智能合约-2 1.假设某个全节点要打包一些交易到一个区块里,这些交易里有一些是对智能合约的调用,那么这个全节点应该先执行完智能合约再挖矿,还是先挖矿获得记账权再执行这些智能合约?         在区块链中,如果有一笔转账交易发布上去,需要所有的全

    2023年04月23日
    浏览(45)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[21]以太坊-智能合约-1

    目录 一、什么是智能合约 二、智能合约的代码结构         1.Solidity语言         2.bid函数         3.fallback()函数  二、外部账户如何调用智能合约 三、一个合约如何调用另一个合约中的函数         1.直接调用         2.使用address类型的call()函数      

    2024年02月05日
    浏览(44)
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第一套智能合约安全漏洞测试(0基础版)

    第一套题的智能合约安全漏洞测试题目 漏洞合约代码 总结: EtherStore合约 是一个简单的储蓄合约,用户可以存入和提取以太币。 Attack合约 是针对 EtherStore 合约设计的,它包含了一个构造函数来引用目标 EtherStore 合约 ,并提供了一个 attack 函数 ,试图通过先存入再立即提取

    2024年04月11日
    浏览(53)
  • 【智能合约】以太坊合约执行分析

    目录 1. 基本概念 1.2 合约字节码 1.3 合约构造函数 1.4 与合约交互 1.5 Call Data 1.6 程序计数器(Program Counter) 1.7 执行环境(Context) 1.8 OpCode(操作码/EVM指令/助记符) 1.9 Gas消耗 1.10 合约执行过程 2. 过程详解 2.1 关于部署代码 2.2 runtime代码 2.3 最终字节码 2.4 为EVM设计的指令集

    2024年02月02日
    浏览(52)
  • 【区块链 | 智能合约】Ethereum源代码 - 智能合约地址生成算法

    当提交智能合约部署后,会返回智能合约的地址。智能合约地址的生成逻辑在eth.api.go的submitTransaction函数中:

    2024年02月13日
    浏览(49)
  • 区块链java开发智能合约nf(部署第一个NFT智能合约)

    手把手教你区块链java开发智能合约nft-第二篇(部署第一个NFT智能合约) 刚搞区块链开发真的是太累了,自己摸石头过河,动不动就报错,网上搜索错误,一律看不出什么问题,或者报错的信息太少,问同事同事不鸟,问领导,领导也烦,无奈,对于英文不好的我,只能被迫

    2024年02月12日
    浏览(57)
  • 区块链智能合约代码示例

            以下是一个简单的区块链智能合约代码示例: 该合约具有以下功能: 定义了一个名为 SimpleContract 的合约。 定义了一个名为 myData 的公共整数变量。 定义了一个名为 setMyData 的公共函数,该函数接受一个 uint 类型的参数 newData,并将其设置为 myData 的新值。 在 So

    2024年02月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包