【区块链】智能合约简介

智能合约起源

image-20240507204621675

智能合约这个术语至少可以追溯到1995年,是由多产的跨领域法律学者尼克·萨博(NickSzabo)提出来的。他在发表在自己的网站的几篇文章中提到了智能合约的理念。他的定义如下:“一个智能合约是一套以数字形式定义的承诺(promises),且合约参与方可以在上面执行这些承诺的协议。”

但由于缺乏能够支持可编程合约的数字系统和技术,智能合约并没有被应用到实际产业中,自比特币诞生后,人们认识到比特币的底层技术区块链可以为智能合约提供可信的执行环境,不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合智能合约。至此,智能合约和区块链之间形成了密不可分的联系。

智能合约定义

本质上来说,智能合约是一段程序,它以计算机指令的方式实现了传统合约的自动化处理。简单讲,智能合约就是双方在区块链资产上交易时,触发执行的一段代码,这段代码就是智能合约。“智能合约程序不只是一个可以自动执行的计算机程序,它本身就是一个系统参与者,对接收到的信息进行回应,可以接收和储存价值,也可以向外发送信息和价值。这个程序就像一个可以被信任的人,可以临时保管资产,总是按照事先的规则执行操作。”

智能合约特点:

  1. 高度自治:当智能合约上预先编好的条件被触发时,会自动执行合约。
  2. 去中心化:无需中心化服务器的参与,能够降低交易成本,同时也能缓解信任问题。

那么它与传统合约有什么区别呢?对比如下:

image-20240507205413022

  • 传统合约:传统的合同协议,例如由法律专业人员创建的协议,主要以纸张为基础,严重依赖第三方执行。第三方执法不仅非常耗时,而且非常定义模糊。如果事情误入歧途,合同当事方往往必须依靠公共司法系统来纠正这种情况,这可能是非常昂贵和耗时的。
  • 智能合约:智能合约通常由计算机程序员通过智能合约开发工具创建,完全是数字化的,使用编程代码语言(如Solidity,C++,Go,Python,Java)编写。该守则以与传统法律文件相同的方式界定规则和后果,说明在任何不同情况下任何一方可能产生的义务,利益和处罚。然后,该代码可以由分布式分类帐系统自动执行和强制执行。

智能合约原理

一个基于区块链的智能合约需要包括事务处理机制、数据存储机制以及完备的状态机用于接收和处理各种条件。并且事务的触发、处理及数据保存都必须在链上进行。当满足触发条件后,智能合约即会根据预设的逻辑,读取相应数据并进行计算,最后将计算结果永久保存在链式结构中。

image-20240507205646386

智能合约流程如下:

image-20240507210037661

智能合约安全性

因为合约是严肃的事情,传统的合约往往需要专业的律师团队来撰写。古语有云:“术业有专攻”。当前智能合约的开发主要由软件团队从业者来完成,其所编写的智能合约在完备性上可能有所欠缺,因此相比传统合约,更容易产生逻辑上的漏洞。

现有的部分支持智能合约的区块链平台提供了利用如Go语言、Java语言等高级语言编写智能合约的功能,而这类高级语言不乏一些具有“不确定性”的指令,可能会造成执行智能合约节点的某些内部状态发生分歧,从而影响整体系统的一致性。

智能合约应用

智能合约是区块链技术的重要应用之一,它通过自动化执行合约条款,无需第三方干预,实现了高效、透明且不可篡改的交易过程。正是因为智能合约具备这些优点,它在金融、供应链管理、保险、物联网等多个领域展现出广泛的应用前景。从自动股票交易、简化供应链跟踪到去中心化交易所的构建,智能合约正在革新我们的商业和交易模式,促进了资源共享和降低了交易成本,为现代社会带来了前所未有的便利和效率。

这里简单对比传统跨境支付结算与智能合约下的区块链跨境支付结算。从下图可以看到,区块链跨境支付的优势很大。

image-20240507210940701

智能合约示例

目前以太坊上支持三种语言编写智能合约Solidity、Serpent、LLL, 其中最流行而且最稳定的是Solidity,这也是以太坊官方推荐语言,具体用法参照Solidity文档。

Remix是一个开源的Solidity智能合约开发环境,提供基本的编译、部署至本地或测试网路、执行合约等功能。remix-ide是一个浏览器版的solidity开发IDE,你可以使用在线版,也可以下载下来安装到本地。有了它,你就可以自由地编写智能合约,编译部署了!

在线版:https://remix.ethereum.org/

本地:https://github.com/ethereum/remix-ide

image-20240507211329045

以下是一个简单的智能合约示例,使用solidity语言编写。

pragma solidity>=0.8.2<0.9.0; //选择编译器版本contract Person{function age() pure public returns(uint){return 22;         //函数固定返回22}function height(uint _height) pure public returns(uint){uint Height=_height;return Height;     //函数返回输入的值}function callheight() pure public returns(uint){return height(25); //调用height,返回25}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3016502.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【C++STL详解(八)】--------stack和queue的模拟实现

目录 前言 一、stack模拟实现 二、queue的模拟实现 前言 前面也介绍了stack和queue的常见接口&#xff0c;我们也知道stack和queue实际上是一种容器适配器&#xff0c;它们只不过是对底层容器的接口进行封装而已&#xff0c;所以模拟实现起来比较简单&#xff01;一起来看看是…

杭州恒生面试,社招,3年经验

你好&#xff0c;我是田哥 一位朋友节前去恒生面试&#xff0c;其实面试问题大部分都是八股文&#xff0c;但由于自己平时工作比较忙&#xff0c;完全没有时间没有精力去看八股文&#xff0c;导致面试结果不太理想&#xff0c;HR说节后通知面试结果&#xff08;估计是凉了&…

北邮22级信通院DSP:实验三(1):FFT变换、IFFT变换(附每步8点变换蝶形图)保姆级讲解+用C++程序实现复数域的FFT变换和IFFT变换

北邮22信通一枚~ 跟随课程进度更新北邮信通院DSP的笔记、代码和文章&#xff0c;欢迎关注~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院DSP_青山入墨雨如画的博客-CSDN博客 目录 一、预备知识 1.1 FFT算法 1.2.1由DFT到FFT 1.2.2 基2时域抽选算法 …

华为:三层交换机与路由器连通上网实验

三层交换机是一种网络交换机&#xff0c;可以实现基于IP地址的高效数据转发和路由功能&#xff0c;通常用于大型企业、数据中心和校园网络等场景。此外&#xff0c;三层交换机还支持多种路由协议&#xff08;如OSPF、BGP等&#xff09;&#xff0c;以实现更为复杂的网络拓扑结构…

重装win11系统后找不到WiFi

由于电脑崩溃重装了系统&#xff0c;win11,装完之后WiFi图标不见了且网络适配器根本没有无线网络选项。 右键电脑》管理》网络适配器。 在刚装好系统时候并没有前两项&#xff0c;查了很多资料&#xff0c;比如 关机14s 重启&#xff0c;还有通过服务配置 WLAN AutoConfig 都…

【嵌入式DIY实例】-基于GSM的远程灌溉系统

基于GSM的远程灌溉系统 文章目录 基于GSM的远程灌溉系统1、硬件准备与接线2、软件准备3、代码实现本文将详细介绍如何搭建通过使用手机实现对灌溉系统的远程控制。该系统利用全球移动通信系统(GSM)技术在灌溉系统和移动电话之间建立通信。该系统建立在流行的开源微控制器平台…

IP规划案例

整个OSPF环境IP基于172.16.0.0/16划分 172.16.0.0/16 先分成2个网段&#xff08;OSPF RIP&#xff09;&#xff0c;借1位172.16.0.0/17 ---OSPF 再按区域划分&#xff08;5个区域&#xff09;&#xff0c;借3位 172.16.0.0/20 ---Area 0 三个环回 MGRE 4个网…

Vulnhub项目:NAPPING: 1.0.1

1、靶机介绍 靶机地址&#xff1a;Napping: 1.0.1 ~ VulnHub 2、渗透过程 老规矩&#xff0c;先探测&#xff0c;靶机ip&#xff1a;192.168.56.152 本机ip&#xff1a;192.168.56.146 来看一看靶机开放哪些端口&#xff0c;nmap一下 nmap -sS -sV -A -T5 192.168.56.152 开…

软件系统测试方案书(测试计划-Word原件)

2 引言 2.1 编写目的 2.3 测试人员 2.4 项目背景 2.5 测试目标 2.6 简写和缩略词 2.7 参考资料 2.8 测试提交文档 2.9 测试进度 3 测试环境 3.1 软硬件环境 4 测试工具 5 测试策略 5.1 测试阶段划分及内容 5.1.1 集成测试 5.1.2 系统测试 5.1.2.1 功能测试 5.…

PXE批量安装

系统装机的三种引导方式 u盘光盘网络装机 光盘&#xff1a; 1.类似于usb模式 2.刻录模式 系统安装过程 加载boot loader Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序&#xff0c;我们可以初始化硬件设备、建立内存空间的映射图&#xff0c;从…

「C++ 内存管理篇 00」指针

目录 一、变量&#xff0c;变量名和指针 1. 什么是变量&#xff1f; 2. 变量名和指针 3. 使用指针获取数据 二、指针变量和数组变量 三、编译器对指针的等级有着严格的检查 四、指针的加减 1. 存放指针的变量的加减 2. 存放指针的变量的自增自减 3. 两个指针相减 一、变量&…

网络基础——路由

网络基础——路由 要想网络畅通&#xff0c;应让网络中的路由器知道如何转发数据包到各个网段。路由器根据路由表来转发数据包&#xff0c;而路由表是通过直连网络、静态路由以及动态路由来构建的。 route命令&#xff0c;底层是使用ioctl实现&#xff1b;ip命令&#xff0c;…

OFD(Open Fixed-layout Document)

OFD(Open Fixed-layout Document) &#xff0c;是由工业和信息化部软件司牵头中国电子技术标准化研究院成立的版式编写组制定的版式文档国家标准&#xff0c;属于中国的一种自主格式&#xff0c;要打破政府部门和党委机关电子公文格式不统一&#xff0c;以方便地进行电子文档的…

TP3602 同步升压型直流/直流稳压器芯片IC

一般描述 该TP3602是高效率的同步&#xff0c;PWM升压DC/DC转换器优化&#xff0c;提供一个高效的解决方案&#xff0c;以中等功率系统。该器件工作在0.9V至4.4V的输入电压下&#xff0c;具有1.4MHz的固定频率开关。这些特性允许使用微小、低轮廓电感器和陶瓷电容器&…

windows系统远程执行脚本部署项目操作手册

windows系统远程执行脚本部署项目操作手册 windows系统远程执行脚本部署项目 如果频繁的需要部署项目到远程的服务器上,每次要手动上传项目,然后停止项目,启动项目,很麻烦,像Linux天生支持远程执行脚本 Windows借助工具也可以做到. 安装WinSCP软件 自行下载软件或关注我的公…

PXE批量网络装机和Kickstart无人值守安装

一、PXE定义 PXE&#xff08;preboot execute environment&#xff09;:用于通过网络来引导系统的标准&#xff0c;工作在Client/Server模式&#xff08;也称为CS模式&#xff09;&#xff0c;允许客户机通过网络从远程服务器上下载引导镜像&#xff0c;并加载安装文件或整个操…

[C++][数据结构]哈希1:哈希函数的介绍与线性探测的实现

前言 学完了二叉树&#xff0c;我们要学当前阶段数据结构的最后一个内容了&#xff1a;哈希&#xff01;&#xff01; 引入 先来介绍两个用哈希封装的两个容器&#xff1a;unordered_map unordered_set 与map和set的不同&#xff1a; map/set是双向迭代器&#xff0c;而另…

OSPF链路状态数据库

原理概述 OSPF是一种基于链路状态的动态路由协议&#xff0c;每台OSPF路由器都会生成相关的LSA&#xff0c;并将这些LSA通告出去。路由器收到LSA后&#xff0c;会将它们存放在链路状态数据库LSDB中。 LSA有多种不同的类型&#xff0c;不同类型的LSA的功能和作用是不同的&…

书生·浦语大模型实战营之XTuner多模态训练与测试

书生浦语大模型实战营之XTuner多模态训练与测试 目录 XTuner多模态训练与测试给LLM装上电子眼&#xff1a;多模态LLM原理简介文本单模态文本图像多模态 电子眼&#xff1a;LLaVA方案简介LLaVA训练阶段示意图LLaVA测试阶段示意图 项目实践环境准备XTuner安装概述Pretrain阶段Fi…

部署YUM仓库以及NFS共享服务

YUM仓库部署 一.YUM概述 YUM仓库源是一种软件包管理工具&#xff0c;用于在Linux系统上安装、更新和删除软件包。YUM仓库源包含了软件包的元数据信息和实际的软件包文件。用户可以通过配置YUM仓库源&#xff0c;从中下载和安装软件包。 常见的YUM仓库源包括&#xff1a; 本…