libra协议核心概念

交易和状态

libra协议两个核心基本概念-交易和状态。

在任何时间点,区块链都有一个“状态”。状态(或称为分布式账本状态)表示链上数据的当前快照。 在执行了交易后会更改区块链的状态。

Libra 区块链的客户端通过提交交易来请求更改分布式账本的状态,在区块链上一个签名交易包含如下部分:

  • 发送人地址 — 交易发起人的帐户地址。
  • 发送人的公钥 — 用于签署交易的私钥所对应的公钥。
  • 程序 — 程序包含以下内容:
    • Move语言的字节码交易脚本。
    • 可选的输入参数列表。对于点对点的交易中,输入包含接收人的信息,交易发送的金额。
    • 可选的需发布的字节码模块
  • Gas 价格 (以 microlibra/gas 为单位) — 发送方执行交易时需要为每单位gas支付的价格。 Gas是支付的是在区块链上计算和存储的费用。Gas是一个计算量的抽象,没有具体固定的真实价值。
  • Gas 上限 — 交易允许消耗的最大 Gas 量。
  • 序号 — 无符号整型,必须等于发送者帐户中存储的序列号(重放交易会拒绝)。
  • 过期时间 — 交易有效截止的时间。
  • 签名 — 发送人的数字签名。

Libra区块链中的所有数据都保存在单个版本化分布式数据库中(single-versioned distributed database)。

账户

Libra账户包含 Move 模块(modules)和Move 资源(resources)。

证明

Libra区块链中的所有数据都存储在单个版本化分布式数据库中。存储是用于记录确定过的区块交易及执行结果。区块链链用一个不断增长的 Merkle交易树 来表示。对于在区块链上执行的每个交易,交易树都会追加一个"叶子"

验证器节点 (验证器)

libra 区块链的客户创建交易并将其提交到验证器节点。验证器节点运行共识协议(与其他验证器节点一起),执行交易,并将交易和执行结果存储在区块链中。验证器节点决定哪些交易将添加到区块链,以及按什么样顺序进行交易。

验证器节点包含以下逻辑组件:准入控制 (AC),内存池(Mempool),共识 Consensus,执行 Execution,虚拟机(VM),存储 Storage

Libra 区块链使用LibraBFT,这是一个基于 HotStuff.的共识协议。LibraBFT进一步完善了HotStuff协议,引入了明确的活跃度机制,并提供了具体的延迟分析。

交易的生命周期

验证器之间的交互

MOVE:可编程资源语言

Move是一种可执行的字节码语言,用于实现自定义交易和智能合约。Move的关键特性能够使用具有线性逻辑的语法自定义资源类型:资源永远不会被复制或隐藏丢弃,只能在程序的存储位置之间移动。这些安全性由Move的类型系统在静态编译时得到保证。不单有这些特殊保护,资源也作为一个原生的程序值 - 可以存储在数据结构中,还是能作为参数传递给过程(procedures)程序,等等。

Move语言的主要功能:

  1. 可编程的Move交易脚本
  2. 可组合智能合约的Move模块
  3. Move的一等资源

libra 学习笔记相关推荐

  1. Diem(原Libra)学习笔记

    一.介绍 diem目标: 实现一个能够承载数十亿的账户的区块链系统,这个系统需要由 高吞吐量,低延迟 的交易能力以及一个高效的大容量存储系统: 极高的 安全性 ,足以保障资金和金融数据的安全: 足够的 ...

  2. RedShift: Transparent SNARKs from List Polynomial Commitments学习笔记

    1. 引言 纽约大学Kattis和Matter Labs团队2019年论文<RedShift: Transparent SNARKs from List Polynomial Commitmen ...

  3. Compressed sigma-Protocol Theory and Practical Application to Plug Play Secure Algorithmics学习笔记

    1. 引言 Thomas Attema等人2020年论文<Compressed sigma-Protocol Theory and Practical Application to Plug & ...

  4. Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记

    1. 引言 前序博客有: Lurk--Recursive zk-SNARKs编程语言 rank-1 constraint system R1CS Spartan中 Vitalik R1CS例子 SNA ...

  5. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  6. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  7. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  8. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  9. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

最新文章

  1. LNMP基础架构介绍与安装
  2. 1.7 Java 8中Map新增的方法
  3. 地理知识归纳:影响降水的九大因素
  4. java jpanel隐藏_java – 绘制JPanel隐藏菜单
  5. Shamir密钥分享算法 python实现
  6. 5G 时代,AI 如何破竹而出? | AI ProCon
  7. php jquery ajax实现用户名,php+jquery+ajax实现用户名验证
  8. iPhone7无服务问题解决方案-越狱绕过手机激活
  9. 三四线城市的房地产泡沫率先崩盘?
  10. 菜肴百度百科html,酸汤鱼
  11. 联系人管理系统 Python GUI版
  12. 厉害了!28岁程序员期权过亿,彪悍从字节退休!
  13. 关于dcm4chee方面的问题,求各位英雄帮助,小女子感激不尽.... ...
  14. 健身房有哪些令人讨厌的行为?
  15. 开发者必备的顶级Android开发工具,成功入职阿里
  16. 阿里云服务器配置远程打印机,电脑启用打印服务器配置
  17. 获取移动端ip的方法
  18. 怎样消除幸存者偏见?——谈谈成败观
  19. 开源H5选择器UI组件——Picker.js
  20. 关于uniapp编译小程序 引入全局scss问题解决方案

热门文章

  1. 关于三维模型从HFSS中导出的问题
  2. 直觉和潜意识_管理需要技巧和直觉
  3. (转)程序员如何静下心来高效学习
  4. 2021年5款最佳3D渲染软件
  5. BlackNurse新型DoS攻击 15M流量就可以打瘫思科防火墙 思科做出了回应
  6. ElasticsearchException: Bulk indexing has failures
  7. java package 注解,如何添加包级别注释或编辑package-info.java?
  8. SL651-2014水文监测RTU解决方案
  9. 计算机有关的基础知识,计算机基础知识之计算机中有关数及编码的知识
  10. 华为5月23日加班累死25岁程序员--胡新宇