什么是智能合约

news2025/1/21 9:38:21

前言:在介绍智能合约的前提下,需要先介绍一下区块链

一.什么是区块链

区块链实质上是一个去中心化、分布式的可进行交易的数据库或账本,具有下列典型特征:

  • 去中心化:简单来说,在网络上一个或多个服务器瘫痪的情况下,应用或服务仍然能够持续地运行,这就是去中心化。服务和应用部署在网络上后,尽管每个服务器都有一份数据和执行程序的副本,但是没有任何一个服务器能够绝对控制数据和程序的执行过程。
  • 分布式:网络上的每个服务器或节点都互相连接在一起,服务器之间是多对多连接,而不是一对一或一对多连接。
  • 数据库:指的是存储持久化数据、用户能够及时从任何地点进行访问的地方。数据库的基本功能是数据存储和检索,同时也提供了一些管理功能,以方便高效地管理数据,如:数据导入和导出,数据备份和恢复。
  • 账本:这是一个会计专业术语。你也可以认为它是一个专门存储和检索数据的地方。账本对银行业而言很有用处。例如,Tom在他的银行账户上存入了100美元,对银行而言,需要在账本上计入一笔贷方金额。未来的某一天,Tom取回了25美元,银行不会直接把100美元修改成75美元,而是在同一个账本上,新增一笔借方金额25美元。从这个例子中可以看出,账本是一种特殊的数据存储方式,它不允许修改历史数据,要改变账户的余额只能通过新增和追加记录来实现。区块链是与账本存在共同特征的数据库,新的数据只能通过追加的方式进行存储,没有任何修改历史数据的可能。

 加密技术

 散列是将输入的数据转换成一个固定长度的随机字符串(散列值)的过程

 在线哈希计算器:https://www.lddgo.net/encrypt/hash

 二.什么是以太坊

官方网站:以太坊开发者资源 | ethereum.org

以太坊是区块链,但不仅仅是区块链,它在区块链的基础上架构了一个虚拟机,可以在这个虚拟机上用以太坊指定的语言运行程序,这个指定的语言是solidty,程序即智能合约。

 以太坊相当于分散在世界各地的节点共同组成的公共电脑。

以太币 

在以太坊这个公共电脑上运行程序就像是在网吧上网,必须要付费,这个地方不是付人名币而是以太币。

gas

也可以把以太坊理解成联通全球的道路网,智能合约在上面运行就像是在这个道路上面开车,需要耗费汽油。

以太坊节点

当我们在本技术文档中使用节点一词时,我们指的是以太坊客户端

不同的客户端是由不同的团队用不同的编程语言实现的,但它们都 "说 "着相同的协议,遵循相同的规则。因此,它们都可以用来操作和与同一个以太坊网络进行交互一个节点需要运行两种客户端软件:共识客户端和执行客户端。

执行客户端(也称为执行引擎、EL 客户端或旧称“以太坊 1”客户端)侦听网络中广播的新交易,并在以太坊虚拟机中执行它们,并保存所有当前以太坊数据的最新状态和数据库。

共识客户端(也称为信标节点、CL 客户端或旧称“以太坊 2”客户端)实现权益证明共识算法,使网络能够根据来自执行客户端的经验证数据达成一致。 此外还有名为“验证者”的第三种软件,它们可被添加到共识客户端中,使节点能参与保护网络安全。

 

 以太坊账户

以太坊帐户 | ethereum.org

帐户是存储以太币之处。 用户可以初始化帐户,将以太币存入帐户,并将自己帐户中的以太币转账给其他用户。 帐户和帐户余额存储在以太坊虚拟机中的一个大表格中,是以太坊虚拟机总体状态的一部分。

以太坊有两种帐户类型:

外部所有的帐户 (EOA) – 由任何拥有私钥的人控制

合约帐户 – 部署到网络上的智能合约,由代码控制。 了解智能合约。

这两种帐户类型都能: 接收、持有和发送 ETH 和 token 与已部署的智能合约进行交互 主要区别 外部持有 创建帐户是免费的 可以发起交易 外部所有的帐户之间只能进行以太币和代币交易 由一对加密密钥组成:控制帐户活动的公钥和私钥

交易

交易是由帐户发出,带密码学签名的指令。 帐户将发起交易以更新以太坊网络的状态。 最简单的交易是将 ETH 从一个帐户转到另一个帐户。

三.什么是智能合约

智能合约简介 | ethereum.org

智能合约只是一个运行在以太坊链上的一个程序。 它是位于以太坊区块链上一个特定地址的一系列代码(函数)和数据(状态)。

智能合约也是一个以太坊帐户,我们称之为合约帐户。 这意味着它们有余额,可以成为交易的对象。 但是,他们无法被人操控,他们是被部署在网络上作为程序运行着。 个人用户可以通过提交交易执行智能合约的某一个函数来与智能合约进行交互。 智能合约能像常规合约一样定义规则,并通过代码自动强制执行。 默认情况下,您无法删除智能合约,与它们的交互是不可逆的。

 

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

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

相关文章

针对KZG承诺和高效laconic OT的extractable witness encryption

1. 引言 2024年以太坊基金会等成员论文 Extractable Witness Encryption for KZG Commitments and Efficient Laconic OT,开源代码实现见: https://github.com/rot256/research-we-kzg(Rust) 在该论文中,提供了一种…

【漏洞复现】大华智慧园区综合管理平台信息泄露漏洞

Nx01 产品简介 大华智慧园区综合管理平台是一款综合管理平台,具备园区运营、资源调配和智能服务等功能。该平台旨在协助优化园区资源分配,满足多元化的管理需求,同时通过提供智能服务,增强使用体验。 Nx02 漏洞描述 大华智慧园区…

WPF 使用DrawingContext绘图,指定忽略一个区域,比如绘制同心圆扣除内圆范围

WPF 使用DrawingContext绘图,指定忽略一个区域,比如绘制同心圆扣除内圆范围 using System; using System.Windows; using System.Windows.Media;public class MyDrawingVisual : DrawingVisual {public void DrawEllipseWithHole(){using (DrawingCont…

kafka学习笔记三

第二篇 外部系统集成 Flume、Spark、Flink、SpringBoot 这些组件都可以作为kafka的生产者和消费者,在企业中非常常见。 Flume官网:Welcome to Apache Flume — Apache Flume Flink:Apache Flink_百度百科 Spark:Apache Spark…

微服务Springcloud智慧工地APP源码 AI人工智能识别 支持多工地使用

目录 一、现状描述 二、行业难点 APP端功能 一、项目人员 二、视频监控 三、危大工程 四、绿色施工 五、安全隐患 AI智能识别 环境监测 实名制管理 智慧监测 智慧工地全套解决方案 一、现状描述 建筑工程建设具有明显的生产规模大宗性与生产场所固定性的特点。建…

Alist访问主页显示空白解决方法

文章目录 问题记录问题探索和解决网络方案问题探究脚本内容查看 最终解决教程 问题记录 访问Alist主页显示空白,按F12打开开发人员工具 ,选择控制台,报错如下 index.75e31196.js:20 Uncaught TypeError: Cannot assign to read only property __symbo…

科技论文编写思路

科技论文编写思路 1.基本框架2.课题可行性评估1.研究目标和意义2.研究方法和技术3.可行性和可操作性4.风险和不确定性5.经济性和资源投入6.成果预期和评估 3.写作思路4.利用AI读论文5.实验流程 1.基本框架 IntroductionRelated worksMethodExperiment and analysisDiscussionC…

关于电商API接口数据采集,您需要的了解更多!

关于数据采集 随着企业业务数字化转型的推进,非数字原生企业对数据的感知和获取提出了新的要求和挑战,原有信息化平台的数据输出和人工录入能力已经远远满足不了企业内部组织在数字化下的运作需求。企业需要构建数据感知能力,采用现代化手段…

SQLlabs46关

如果我们直接用列去排序 ?sortusername/password username: passward 可以看到顺序是不同的,当然第一列第二列第三列也可以,基本上都是这个原理,那怎么去实现注入呢,我们主要是通过rand()去实现一个盲注或者报错注入…

Day05:反弹SHELL不回显带外正反向连接防火墙出入站文件下载

目录 常规基本渗透命令 文件上传下载-解决无图形化&解决数据传输 反弹Shell命令-解决数据回显&解决数据通讯 防火墙绕过-正向连接&反向连接&内网服务器 防火墙组合数据不回显-ICMP带外查询Dnslog 思维导图 章节知识点: 应用架构:W…

浅谈 Linux 网络编程 - 网络字节序

文章目录 前言核心知识关于 小端法关于 大端法网络字节序的转换 函数 前言 在进行 socket 网络编程时,会用到字节流的转换函数、例如 inet_pton、htons 等,那么为什么要用到这些函数呢,本篇主要就是对这部分进行介绍。 核心知识 重点需要记…

HTML5 CSS3 提高

一,HTML5的新特性 这些新特性都有兼容性问题,基本是IE9以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。 1.1新增语义化标签 注意: 1这种语义化标签主要是针对搜索引擎的 2这些新标签在页面…

36.云原生之SpringCloud+k8s实践

云原生专栏大纲 文章目录 SpringCloudk8s介绍spring-cloud-kubernetes服务发现配置管理负载均衡选主 spring-cloud-bookinfo案例构建项目环境配置namespace部署与验证productpagegatewaybookinfo-admindetailsratingsreviewsreviews-v1reviews-v2 总结 SpringCloudk8s介绍 ht…

Day04:APP架构小程序H5+Vue语言Web封装原生开发Flutter

目录 常见APP开发架构 APP-开发架构-原生态-IDEA APP-开发架构-Web封装-平台 APP-开发架构-H5&Vue-HBuilderX WX小程序-开发架构-Web封装-平台 WX小程序-开发架构-H5&Vue-HBuilderX 思维导图 章节知识点: 应用架构:Web/APP/云应用/三方服…

Oracle中序列

1. Sequence 定义 在Oracle中可以用SEQUENCE生成自增字段。Sequence序列是Oracle中用于生成数字序列的对象,可以创建一个唯一的数字作为主键。 2. 为什么要用 Sequence 你可能有疑问为什么要使用序列? 不能使用一个存储主键的表并每次递增吗&#xf…

使用 kubeadm 部署k8s集群

一、所有节点系统初始化 1、常规初始化 2、内核版本升级以及内核限制文件参数修改 还可以考虑将旧版本的内核卸载 二、准备nginx负载均衡器和keepalived nginx四层代理: keepalived配置: nginx检测脚本: 三、所有节点部署docker&#xff0c…

Linux-Uboot命令

help命令 进入 uboot 的命令行模式后输入“help”或者“?”,然后按下回车即可查看当前 uboot 所支持的命令。 查看某一个命令的帮助信息:?命令名称 或 help命令名称 信息查询命令 常用的和信息查询有关的命令有 3 个…

3D工业相机及品牌集合

3D相机可以获取物理世界的空间信息,即立体三维的物理信息,不仅可以拍摄到场景的二维图像,而且能获取物体之间的位置关系,再经过进一步深化处理,还能完成三维建模等应用。 3D相机三种方案 1、结构光 通常采用特定波长…

如何使用ETLCloud拉通金蝶云

一、ETLCloud集成组件 ETLCloud采用了一种创新的基于平台底座的理念。它通过将组件和平台进行分离,用户可以在平台上自行下载和安装所需的组件,而无需升级整个底座版本。这样用户就可以通过不断升级组件来增强数据集成平台的处理能力。同时,…

论文阅读:SOLOv2: Dynamic, Faster and Stronger

目录 概要 Motivation 整体架构流程 技术细节 小结 论文地址:[2003.10152] SOLOv2: Dynamic and Fast Instance Segmentation (arxiv.org) 代码地址:GitHub - WXinlong/SOLO: SOLO and SOLOv2 for instance segmentation, ECCV 2020 & NeurIPS…