关于 PoW 和 PoS 的误解太多,想要在一篇文章中讲个明白实在是一个极高难度的任务,因此这里只简单讨论两点,一个是从经济学上思考 PoS 给出的美好承诺是否可靠,另外一个是 PoS 本质上是一种许可机制。之因此拿这两点出来是由于不少讨论很是纠结一些技术性的细节,忽视了这两个根本性的问题。算法
做者:Jan安全
区块链技术提供的价值是去中心化的安全,而安全是能够用攻击成原本衡量的。一条链的攻击成本有多高,它就有多安全。网络
区块链的共识节点提供的产品是安全,共识节点是网络服务的生产者。咱们也知道,经济学里面有一个基本定律,在彻底竞争市场中,生产者在均衡状态下的边际收益等于边际成本。也就是说,若是区块链的共识算法创造了一个彻底竞争市场,提供多少安全,就须要多少生产成本:less
攻击成本 = 安全程度 = 生产成本
想要提供多少边际安全,就须要付出多少边际成本。如今 PoS 告诉咱们,咱们能够提供等量的安全,可是只须要 10% 甚至 1% 的成本,你不会以为很奇怪吗?为何 PoS 这么容易就打破了经济规律?区块链
一种状况是,同等安全程度的PoS须要的实际成本是同样的,只是一部分被隐藏起来了。以 DPOS 为例,若是你想要作 Validator,就须要经过某些方法搜集足够多的票投给本身,进入前 X 个 Validator 的列表才行。搜集足够多的票的成本是多少呢?这个成本对于不一样的人/机构是同样的吗?若是不同,这是一件好事仍是坏事呢?这个成本是一个公开信息吗?若是不是一个公开信息,这是一件好事仍是坏事呢?加密
我很喜欢一句话:设计
Financial institutions make people feel safe by hiding risk behind layers of complexity. Crypto brings risk front and center and brags about it on the internet.
而把成本以最清楚的方式公开在全部人面前,正是 PoW 的特色。ci
还有一种状况是,PoS 没有创造一个彻底竞争市场。资源
在 PoS 中,将来的共识群体是由今天的共识群体决定的。任何新的节点想要参与共识都须要经过至少一个交易来实现(e.g. 抵押,投票,etc.),而这个交易是否被处理是由今天的共识群体决定,他们能够处理这个交易,也能够不处理这个交易,若是不处理这个交易,新的节点永远都没法参与共识。同时,「不处理交易」是容易假装而难于惩罚的行为,我尚未看到能在共识协议中解决这个问题的方案。PoS 每每是根据 Stake 的权重来分配出块比例(和节点数量不要紧),考虑到大部分系统中 stake 的集中程度,这是一个很是实际的问题。get
PoW 是完全的 Permissionless。不管何时,只要你愿意,均可以买矿机和电力加入出块者的行列,不须要今天的矿工给你任何形式的许可。你也许会说,我仍是须要购买矿机和电力呀,这是否是一种形式的许可呢?是的,从更低一层来讲,这也是一种许可。但遗憾的是,在全部的 Proof of XXX 中,这已是最去中心化的许可形式了,毕竟矿机生产和电力资源的去中心化程度远高于各类 Tokens。咱们老是应该追求尽量的去中心化,不然用回中心化系统就行了。
或许又有人问:若是设计一种不须要向链上发送任何交易,只要 Token 放在那里就能够参与共识的 PoS,不是就解决了你说的问题吗?
这会带来两个问题:
一、若是 Token 放在那儿就能参与共识,意味着用户对参与共识没有任何承诺,不参与共识也没有任何成本和惩罚(用户可能根本都没上线),这样的共识是很难设计的;
二、会有 Nothing at Stake 的问题,这里再也不多言。
Layer 1 是加密经济的基础,承担 Layer 1 角色的区块链必须是一个无需许可的网络,由于 Layer 1 必须是全球共享的、中立的设施,就像互联网,而"须要许可“则意味着它是受到某一群人控制的,与这个目标是根本冲突的。从上面的分析咱们能够得出一个结论,若是咱们但愿 Layer 1 尽量的去中心化和安全,Layer 1 就只有PoW 一个选项。PoS 不是不能用,只是不适合 Layer 1。
关于 PoW vs. PoS,讨论仍在继续:https://talk.nervos.org/t/pow...