- 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