上周 TokenFans Live 举行了第一期线上直播活动,由 imToken 社区运营负责人、TokenFans 品牌负责人 Simon 和 imToken 首席架构师 Kai、EOS Asia 联合创始人郭达峰进行了一场两个小时的对话。作为 EOS 21个启动超级节点之一,EOS Asia 在 EOS 技术领域进行了长期的研究,有着深厚的积累。本次访谈深入浅出,金句迭出,如果你希望对 EOS 生态有一个全面的了解,以下对话实录不容错过。
S:主持人 Simon ( imToken 社区运营负责人、TokenFans 品牌负责人 )
K:嘉宾 Kai ( imToken 首席架构师 )
G:嘉宾 郭达峰 ( EOS Asia 联合创始人 )
问题一:首先很多用户很关注的,EOS 相较于以太坊 ETH ,都在哪些地方做了改进?
G:首先我觉得 EOS 这种抵押获得带宽的模式是一个很有意思的创新。 EOS 一个很大的初衷是希望让区块链技术被更多的人用上,让 DApp 走向大众。这是他最根本想达到的一点,而这是在 GAS ( 注:矿工费 ) 模式下很难做到的。因为 GAS 模式下你想要做任何操作都要付矿工费,你要考虑一下要不要做,因此我只能做最重要的、比如说跟金融相关的一些操作。但是这样的话,就拦住了很多 DApp 在区块链上的应用。
K:对,我记得之前听过 BM ( 注:EOS 创始人 )分享说他创立 EOS 也是借鉴了他之前创办 Bitshares、steem 两个项目的经验,他说我要是在以太坊上实现这两个项目其实是实现不了了的,原因就是你刚才说的,需要 GAS 消耗。每个操作之前我都要先付钱,付了钱之后我才能够去做这个操作,因此等于是提高了这些操作的门槛。
S:以前大家说以太坊上的交易是 Peer to Peer 的,你不需要像银行转账一样去付手续费,但是实际上我们发现这个矿工费可能不比银行手续费低。
K:对,像去年 Cryptokitties 期间,一次转账要付出几十甚至上百块钱的矿工费。
G:所以 EOS 采用了抵押模式,你在上面的操作都是免费的。
K:但是我理解可能也不是完全的免费,而应该是租赁模式。
G:对,但是我只要抵押了我就拥有这样一个空间,那么当我要去做一些动作,比如我要发一篇博客,我就不会有那么大的顾虑。
S:对,这个也就是我们讨论的以太坊这样一种消耗 Gas 的模式和 EOS 的租赁模式的不同。
G:其次,从 TPS 角度来讲,EOS 也达到了以太坊难以达到的高度,像我们实际上达到了 500- 600 的TPS,而且还没到峰值,压测的时候达到过 2000 - 3000 的峰值。而且这个还会随着版本升级不断提高。
S:我记得看过一个嘲笑以太坊的图,说以太坊是一条乡间小路,而 EOS 可能是一个宽阔的八车道。
K:EOS 的优化思路还是把这条路继续修宽,而以太坊 2018年最重要的一个升级分片 ( Sharding ) ,他的思路是造很多很多的车道,来保证数据的高效来往。
G:对于 TPS 的追求,最根本的还是希望让更多的 DApp 在上面跑。
K:像 imToken 目前合作的一些 DApp 大家还是集中在让用户少操作,但是这肯定是一个妥协,我还是希望有朝一日可以实现让用户在区块链上玩打麻将的游戏,并且毫无延迟的感觉。
G:其实目前 EOS 是真正落地了并且能够实现了这一点,包括他接下来还会有继续提升 TPS 的方案。我有一个切身的感受,就是 EOS 主网激活,我转第一笔账的时候,有点惊呆了,怎么这么快!所以回到刚才讲的那一点就是最大的区别 BM 还是希望让区块链走向大众。
S:所以我看 EOS 的名字很有意思,他全名是 Enterprise Operation System,他是一个商用的 ,企业级的应用,这也是两者一个很大的不同。
G:对。也许未来 EOS 被大规模商用的时候,大众也许根本不需要去关注我在玩的这个应用背后跑的这个区块链。
问题二:EOS 之所以可以有这样的性能优势,和他特有的共识机制是分不开的。那么 DPoS 机制 相较于 PoW、PoS 有哪些优势?
K:先讲一下 Pow,最早是在比特币上应用。其实 PoW 的初衷也并不是让你去做那么多的计算,而是为了竞争出块。本质上是为了防止作恶、在竞争机制中提升作恶成本的一种手段,现在很多人会误解说区块链就是要消耗电力去挖矿,其实他也是一种临时的机制。
G:对,在 PoW 机制下你难以找到这么多的算力去攻击作恶,也是很有意思的一个方案。
K:而 PoS 是这样一种机制,就是当我们不需要消耗算力去挖矿的时候,如何维护共识,如何提升作恶成本,那么就需要有一个 Stake 的机制,就是我每个节点抵押资产进去。像今年上线的很多的区块链主链项目都会用这样的机制,包括以太坊也在尝试。
G:PoW、PoS 为什么慢呢,就是因为他需要达到更大规模的共识,它需要跳很多层,而 DPoS 的出现,他的一个核心理念就是能否减少需要达成共识的节点数量,控制在一个比较小的规模。因为需要达成共识的节点比较少,所以就会比较快。
K:但是带来的一个问题就是我要如何去相信这个少数人。
G:其实 PoW 现在也很集中了,像很多矿池算力非常集中,可以决定很多事情,让什么出,什么东西不给进。
K:现在区块链上要真正实现随机数也是很难的,因为矿池可以操控,可以反推出一个这样的块出来。
G:那 DPoS 的机制是这样的,就是假设现在已经是一个比较中心化的存在,那么是否可以找到一个数字是我们可接受的。
S:所以 21 是个很神奇的数字。不知道这个数字是怎么得来的?
G:我想也是因为 BM 他之前做过 Bitshares、steem 这样的几个实验,都是以 DPos 的模式去跑的。我觉得很重要的一个问题是,我们需要知道这 21个节点是怎么选出来的?谁上谁下?DPoS 的概念不是看你持有多少币,不是 PoS ,而是让那些持币者去投票,持币者根据他持币的权重投票选出来的一个节点。
G:而且投票机制会贯穿 EOS 的整个体系。
问题三:聊聊跟用户相关的一个问题,说说账户体系吧
K:像比特币、以太坊都是私钥通过椭圆加密反向推导出公钥,公钥做一个截取生成钱包地址,地址是一个复杂的哈希数。而 EOS 却有它独特的一个账户体系,这个对于很多用户是很好的。
G:我觉得还是回到 EOS 的一个出发点,就是 BM 他希望让更多的人去用区块链技术。像公钥这么长的东西,人是记不住的,很多人他还是只能记住一个简单的 account name 账号。
S:它是一个账号下面有多个账户。
K:而且它是一个不对称的 N:M 的,所以很多用户会说他有一个私钥怎么下面有好几个账户。
S:EOS 的多个账户是隔离的,就是我一个私钥下面有多个账户,然后里面的资产是分开的。我觉得这样的一个设计也是降低了用户的使用成本。
G:对,其实很多的应用,用户根本就不需要知道私钥、公钥的概念,他就一个用户名加密码,应用帮助用户去管理私钥公钥这些概念。这个是在 EOS 体系里内置的就可以使用的。
K:而且 EOS 的账号体系更复杂,比如说多签,他还有一个很好的设计:权限管理。
G:对。权限管理机制是非常有意思的。我可以讲一个很好玩的事情,你知道作为我们一个超级节点,每天都是有奖励的,但是这个奖励不是默认发给你的,我需要去发起一个请求去 claim ( 注:领取 ) 。但是这个 claim 默认我们是需要签名的,需要我的 Active Key,这是超级节点一个需要很高权限的签名,我不会一直保留着这个 Key 。于是我们现在就做了一个事情,我把 claim 这个领取奖励的事件就做了一个Action,我分了一个新的权限给他,这个权限只能用来 claim。也就是我现在这个专门用来 claim 的私钥,可以交给任何人,没关系的,但是这个私钥是只能去 claim 的。
K:就像一个只能帮你去取钱的出纳,但是花不了你的钱。
G:对,所以 EOS 这个账户体系、权限体系就设计的比较灵活。
S:但是这样的一种灵活的设计,带来的一个问题就是操作的复杂。那么针对这样的一个账户体系,imToken 在权限管理上做了哪些事情?
K:因为 EOS 系统它只给了一个默认的设计,就是有一个 owner,一个 active 这两个权限,但是实际上你可以挂任何的你想实现的权限。那么这样的一个设计带来的问题就是交互的复杂。我们也是一直持续的在研究和设计怎样给用户一个友好的界面。因为 imToken 一个很大的优点就是在功能、安全、体验这三者之间的一个平衡。
问题四:很多用户反馈,在使用 imToken 第一次导入 EOS 私钥的时候,就发现他的账户里只有 10个 EOS , 或者有的更少,0.1 个或者 2 个。当然我们都知道他是被自动抵押的。那么这个抵押机制是如何规定的?
G:这个结果确实是 BP ( 注:超级节点 ) 之间讨论了很久的一个共识。在 EOS 主网启动之前,EOS 的这个币是 ERC20 的币,需要在以太坊上创建一个 EOS 的私钥和公钥的 pair ,映射过去。也因为 EOS 它有抵押的这个模式,也就是说当你创建了一个新的 EOS 账号的时候,你是需要去花 EOS 的。因为你已经在消耗资源了。
所以创建了一个 EOS 账号之后,你里面没有 EOS ,就没法做任何操作,因为你需要创建账号的 EOS 和创建账号之后抵押的 EOS 。我们 BP 讨论下来发现,低于 1 个 EOS 的时候,操作会非常复杂,可能我给你创建了账户之后,你什么都不能干。所以我们就做了一个决定,只保留1个 EOS 以上的账号。低于 1 个 EOS 的统计了一下这类情况大概是 8000 个用户,综合差不多是 3000 个 EOS。
S:我有一个疑问,将来 EOS 涨到更高的价格的时候,现在这种机制会不会对用户是一个损失?
G:这个也是一个权衡吧,也是取决于内存的价格。我们默认每个节点是 64 G 的内存,如果节点的内存更大,那么可能价格就低一点。但是节点的运维费用就会更高。所以也是讨论了很久的一个决定。
K:如果未来扩容,有没有可能把这个数据再导回来?
G:我相信是有方法的,因为这个数据都还在。区块链上的数据都是可追溯的。
S:那是不是让这些用户不要放弃,依然保护好自己的私钥?
G:对。EOS 有一个很大的不同就是链上治理。我们这些 BP 们,对于这些事情是很关注的。如果有足够的持币者提出这个事情,我们就会拿出来讨论,技术上其实都是可以实现的。像有些用户的 EOS 被盗,也是可以找回的。只不过当初为了把主网启动顺利一点,没办法在那么短的时间做那么多事情。
问题五:刚才谈到自动抵押的问题,那么当用户在 imToken 上把抵押的 EOS 赎回的时候会出现一个提示,我们自动扣除了 0.5 EOS 作为后续的资源消耗费用。我的一个疑问就是这个 0.5 EOS 是怎么计算出来的?大概可以做哪些操作?用多久?
K:大概评估,可以满足 3 ~ 4 次转账或者抵押操作。但是在 EOS 系统里购买资源这个价格是动态的,我们是希望保留一些弹性让用户做一些后续的操作。
S:我们有没有做这样一个功能,就是让用户看到当前的 EOS 资源的价格,让用户明白我的这 0.5 个 EOS 都花在了哪里,给用户一个公开透明的提示。
K:确实,我们也是希望尽量让用户明白你抵押的 EOS 用在了哪里,不然用户心里也会疑惑。
问题六:刚才有一个问题没有提到,就是 EOS 在主网启动之前为什么要帮你自动抵押?
G:因为主网启动之后,他有一个投票的步骤,要投票数达到 15% 之后才能激活转账之类的这些功能。这也是避免很多人都去启动主网让大家来用造成的混乱。
K:提升启动主网的成本吧,不是说随随便便一个人就去启动主网。
G:对。而且也让大家有参与感,因为投票是贯穿整个 EOS 体系的。那投票的一个前提就是质押。
K:18 年很多链可能都会用 DPoS 这样的一个机制,EOS 的这种尝试也是一个先行者。
问题七:聊到抵押,EOS 的抵押是为了获取资源。那两位能不能深入聊聊 EOS 上的这三种资源 ( RAM/NET/CPU )
S:EOS 上这个 RAM 内存跟我们理解的运行内存一样吗?
K:比如你买一部手机,他会告诉你内存多少,能存多少照片多少歌,这个内存也是类似概念。因为区块链是一个共享账本的形式,属于你的帐是记在你头上的,就要消耗你的内存。就像一部手机你越用内存占用空间就越大。
G:NET 指的是通过抵押的方式你可以获得的带宽,比如你拥有 1% 的 EOS,全部抵押的话你就拥有全部网络 1% 的带宽,包括网络带宽和CPU的带宽。
K:你说的这两个资源其实就是 BP 的抽象。
G:是的。
S:用户抵押的这个 EOS 是抵押在整个网络中,并不是在 BP 这里?
G:是的,是在整个网络中的。
S:这些资源的提供是所有 BP 提供的吗?
G:是的。而且内存是消耗品,比如你存了一张照片,你占用了就一直占用,但是带宽是会恢复的,比如你占用了1M 的带宽,过一段时间也会恢复完。
K:其实就像是我们手机流量包的概念,你消耗了之后下个月会恢复,只不过在 EOS 上是三天的平均值。
G:是以十倍消耗的速度在恢复,比较抽象。其实对于大部分用户来讲,这些概念不太有影响。用完了你就再抵押一点就可以了。
K:还是有影响的,比如用户在转账的时候是不是要消耗资源?
G:是的。
K:那用户或者一些交易所如果频繁转账,在他还没有释放这个资源的时候,是不是就得再去抵押?
K:这个设计的出发点是防止网络被攻击。比如在以太坊上如果你要把所有矿工资源消耗光你是要花费 gas 的,然后在 EOS 这边你要短时间内把这个网络堵死,你得抵押很多的 EOS。
G:但是你如果有很多的 EOS 你就没有这么强的动力去做恶。
K:对,其实还是有很多博弈论的机制在里面。所谓的共识其实就是大家去相信去认同一套机制,然后机制对大家有作恶的约束。比如带宽就是约束。
( 未完待续... )
更多关于 imToken 的信息
官网: https://token.im/
微博:https://weibo.com/imToken
Telegram: https://t.me/imTokenGroup
Twitter: https://twitter.com/imTokenOfficial