• EOS账户依赖于ECC加密算法
  • 虚拟机管理智能合约与EOS账户体系有交叉

1.账户、权限管理
在这里插入图片描述

  • EOS权限管理
    在这里插入图片描述

2.钱包(Wallet)

  • 存储密钥
  • Lock和Unlock状态,需要密码去解锁
  • 签名授权,转账时实际上就是做一个签名

3.账户(Account)

  • 可读名字(12字符),被个人或组织(多人)拥有
  • 多权限管理、支持多签名、支持自定义权限
  • 可定义Action和Handler

4.Action和Handler

  • Action和Handler的区别
    在这里插入图片描述

5.权限管理举例

  • 默认账户配置
  • 单一签名:有一个key,就拥有所有权限,是不安全的
    在这里插入图片描述
  • 多签名和自定义权限控制
  • Owner有两个账户,权重都是1,加入想用Owner去变更数据,bob账户自己是做不了的,他权重是1,但Owner要求阈值为2,也就是大于等于2才可以
    在这里插入图片描述

6.被盗账户恢复

  • 账户A预先指定一个恢复账户B
  • 若账户A私钥被盗,账户A最近30天活跃的任何一个owner key与账户B一起,可以重置账户A的owner key,恢复对账户A的控制权

7.EOS虚拟机环境介绍

  • EOS虚拟机类似以太坊的EVM,是一个沙盒的环境,与本机是隔离的、安全的执行环境,是EOS中运行智能合约的容器,从设计上与EOS.IO是分离的
  • LLVM是一系列分模块、可重用的编译工具链,提供了一种代码编写良好的中间表示,可以作为多种语言的后端,还可以提供与变成语言无关的优化和针对多种cpu的代码生成功能
  • 传统的静态编译器(如gcc)通常将编译为三个阶段,分别由三个组件来完成具体工作,分别为前端、优化器和后端,如图
  • 前端接收源码,后端产生机器代码,也就是可执行文件,比如C语言编译过程如图下面
    在这里插入图片描述
  • LLVM架构的主要组成部分,与gcc类似,也分3个阶段,不过比gcc复杂的多
  • 前端:获取源代码,可选择不同的编译器来作为LLVM的前端,如gcc,clang
  • 优化器:优化代码
  • 后端:生成实际的机器码
    在这里插入图片描述
    在这里插入图片描述

8.WebAssembly

  • 是一个虚拟化的汇编语言
  • 也就是WASM最终执行的形式
  • 它允许用诸如C、C++这种编程语言编写运行在web浏览器中的程序
  • demo网址:https://webassembly.org/demo/
  • 最终编译为.wasm文件,WebAssembly支持最好的编译器工具链是LLVM,当前端语言变为LLVM IR,也就是中间代码时,说明LLVM已经理解了代码,它会对代码自动做一些优化
  • WebAssembly格式最终会产生两种文件,wasm和wast
  • wasm是二进制格式
  • wast是可读的文本格式
  • C++写的智能合约会生成wasm文件
  • eos的虚拟机环境:WAVM(WebAssembly Virtual Machine)支持wasm和wast

9.ECC加密算法

  • 椭圆曲线加密算法(ECC)的应用很广泛,TLS、PGP、SSH都在使用它,包括比特币、以太坊和EOS
  • ECC应用了离散数学中的有限循环群,构成了一个单向函数Q=nP,构成了一对密钥
    在这里插入图片描述

10.ECDH算法

  • EC是elliptic curves的意思,DH是Diffie-Hellman的意思,是密钥协商算法,不是加解密算法
  • 应用场景:两端(Alice和Bob)想要安全交换信息,并且第三方不能获取到信息,需要约定一个对称加密密钥

11.ECC与RSA对比

  • ECC算法单位安全强度高于RSA算法,ECC更难被破解
  • ECC算法计算速度更快

学院Go语言视频主页
https://edu.csdn.net/lecturer/1928

[清华团队带你实战区块链开发]
(https://ke.qq.com/course/344443?tuin=3d17195d)
扫码获取海量视频及源码 QQ群:
721929980
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐