脉波开发者文档
  • 脉波开发者文档
  • 基础主題
    • 脉波简介
    • MAPO币
    • 全链去中心化应用
    • 全链应用与单链或多链应用的区别
    • 第三方信任跨链与点对点跨链方案区别
    • 比特币二层
      • brc-201
    • 预言机 Oracle
      • Supra: MAP Protocol 上的去中心化预言机
    • 帐户
    • 交易
    • 区块
    • MPT树
    • RLP编码
    • Gas费用
    • 消息跨链
    • 轻客户端
      • MAPO轻客户端
    • 全链开发组件层MOS
      • MOS接口和功能
      • MOS的部署
      • Messenger
    • 中继链(atlas)
      • 节点架构
        • 中继链(atlas)架构 - 区块和交易结构
        • 创世
          • 创世配置 - 介绍创世配置文件
          • 创世合约
            • ABI
              • Accounts
              • Election
              • EpochRewards
              • LockedGold
              • Validators
            • 地址
            • 部署
        • 预编译合约 - 支持的预编译合约
        • 协议
          • Proof of Stake
          • 共识
          • 选举
          • 奖励
          • 治理
      • 部署节点 - 包括公共RPC节点
        • 运行节点(中继链)
        • 归档节点(中继链)
        • 引导节点(中继链)
        • 验证节点 (中继链)
        • RPC节点(中继链)
      • Marker工具 - atlas的简易客户端工具
        • Genesis
        • Validator
        • Vote
        • Common
      • 搭建私有网络
      • 公共网络服务信息
        • 公共网络
      • 示例
        • 如何成为一个 Validator 并加入到 Atlas 网络中
        • 如何成为一个 Validator 并加入到 Atlas 网络中[高级]
    • Compass(maintainer,messenger)
      • Compass - 架构及模块说明
      • Compass配置参数
      • Compass环境与部署
      • Compass二次开发 - 基于compass定义自己的路由服务
  • MAPO技术堆栈
    • 堆栈
      • 接入的链
    • EVM兼容
      • 智能合约语言
      • 智能合约结构
      • 智能合约库
      • 编译智能合约
      • 测试智能合约
      • 部署智能合约
      • 可组合性
      • 智能合约安全性
      • 智能合约形式化验证
      • 开发框架
      • 开发网络
    • 实现跨链互通
      • EVM兼容链的跨链互通
        • 轻客户端验证
        • 轻客户端状态更新
        • MOS层
      • 非EVM兼容链的跨链互通
        • 轻客户端验证
        • 轻客户端状态更新
        • MOS层
    • 如何开发全链应用
    • 轻客户端信息
    • SDK/API - mapo支持的API
      • MOS接口
      • 轻客户端接口
      • 中继链RPC
        • json-rpc
          • atlas json rpc
          • atlas consensus rpc
        • javaScript sdk
        • go-sdk
      • 后端API
        • 浏览器API
        • 数据统计与分析API
  • 零知识证明(zk)
    • 零知识证明
Powered by GitBook
On this page
  • 轻客户端与SPV
  • MAPO轻客户端
  1. 基础主題

轻客户端

什么是轻客户端

轻客户端(Light Client)的原理是通过一种轻量级的方式验证区块链上的交易和状态,而不需要完全下载和存储整个区块链数据。其工作原理基于以下几个关键概念:

  • 区块头验证:轻客户端只同步区块链的区块头数据,而不下载区块链的完整交易数据。区块头包含了区块的重要信息,如哈希值、时间戳、难度目标等。轻客户端验证这些区块头是否满足区块链的共识规则。

  • Merkle 树验证:为了验证特定交易或状态,轻客户端可以使用 Merkle 树结构。Merkle 树是一种二叉树结构,每个叶节点包含一个数据块的哈希值,而非叶节点包含其子节点的哈希值。通过比较目标数据的哈希值与树根的哈希值,轻客户端可以验证数据的完整性。

  • 交易和状态证明:轻客户端可以请求区块链中的全节点或全节点的证明来验证特定交易或状态。这些证明通常基于 Merkle 树,证明了目标数据的存在和有效性。

  • 创世块验证:轻客户端需要验证创世块(Genesis Block),以确保从一开始的链状态是正确的。这通常包括验证创世块的签名和其他元数据。

  • 难度目标验证:轻客户端还验证了每个区块的难度目标,以确保该区块满足共识规则,并且是通过工作量证明挖出的。

  • 反向验证:轻客户端可以向网络中的全节点发出请求,以获取所需的证明和数据。它可以向多个全节点请求数据,并通过比较这些数据来验证其一致性。

总的来说,轻客户端的工作原理是依赖于验证区块头、使用 Merkle 树验证数据、请求证明和数据,以及反向验证来确保区块链的安全性和完整性。这使得轻客户端能够在轻量级的情况下验证区块链的交易和状态,而不需要完全节点的资源和存储。

轻客户端与SPV

轻客户端(Light Client)和SPV(Simplified Payment Verification)是两种用于在区块链上验证交易和状态的相似但不完全相同的概念。它们之间有一些关联,但也有一些区别:

轻客户端(Light Client):

  • 轻客户端是一种轻量级的区块链节点,通常不需要下载和存储整个区块链数据。

  • 轻客户端可以验证区块链上的交易和状态,但通常会选择性地下载和验证区块头和部分交易,以验证所关心的交易。

  • 轻客户端可以用于执行更广泛的操作,包括查询智能合约状态、验证链上事件等。

SPV(Simplified Payment Verification):

  • SPV 是比特币中的一个概念,用于验证比特币交易的轻量级方法。

  • SPV 允许钱包客户端验证自己的交易,而不需要下载整个比特币区块链。它只需要下载和验证区块头。

  • SPV 侧重于支付验证,通常用于验证比特币交易的确认,以确保接收到的支付是有效的。

关系和区别:

共同点:

轻客户端和SPV都是为了在区块链上进行轻量级验证而设计的。 两者都通过验证区块头来实现验证,而不是验证整个区块链的所有数据。

区别:

SPV 是比特币特有的术语,主要用于支付验证。它的重点是验证支付交易,而不涉及智能合约或更复杂的区块链操作。 轻客户端是一个更通用的术语,可用于各种区块链,包括以太坊、Polkadot等。它可以执行更广泛的操作,包括查询智能合约状态、验证链上事件等。

总的来说,轻客户端是一个更广泛的概念,可以用于不同的区块链,并可以执行更多的功能。而SPV是一个特定于比特币的术语,主要用于支付验证。在比特币生态系统中,SPV是轻客户端的一个子集。

MAPO轻客户端

MAPO轻客户端主要满足于验证交易的有效性和合法性,所以MAPO轻客户端只需要实现创世区块,区块头验证,MPT验证三个功能,而无需实现与全节点的交互。

  • 创世区块: MAPO轻客户端可以支持自定义高度作为创世区块,而不需要像普通轻客户端一样从创世高度开始同步数据。

Previous消息跨链NextMAPO轻客户端

Last updated 1 year ago

区块头验证: MAPO轻客户端同步区块头数据,并根据MAPO-Relay-Chain的来验证区块头。

MPT验证: MAPO轻客户端的验证主要用于验证交易的有效性和合法性。主要通过验证交易对应的Receipt及该Receipt所在的该交易所包含的区块对应的ReceiptMPT树所对应的证明数据,使得计算出ReceiptRoot与区块头里的ReceiptRoot一致。

共识机制
MPT