【区块链】智能合约简介

智能合约起源

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
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初识指针(4)<C语言>

前言 前面的文章&#xff0c;已经对指针的基础概念以及运用有了初步了解&#xff0c;我们可以进一步探究指针比较深入的知识&#xff0c;下文将主要介绍&#xff1a;使用指针数组模拟二维数组、字符指针变量、数组指针、二维数组传参的本质、函数指针、typedef关键字等。 目录…

AnythingLLM+Ollama构建本地知识库

前言 这是一个全栈应用程序&#xff0c;可以将任何文档、资源&#xff08;如网址链接、音频、视频&#xff09;或内容片段转换为上下文&#xff0c;以便任何大语言模型&#xff08;LLM&#xff09;在聊天期间作为参考使用。此应用程序允许您选择使用哪个LLM或向量数据库&#…

我必须要吹一波MATLAB 2024a,太牛逼了!|福利:附安装教程及下载地址

最近逛MATLAB官网&#xff0c;发现MATLAB 2024a版本已经Pre-release了&#xff0c;翻了下release note&#xff0c;不得不感叹&#xff0c;实在是太强了&#xff01; 这次重点更新了四个工具箱&#xff1a; Computer Vision Toolbox Deep Learning Toolbox Instrument Contro…

如何在路由器上做端口映射

假设现在外网有一台ADSL直接拨号上网的电脑&#xff0c;所获得的是公网IP。然后它想访问局域网内的电脑上面的网站&#xff0c;那么就需要在路由器上做端口映射。在路由器上做端口映射的具体规则是&#xff1a;将所有发向自己端口的数据&#xff0c;都转发到内网的计算机。 访…

答辩PPT制作难?AI工具助你轻松搞定

在我原本的认知里面&#xff0c;答辩PPT是要包含论文各个章节的&#xff0c;在答辩时需要方方面面都讲到的&#xff0c;什么摘要、文献综述、实证分析、研究结果样样不落。但是&#xff0c;这大错特错&#xff01; 答辩PPT环节时长一般不超过5分钟&#xff0c;老师想要的答辩P…

Photoshop中图层的应用

Photoshop中图层的应用 前言Photoshop中的图层面板Photoshop中图层的基本操作新建图层复制/剪切图层链接图层修改图层名称及颜色背景图层与普通图层栅格化图层图层的对齐与分布图层的合并 前言 图层在Photoshop中就像一层一层的透明纸&#xff0c;可以透过图层的透明区域看到下…

论文| Visual place recognition: A survey from deep learning perspective

2021-Visual place recognition: A survey from deep learning perspective

STM32-07-STM32_外部中断

文章目录 STM32 中断系统1. 中断2. NVIC3. EXTI4. AFIO5. 中断配置步骤6. 外部中断代码 STM32 中断系统 1. 中断 目的&#xff1a;中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。中断过程&#xff1a;当CPU正在处理某事件的时候外界发生了紧急事件请求 &#…

LabVIEW学习记录3 - 自定义函数

LabVIEW学习记录3 - 自定义函数 一、LabVIEW学习记录二、自定义函数及函数调用 一、LabVIEW学习记录 【labVIEW】学习记录LabVIEW学习记录2 - MySQL数据库连接与操作LabVIEW学习记录 - 实时显示时间LabVIEW学习记录4-局部变量、全局变量、共享变量 二、自定义函数及函数调用 …

Verilog_学习路线(小白)

#前言&#xff1a; 自从专心学习专业课后&#xff0c;发现知识点得用&#xff0c;越用越熟练&#xff0c;工具也一样&#xff0c;高级工具的学习可帮助我们在工作中极大地提高效率&#xff0c;但这里要记住一点&#xff0c;任何工具都是为解决实际问题出现的&#xff0c;即落脚…

XC7VX690T-2FFG1761I 中文资料 XC7VX690T-2FFG1761引脚图及功能说明

XC7VX690T-2FFG 是由Xilinx&#xff08;赛灵思&#xff09;公司生产的FPGA&#xff08;Field Programmable Gate Array&#xff0c;现场可编程门阵列&#xff09;芯片。FPGA是一种可编程的集成电路&#xff0c;用户可以根据需要将其配置为具有特定逻辑功能的电路。 XC7VX690T-…

2024全新小狐狸AI免授权源码

源码安装说明&#xff1a; 下 载 地 址 &#xff1a; runruncode.com/php/19757.html 1. 在宝塔新建一个站点&#xff0c;选择 PHP 版本为 7.2、7.3 或 7.4。将压缩包上传到站点的根目录&#xff0c;并设置运行目录为 /public。 2. 导入数据库文件&#xff0c;该文件位于 …

【Qt】界面定制艺术:光标(cursor)、字体(font)、提示(toolTip)、焦点(focusPolicy)与样式表(styleSheet)的深度探索

文章目录 前言&#xff1a;1. cursor: 设置按钮的光标2. front&#xff1a;设置字体3. toolTip: 鼠标悬停提示4. focusPolicy&#xff1a;设置控件获取到焦点的策略5. styleSheet : 样式表总结&#xff1a; 前言&#xff1a; 在现代软件开发中&#xff0c;用户界面(UI)的设计和…

【C语言】/*操作符(上)*/

目录 一、算数操作符&#xff1a;、-、*、/、% 1.1 和 - 1.2 * 1.3 / 1.4 % 二、赋值操作符&#xff1a; 和符合赋值 2.1 连续赋值 2.2 复合赋值(自操作) 三、单目操作符&#xff1a;、--、(正号)、-(负号) 3.1 和 -- 3.1.1 前置 3.1.2 后置 3.1.3 前置-- …

Flutter实战记录-协作开发遇到的问题

一.前言 Android项目使用了混合架构&#xff0c;部分模块使用Flutter进行开发。在电脑A上开发的项目提交到git仓库&#xff0c;电脑B拉取后进行操作&#xff0c;遇到两个问题&#xff0c;特此做一下记录&#xff1b; 二.问题A Settings file ‘D:\xxx\settings.gradle’ line…

【生信技能树】数据挖掘全流程

R包的安装&#xff0c;每次做分析的时候先运行这段代码把R包都安装好了&#xff0c;这段代码不需要任何改动&#xff0c;每次分析直接运行。 options("repos""https://mirrors.ustc.edu.cn/CRAN/") if(!require("BiocManager")) install.packag…

号外!IP SSL证书申请只需十分钟!

JoySSL官网 注册码230918 IP SSL证书是一种专为IP地址设计的SSL证书&#xff0c;它使得基于IP地址的网站或服务能够实现HTTPS加密&#xff0c;确保数据在传输过程中的安全性和完整性。以下是关于IP SSL证书的一些技术性要点和申请流程概述&#xff1a; 一、IP SSL证书技术要点…

搭建Docker私服镜像仓库Harbor

1、概述 Harbor是由VMware公司开源的企业级的Docker Registry管理项目&#xff0c;它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。 Harbor 的所有组件都在 Dcoker 中部署&#xff0c;所以 Harbor 可使用 Docker Compose 快速部署。 …

CLion 写 Rust 报Project directory `/Users/.../rsheets` does not exist.

每次打开CLion都会看到像下面这样的报错&#xff0c;Project directory /Users/.../rsheets does not exist.&#xff0c;虽然不会影响你写代码&#xff0c;但每次看到还是不舒服&#xff0c;所以研究一下怎么解决。 原因是这样的&#xff0c;每当我们创建一个 Cargo 项目&…

揭秘全网都在搜索的抖音快速涨10000粉的方法,打造真实粉丝海洋!巨量千川投流

抖音作为当下最热门的社交媒体平台之一&#xff0c;拥有数以亿计的用户。对于许多用户来说&#xff0c;快速涨粉成为了一个追逐的目标。在这篇文章中&#xff0c;我们将揭秘一些全网都在搜索的抖音快速涨粉方法&#xff0c;帮助你打造属于自己的真实粉丝海洋。巨量千川投流&…