重读EOS白皮书——账户与智能合约|周明强有话说
最近找了点时间,重新研究EOS的白皮书。以下记录我对EOS白皮书的一点理解。
账户
EOS支持账户名,账户名是指由人类可读的2-32位长度的字符组成的有意义的名称,同时EOS的用户名还支持命名空间,如@google.com。就像现在我们注册任何中心应用一样,我们可以使用一个最少对自己有是意义的字符串来当做自己的账户名。如果有涉猎过区块链应用,就会知道大多数区块链应用是没有账户,用一个巨大(256位)的数字代表的私钥(通常情况下,我们看到的是16进制的字符串)或着是16个助记词的形式来控制自己的资产。
如果使用过BM早前创建的bitshares、steem的人就会明白,在一个非加密货币类的区块链中使用账户的巨大优势。在转账的时候,检查一个有意义的字符串要比检查一串长长的无意义的字符串要轻松很多。转账BTC、ETH的时候要要睁大眼睛来检查地址是否正确,以避免转账错误,受到不可挽回的损失。我们也无法想象steemit用一个长长的公钥来代表一个用户,在随机的、毫无意义的字符间,用户之间如何能产生互动。
使用账户的附带一个优势,因为账户名是唯一的,使找回被偷的账户成为可能。只要你还有自己的owner级别的私钥,就可以通过关联账户找回被偷走的账户。
BM正在打造的EOS则更进了一步,通过你的社会关系来找回你遗失的账户。(名字、私钥不能代表你,在社会巨大的网络中的点与点的连接给你定位,社交关系中的你才能代表你。细思极恐)。
智能合约
EOS的每一账户都可以发送结构化的消息给别的账户,任何账户都可以定义自己的脚本来处理接收到的消息。EOS还为每一个账户提供只有该账户的脚本才能访问的数据库用来保存相关消息导致的状态变化。而且脚本也可以发送消息给别的账户。账户、消息以及脚本构成了EOS的智能合约。
一个粗糙的交易所的例子:
账户A发送一条购买消息到账户exchange下的trade合约,一旦撮合成功,trade合约就会向exchange下的withdraw合约发送消息更新账户下的资金状态。
一个账户下多个智能合约,以及多个智能合约之间的通信。实现合约功能的模块化,能开发出复杂多样而且够健壮的功能。
账户名==域名
EOS基于DPOS,宇宙最强大的去中心化共识算法,而且要使用多线程处理交易事务。设计上能达到每秒百万级别的性能。人类可读的账户以及功能强大的智能合约。或许在未来,EOS上的账户名就像现在的域名一样。
一个域名后面是多种多样、复杂、稳定的程序给我们提供服务。一个EOS账户后面,也是多种多样、复杂的智能合约为我们提供服务。
顶级的域名拥有的价值会不会也在EOS的账户名上重演呢?
(如果你注册了steemit账户,请关注我)
(如果文章对你有用,请关注我的公众号)
自定义账户名,确实能便于记忆及区分。