01-EOS基础知识

Catalogue
  1. 1. EOSIO/EOS-Mainnet/EOS
  2. 2. BP节点
  3. 3. 账户/公钥/私钥
  4. 4. 钱包
  5. 5. CPU/NET/RAM
  6. 6. CPU
  7. 7. NET
  8. 8. RAM
  9. 9. 抵押和买卖的逻辑差异
  10. 10. 参考资料

  2017年5月,EOS团队在Github上发布了EOS白皮书。
  2017年6月,EOS通证开始ICO并持续341天。
  2018年6月,EOS主网上线。

EOSIO/EOS-Mainnet/EOS

2017年,一个叫Block.one的公司开发了一个叫EOSIO的软件。为了开发这个软件,Block.one进行了一个历时350天的众筹,最后募集资金超过40亿美元。EOSIO这个软件是后来的EOS-Mainnet和其他区块链网络(BOS、Telos等等)构建网络的基础工具。

EOS-Mainnet,也就是EOS主网,是我们目前使用最广泛的基于EOSIO软件的区块链网络。网上听说的很多EOS Dapp(Decentralized Application,去中心化的app)都是运行在EOS主网上,大多数人一说EOS,基本上指的就是EOS主网。

EOS是EOS主网上的原生代币的符号,EOS的数量体现了你在EOS主网上可使用资源和可参与治理的多少。EOS本身具有价格,可以在各大交易所购买。

BP节点

Block Producer 区块生产者,也称超级节点,提供带宽、计算能力和存储,获得出块 Token 奖励,类似矿工,Token 的每年增长比例不会超过 5%

账户/公钥/私钥

我们拥有的EOS代币是存储在云端的,储存在哪里呢?(一般来说)储存在对应的账户上。在EOS上,账户类似于用户名,所有的操作都是以账户为基础的,转账、投票、更新信息,参与Dapp等等。账户需要注册,至多12位字符。

如何证明这个账户是属于你的而不是别人的呢?这个就需要用到公钥和私钥,用互联网来类比的话就是密码,不过这个密码是由公钥和私钥两部分构成的。

形象地理解,公钥和私钥就相当于锁和钥匙,私钥,也就是钥匙,掌握在你自己手里;公钥,也就是锁,和账户绑定。如果你想在账户里进行操作,就需要用你手里的私钥和公钥匹配,如果匹配上了,那么账户就认为你是所有者。

实际上,EOS的账户系统还可以更加复杂,比如给予每个公钥/私钥对不同的权限(Owner和Active),对一个账户就行多人共管(Multi-sig,多签)等等,暂时先不展开了。

注意,一个公钥/私钥对可以同时控制多个账户。

钱包

我觉得,钱包完全是被错误翻译导致理解出现歧义的一个东西。前面说过,我们拥有的EOS是储存在云端的账号里面的,因此它的相关数据并不物理地存储在本地的硬件上(手机、电脑),而是存在EOS网络上。

就如同我们可以通过浏览器方便、快捷地浏览互联网的内容一样,我们也可以通过钱包方便、快捷地接入EOS主网,将私钥与账户匹配,进行相关的操作。钱包本质是一个带有电子签名功能的浏览器。

所以,只要记住私钥,你可以借助任何形式的钱包登录到EOS主网上。钱包出现的任何问题,不会影响你对账户的所有权,也不会影响你的资产。

很多钱包会推出助记词,还会提示你设置一个密码,这些只是钱包帮助你提高安全性的一种手段。只要记住私钥,钱包的密码忘记了没有任何关系,删掉重新导入一次私钥就可以。

常用的钱包,PC端和国外主要用Scatter,手机端和国内主要用TokenPocket、Meetone。这些可以通过他们的官网下载。

每个EOS账户里面存在着三者资源,所有的操作都需要花费这三种资源,可以理解,这三种资源是你使用EOS网络的成本。这三种资源叫做计算(CPU)、存储(RAM)和网络(NET)。

如何理解?把EOS看做一个云计算服务平台,这三种资源就比较容易理解了。

CPU/NET/RAM

EOS平台类似于一个运行在分布式服务器(21个节点)上的一个PaaS类公有云服务,而在这个公有云中,存在一种通证(Token)——EOS,能够对整个PaaS的资源(治理权和资源权,注意不仅仅是资源权)进行有效的配置。在这个平台上,EOS提供了一个软件部署平台(runtime),Dapp的开发者只需要关注自己的业务逻辑,不需要关注底层。

EOS的账户体系内的资源也是模拟了IaaS底层的资源。IaaS提供的一般是通用计算、存储和网络三大基础资源,对应到EOS的账户体系,EOS账户内也包括了计算(CPU)、存储(RAM)和网络(NET)三大资源,但是具体含义又略有不同。

项目 传统含义 EOS上含义
计算(CPU) 中央处理单元,指的是负责在计算机中执行指令和处理信息的硬件; 一种按时间计价的资源(单位:微秒),用来衡量EOS节点应该对你帐户中的交易确认所投入的时间;
网络(NET) 互联网带宽; 一种以空间计价的资源(单位:字节),用来衡量当在P2P层上传输数据时需要多少区块的网络描述来存储你的交易数据;
存储(RAM) 存储是用来存储云平台上的所有数据。RAM是指运行内存,速度更快,但储存是暂时的,断电后内容就会消失; RAM不再是临时存储,而是作为主储存层,用来储存所有的数据。相当于是让储存速度更快的内存(RAM)充当了硬盘的功能。在RAM中存储数据库,可以让读取数据的速度更快。

CPU

  1. 什么是CPU?

每当你向EOS网络提交交易时,BP节点们都必须处理该交易。 CPU是BP节点在处理、验证交易时必须花费的时间,以微秒(μs)为单位。

  1. CPU的价格?

如果整个EOS网上有1000个代币被抵押在CPU上,而我的账户抵押了20个,那么我保证会拥有CPU总容量的2%的使用权。 如果网络没有被大量使用并且没有达到激活限速阈值,我的CPU用量能超过总量的2%,一旦网络繁忙,达到了该阈值,我就最多只能用到我的2%。

  1. 什么时候消耗CPU?

当用户调用智能合约时,区块生产者需要根据智能合约地址查找合约代码,然后将代码加载到内存中执行,这个过程需要消耗一定的CPU算力。CPU计算资源的计量方式为,运行智能合约(交易也属于智能合约的一种)所消耗的时间,用户每次调用智能合约都会消耗一点计算资源,如果消耗为0则无法继续执行合约。

  1. CPU如何恢复?

CPU的恢复周期是24小时,而且是线性恢复,某笔交易的CPU占用在24小时内直线递减为零。

NET

  1. 什么是NET?

当用户发送一笔交易信息后,区块生产者需要将这笔交易打包生成区块,然后将区块通过网络同步给其它生产者,这个过程需要消耗一定网络带宽资源。

  1. NET的价格?

系统会根据抵押EOS代币所占全网抵押EOS代币的比例,分配给用户对应的带宽资源。

  1. NET的计量方式?

NET的计量方式为,交易信息在区块中所占的字节数,比如,一条交易信息占用100字节,如果用户进行10笔交易的话,大概需要100 * 10 = 1KB。带宽资源的计费方式类似手机流量,用户每发送一笔交易信息就消耗一点带宽资源,如果带宽资源消耗为0,则无法继续发送交易信息。

  1. NET如何恢复?

NET的恢复周期也是24小时,也是线性恢复。

RAM

对整个世界来说,RAM是一种异变的内存,当你暂时储存之后,它就会消失。它在EOS中有点不同,我们用它做为主储存层。在EOS中,我们把所有东西都放在RAM中,这是为了性能的考虑,如今,Facebook也是在RAM中存储MySQL数据库,因为它的速度更快。RAM 是允许 EOS 每秒处理非常高交易量的主要因素之一:如果这些数据被磁盘存储,那么访问磁盘的时间将限制吞吐量。

  1. RAM的价格?

RAM的价格采用Bancor算法(这是另一个需要展开论述的内容了,此处略)计算得出,经过推导,算法精简如下(公式来自:newdex):

RAM价格 ≈ 当前EOS池子总量 / 当前全网未分配RAM

简单概括:RAM的价格会根据RAM的供应量来计算,如果RAM的供应量增加(实际供应量),那么,RAM的价格会下跌;如果RAM的供应量减少,则RAM的价格会上升。

  1. 什么时候消耗RAM?

EOS的RAM的本质和硬盘实际差不多。我们现在把硬盘的储存空间比喻成一间仓库的储存空间,把数据比作一件件的货物,仓库要放货物的时候就需要消耗RAM。

  • 需要消耗RAM:注册账户、第一次投票、转账(第一次转账时的转出方消耗)、购买RAM、
  • 不需要消耗RAM:更新数据(更新币余额,更换私钥,更新投票状态)

抵押和买卖的逻辑差异

CPU和NET可以通过抵押EOS获得(可以自己抵押,也可以让别人帮当抵押),如果不想抵押,可以通过租赁获得(具体在系统自带的资源交易所REX里面实现,或者找第三方租赁服务)。只要是抵押,是不会真正消耗EOS的,取消抵押后,EOS又回到账户中。

RAM则有一些不同,它主要是通过和系统交易买卖(Bancor算法计算的价格)实现的。同时RAM不能租赁,只能自己使用。

为什么会有这样的区别呢?

RAM是一种物理资产,在不扩容的前提下,量是固定的,且不会随着时间的增长而增长,具有一定的稀缺性;而NET、CPU资源则是一种虚拟资产,它的量是与时间相关的,时间越长量越大,一个月的NET/CPU的计算量是一天的30倍。

参考资料