热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

事务_微众WeCross跨链平台TTM可信事务机制

本文由编程笔记#小编为大家整理,主要介绍了微众WeCross跨链平台TTM可信事务机制相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了微众WeCross 跨链平台TTM可信事务机制相关的知识,希望对你有一定的参考价值。






1. 两个problem


  • 区块链网络需要相互获取对方链上的数据,由于它们并没有参与对方区块链的共识流程
  • 保证跨链交易中各自链上交易执行的事务性

2. TTM可信事务机制 (Trust Transaction Management)

采用密码学技术和分布式算法,保证区块链平台之间交互数据的真实可信且难以篡改,保证业务逻辑的原子事务性,使得区块链平台之间任何关联的两个交易能够完全执行或完全回滚

2.1 spv证明

多维度的默克尔证明


  • 多维度的默克尔证明,不仅能够验证交易存在性,还能够验证交易执行结果的正确性,为跨链交易可信执行以及后续章节将讲述的事务机制提供完备的可信验证。

  • 交易存在性验证是指验证某一笔交易是否真实存在于某个区块,确保跨链交易中双方所声称的资产或数据是真实存在的。

  • 交易执行结果正确性验证是指验证跨链交易是否已在双方各自的区块链上正确执行,保证跨链交易执行结果的正确性。

其中交易存在性验证需要用到交易默克尔根,交易执行结果正确性验证需要用到回执默克尔根。

3. 跨链事务机制

3.1 两阶段提交协议

投票阶段和提交阶段。为了让整个事务能够正常运行,两阶段提交协议涉及三个接口,分别是准备(Prepare)、提交(Commit)和回滚(Rollback)。
在这里插入图片描述
在这里插入图片描述

3.2 哈希时间锁定合约 (HTLC,Hashed Time Lock Contract)

哈希时间锁定合约为区块链资源新增三个接口,分别是锁定(Lock)、解锁(Unlock)和超时(Timeout)接口。
在这里插入图片描述

eg. 交换位于链 A 的资产 α 和位于链 B 的资产 β
step1. A 首先选取一个秘密随机数 S,使用特定的哈希算法计算出 S 的哈希值 H,之后 A 将H 发给 B。

step2. A 和 B 协商两个时间点 T0 和 T1,确保 T0 >T1。T0 和 T1 用于避免 A 或 B 单方延误交易,所以这其中的交易包 α 和交易包 β 都需要设定时间限制,超出这个时间限制后,相关资产立即撤销锁定,原路返回。

step3. A 基于 H 和 T0 创建资产锁定智能合约 LockContractA,该智能合约会锁定资产 α,其可以使用 S 来解锁并将资产 α 转移给 B,如果在 T0 前仍未解锁,则会自动撤销锁定,且不会发生任何资产转移。

step4. B 基于 H 和 T1 创建资产锁定智能合约 LockContractB,该智能合约会锁定资产 β,其可以使用 S 来解锁并将资产 β 转移给 A,如果在 T1 前仍未解锁,则会自动撤销锁
定,且不会发生任何资产转移。

step5. A 使用秘密随机数 S,调用 B 上的智能合约 LockContractB,将资产 β 转移给 A 。

step6. 如果 A 或 B 任意一方超时未执行操作,则在 T1 时间点后,B 资产会撤销锁定,T0时间点后,A 资产会撤销锁定,还原初始状态

在这里插入图片描述






推荐阅读
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 痞子衡嵌入式:对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异...
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异。近 ... [详细]
  • Flow 生态案例学习 | Emerald City为Flow上DAO、教育和开发铺平道路
    原文链接:https://www.onflow.org/post/emer ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • Ansibleplaybook roles安装redis实例(学习笔记二十九)
    1、相关redis参数:2、templatesredis.conf配置相关参数:daemonizeyespidfilevarrunredis_{{red ... [详细]
  • 环境Time2022-04-11Rust1.60.0前言说明基于标准库来学习各种数据结构,并不是从头实现数据结构,未考虑实现性能。特点相比较二叉树,二叉搜索树的左节点都比父节点小, ... [详细]
  • rust编程这篇文章是关于我通过解决Twitch上尚未解决的所有CtCI问题来学习Rust的经验。英国科学博物馆集团AdaLovelace的肖像Rust徽标,由Moz ... [详细]
  • 如果您是Java开发人员,您会发现Rust相对容易掌握,这要归功于这两种语言的相似性。technology-most-loved-dreaded-and-wantedclass& ... [详细]
author-avatar
Metoo婧婧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有