当前位置: 首页 > article >正文

web3-区块链的交互性以及编程的角度看待智能合约

web3-区块链的交互性以及编程的角度看待智能合约

跨链交互性

交互性

  • 用户在某一区块链生态上拥有的资产和储备

​ 目标:使用户能够把资产和储备移动到另一个区块链生态上

可组合性

  • 使在某一区块链的DAPP能调用另一个区块链上的DAPP

如果全世界都在用以太坊就会很容易

但是实际情况是很多区块链生态需要进行交互;一些跨链协议:XCMP,IBC等等

如下图将自己的资产从以太坊上转移到Solana,Bit等等
在这里插入图片描述

如何移动资产?建造联邦链桥(跨链桥)

为什么需要外部的校验者?链桥合约不能用于存储用来签名的密钥

如下图所示,校验者的安全系数很差,校验者们会收到很多的攻击被篡改等风险
在这里插入图片描述

从编程的角度看待智能合约

数字货币:只是区块链的应用

在程序员的角度来看:就是一个可以持续追踪系统内所有用户的一个账户和账户之间进行结算的一种共识系统。用户可以根据每一个应用程序之间的规则,通过在其之间进行一个数字货币的转换或者是交易,从而与公共共识系统相关的交互。
在这里插入图片描述

智能合约在区块链上运行的使用者定义程序

每一个智能合约就是每一个应用程序
在这里插入图片描述

数字货币:只是一种区块链的应用

在这里插入图片描述

例:在以太坊上注册域名

下方的函数的意思就是:检查域名是否被别人注册或者使用,然后将域名赋值给domain
在这里插入图片描述

合约对象其实是储存在区块链上的,他有一个注册表 registerDomain的函数;如果有一个人想要去注册一个“defi.io”的域名,他就会在合约中去唤醒这个registerDomain函数,并且将字符串中的“defi.io”输入到对应的函数种;然后任何在区块链网络中人人都可以去注册表中查询选择这个“defi.io”的拥有者。
在这里插入图片描述

例子:
在这里插入图片描述

合约之间的交互

使用者不仅仅会去唤醒合约的对象的一些函数功能;而且合约的代码也会去描述是如何发送合约的信息,如何去唤醒另一个合约的函数功能;常见的方式就是多账号多签名的方式,许多不同的使用者去控制合约对象所拥有的资产;如下图transferToken,每个人都有解开这个合约的权重,比方说有5个人每个人有20%的权重那么就需要2/3的人同意才能解开。
在这里插入图片描述

合约编程模型

合约类别: 定义合约的程序代码及存储变量

合约对象: 一个存在于区块链上的类别实例

存储字段: 由合约存储的变量

函数/方式: 可被唤醒来跑既定代码,更新合约状态

**访问控制:**使用“require0”来取消一些未被授权的交易。你也可用它来检视调用这个函数的调用者

组合: 在多个合约之间的交互

总结

本文从区块链交互性和编程角度探讨智能合约技术。跨链交互性方面,分析了资产在不同区块链生态间的转移需求,介绍了跨链协议和联邦链桥方案,并指出校验者机制的安全风险。编程视角下,阐述了智能合约作为区块链上用户定义程序的特点:1)数字货币作为基础应用,实现账户跟踪与结算;2)合约对象存储在链上,包含存储字段和可调用函数;3)支持合约间交互和多签名控制机制;4)包含访问控制和安全验证功能。通过域名注册等实例,展示了智能合约的实际应用场景和工作原理。

http://www.lryc.cn/news/2399591.html

相关文章:

  • 数据结构(7)—— 二叉树(1)
  • ROS1和ROS2的区别autoware.ai和autoware.universe的区别
  • 如何使用 Docker 部署grafana和loki收集vllm日志?
  • Kafka入门- 基础命令操作指南
  • 目标检测我来惹1 R-CNN
  • lua的笔记记录
  • 智能进化论:AI必须跨越的四大认知鸿沟
  • L2-056 被n整除的n位数 - java
  • 传统足浴行业数字化转型:线上预约平台的技术架构与商业逻辑
  • Java-IO流之字节输入流详解
  • 从OCR到Document Parsing,AI时代的非结构化数据处理发生了什么改变?
  • 【C/C++】入门grpc的idl
  • 【Java实用工具类】手撸SqlBuilder工具类,优雅拼接动态SQL,MyBatisPlus同款风格!
  • 宇树科技更名“股份有限公司”深度解析:机器人企业IPO前奏与资本化路径
  • Inno Setup 安装向导各个页面详解
  • 转战web3远程工作的英语学习的路线规划
  • OPENCV重点结构体Mat的讲解
  • Java 创建线程池的几种方式
  • 【趣味Html】第11课:动态闪烁发光粒子五角星
  • AnyIO Event:异步编程中的同步利器
  • CFTel:一种基于云雾自动化的鲁棒且可扩展的远程机器人架构
  • Educational Codeforces Round 179 (Rated for Div. 2)
  • 完成一个可交互的k8s管理平台的页面开发
  • 多线程编程技术解析及示例:pthread_cond_timedwait、pthread_mutex_lock 和 pthread_mutex_trylock
  • vue实现点击单选或者多选模式
  • Windows系统工具:WinToolsPlus 之 SQL Server 日志清理
  • 在Windows11上安装 Ubuntu WSL
  • 嵌入式Linux之RK3568
  • Elasticsearch的插件(Plugin)系统介绍
  • 提取 PDF 文件中的文字以及图片中的文字