EOS白皮书学习笔记

in cn •  7 years ago  (edited)

EOS白皮书啃了两遍,终于啃完了。虽然有些地方还不是很明白,但在这里总结一下重要的知识点。一方面加深自己的印象,温故而知新,另一方面也希望能帮助到其他人。需要说明的是,有些总结笔记是直接将EOS白皮书内容翻译成中文。更详尽的内容,请参考EOS白皮书。

共识算法(Delegated Proof of Stake, DPOS)vs. 比特币工作量证明算法

  1. DPOS 区块生产者是合作关系,在任一个时间点,只有一个生产者有权产生区块。
    而比特币的工作量证明算法(PoW))区块生产者是竞争关系。最终只有一个生产者获胜,其他生产者的算力会被白白浪费。
  2. DPOS 平均每三秒产生一个区块,平均十分钟产生200个区块;而PoW平均十分钟产生一个区块。200:1在效率上是极大的提升。
  3. DPOS 交易本身可以作为股权证明:每个交易都包含前一个区块头的哈希值。我的理解是某种程度可以避免比特币的51%共识攻击。
  4. DPOS的创新点:
    . 机制创新:一轮有21个区块生产者,前20个是自动产生,第21个是根据投票数产生的。
    . 关于分叉:DPOS在正常情况下不会产生分叉。如果产生了分叉,有更多生产者支持的分支的长度会增加得更快。区块生产者不可能同时在两个分支上生产区块,一旦被发现就会被投票罢免。

账户

账户在比特币中并没有涉及到。比特币中只有比特币地址,我们必须保护好自己的私钥,否则就相当于丢了比特币。

  1. 对于账户这个概念,可以结合steemit理解。比如我的账户是@meganchao, 访问这个页面https://steemit.com/@meganchao, 就可以看到我的博客,钱包等信息。
  2. EOS提供了更细化的权限管理,比如:owner可以做任何事,active可以做除了改变owner组的任何事,所有其他权限都由active派生出来。
  3. 消息和消息处理程序:账户之间的交互通过发消息来完成。账户可以定义自己的消息处理程序,消息处理程序也是分组的。例如 @accountname.groupa.subgroupb.MessageType。
  4. 知识扩展:

重放攻击(Replay Attacks):是指“一条链上的交易在另一条链上也往往是合法的”,所以重放攻击通常出现在区块链硬分叉的时候。
由于硬分叉的两条链,它们的地址和私钥生产的算法相同,交易格式也完全相同,因此导致在其中一条链上的交易在另一条链上很可能是完全合法的。所以你在其中一条链上发起的交易,就可以到另一条链上去重新广播,可能也会得到确认。这就是“重放攻击”。
摘自http://qukuaiwang.com.cn/news/3884.html

Token模型和资源使用

  1. 使用EOS软件的区块链有三大类资源:a.带宽和日志存储(磁盘空间);b.计算和计算储备(CPU);c.状态存储(RAM)。
  2. 未来那些拥有EOS Token的人,可以把未使用的带宽租给其他人。带宽是我们用来获利的资源啊。

管理

  1. 比特币区块链中缺乏正式的管理过程,非正式的管理过程常会带来意想不到的结果。
  2. EOS中区块生产者具有有限的权限,来冻结账户,更新有问题的应用,建议修改底层协议。
  3. EOS中冻结账户和改变账户代码需要在活跃生产者中进行17/21投票表决。投票表决带来了更多的公平,管理更规范。
  4. EOS中法规虽然很“高大上”,但依然可以被升级和改变。

脚本和虚拟机

  1. 脚本语言和虚拟机的实现细节大多独立于EOS技术的设计。
  2. 账户间发送的消息遵循纲要(Schema)的定义,数据库状态也要遵循纲要的定义。这个纲要允许二进制和JSON表示之间的转换。
  3. 两个待选的虚拟机:Web Assembly (WASM)和Ethereum Virtual Machine (EVM)。

区块链间的交互

这部分读得不是很明白。我想正如白皮书中所说,EOS只是区块链宏伟蓝图的一部分。未来高效的跨链交互必然会很重要。

  1. 采用轻量级客户端校验(LCV)的Merkle证明来证明交易是否存在。
  2. EOS软件给每一个发送给每个账户的消息编号。一个用户可以使用这些序号证明所有发送给某个账户的消息已被处理,并且按顺序处理。

最后,把自己画的思维导图也分享一下。欢迎拍砖。
EOS.IO Technical White Paper(EOS 白皮书).jpg

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hi @ meganchao 能否加下我微信 rivalhw ,谢谢

Congratulations @meganchao! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Thank you very much.

Congratulations @meganchao! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

您好。我是 steem 中文区的机器人。昨天,您在 steem 的 cn 社区第一次发布文章。为了让更多的人读到新人的文章,您的文章被列入了中文区新人之家的“希望工程”,欢迎点击查看

新人之家欢迎你,这里有帮助新手了解 steem 的指南。请注意,新手最容易忽视的两点:1. 千万不要丢失您的密码;2.千万不要抄袭,非原创的文字、图片、视频资料请务必注明出处,否则可能会得到差评并列入黑名单。

欢迎参加之家举办的各种活动,并期待您在未来继续发布优质原创文章!

您不必回复我。当然,如果您回复,我会非常高兴的,即使我只是个卑微的机器人!

Hello. I am a bot from Steem CN community. Yesterday you posted in CN category for the first time. Your post is listed in the Welcome Center for New Steemians. Welcome to CN community. Please do not forget your password. Do not plagiarise. Looking forward to more high-quality posts from you in the future!

You do not have to reply me. But if you reply me, I would be happy, even I am a bot!

谢谢,这其实是我第二篇,第一篇是这个https://cnsteem.com/travel/@meganchao/7c4hvg
这会不会是我在自言自语。

抱歉,可能是机器人算错了,也可能是前几天数据库同步故障造成的数据丢失。总之就是欢迎你啦!

多谢

BTC中POW需要把上一个区块的Hash值放到下一个区块中的原因是为了公平,即让所有下一个区块生产者的竞争者几乎在同一时刻开始。包含了上一个区块的hash值意味着在上一个区块被产生出来之前,没有人可以产生下一个合法的区块。上一个区块的产生出来才是下一个区块竞争开始的发令枪。