Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

POW 的强力挑战者:Algorand 的算法

九龙槐哥撕
85 0 0
POW受矿池控制中心化程度高,POW被攻击的第一个点,就是挖矿带来了矿机矿池,造成了算力垄断,客观造成了网络中心化程度变高。( D/ {2 v' K9 S7 g
6 X4 W' g% ?* f3 n! [5 N4 w, g4 c
    在为POW辩驳之前,我们先来看看,Algorand的核心思路。目前业内有一个基本的共识就是要达成小范围的共识,那么BFT也就是拜占庭容错算法,是非常好用的,因为不涉及挖矿,所以速度会非常快。而对于大范围共识,或者说全球的无准入门槛的共识,POW是唯一一个被验证可行的算法,但是POW的确比较昂贵和低效。Alogorand要打破的就是这个矛盾,要做出又快又广的共识。共识要想快,基本思路就是要先选取出委员会,例如EOS项目就是靠事先选举好一个21个成员组成的委员会进行表决的,我们可以明显看到这种做法中心度是比较高的,需要我们对这21个公司有足够的信任,另外委员如果都是固定的,不管是去进行DOS攻击还是进行贿赂,其实都是比较容易的。而Algorand采用的是非固定委员会制度,号称能达成真正的去中心化。具体做法的核心就是通过随机数,这就难怪项目名字中就有rand,也就是“随机”这个词的简写了。每次出块前,网络会随机选举出一个很小的委员会来,没有任何人能够事先知道委员组成,然后在委员会内通过拜占庭容错算法达成共识。
7 E/ p# L4 b' l2 P7 X$ V7 X0 r" P! \
    我得声明我没有仔细看Algorand的白皮书。但是当我看到白皮书上:https://arxiv.org/pdf/1607.01341.pdf,写着他们的算法已经申请专利了,而且代码也不开源,我就知道这个项目不是我特别喜欢的那种,因为这种做法本身就是中心化极高的。但是不要紧,下面我们的讨论,不会基于我的无知来进行,而是我们对Algorand进行最优的假设,我们假设它真的能很快的在一个去中心化网络上达成安全的随机数,虽然这个任务其实非常非常难。同时Algorand其实是基于POS的,也就是如果攻击者持有了Algorand项目的三分之一的代币,那么拜占庭算法可能也就失效了,但是这个我们也暂时忽略。换句话说,我们假定Algorand就是一个很快,按照官方的说法就是一秒,就能达成全球共识的系统。那么其实在这个基础上,我依然不认为POW就一无是处。
* o8 s1 J. }: [. M- T) k9 F+ x- [) x* P9 L' `
    铺垫有点长了,回到我们要讨论的第一个点,那就是Algorand真的能避免POW出现的算力集中问题吗?首先Peter认为反矿机是一个基本不可能的任务,不管软件的算法怎么设计,不管你是CPU挖矿,内存挖矿,带宽硬盘挖矿,还是用任何狗屁东西挖矿,只要有足够的经济利益,矿工总会能够设计出专门用来挖矿的设备的。再退一步,即使没有矿机,只要Algorand是一个公开的规则,任何参与的机器都有平等的机会被随机数选中而获得代币奖励,那矿池公司就干脆多买PC就行了,反正花了钱就有回报,具体花钱买矿机还是买PC,真的有区别吗?所以说矿池的算力垄断我觉得一方面是不可避免的,另外一方面也没有普通人说的那么危险。51%攻击的意思,不是说一个公司有51%的算力系统就不安全了,而是要同时保证这个公司的人都是疯子,可以不顾自己的投资,一心想干掉系统。同时,大矿池虽然存在,但是整个系统其实还是保留了强有力的去中心化特点的,比如个别矿池瘫痪了,其实不会太影响整个网络的安全,这只会意味着其他矿工会挖的更开心一些。
' J8 }" k0 i+ Q% F3 H7 g/ p3 S; z. v/ r' E/ W
    综上,我们可以总结一下第一个点。首先一方面,不管用什么算法,其实只要有利益驱动,就会有大矿池公司的产生,Algorand也不能避免这个问题。其次第二个方面,只要保证矿池作恶不会获得比不作恶更多的利益,那么整个网络就是安全的。而对于第二个方面,其实只有POW能保证,POS下是保证不了的,而Algorand就是基于POS的。5 t- C% ~4 f& g7 N: B9 Z' T

! x6 n( _% t9 ?: p$ y' Q0 @7 \    POW交易确认巨慢5 C' N: ^- m5 P, U8 Y, `. U, O

% y& ^5 H+ v- {3 i: J4 F5 J    接下来我们讨论第二个点,就是POW交易慢的问题。# @6 w; b+ I- s) X& k7 a* G3 V: P' N
& B, C* p8 Y% a% h7 D
    先来说说POW为何会很慢。我在知乎的一个帖子上:https://www.zhihu.com/question/59648250,看到maxdeath同学的一个说法,觉得很有道理:不管是POW还是POS本质上就是找一个随机数。其实只要网络上能保证,没有任何人知道下一个生成区块的人是谁,那么就能保证网络是安全的。但是以比特币为例,为何系统要设定10分钟才能出一个块呢?答案就是系统要等待数据能够触及到尽可能多的网络上的节点。同时还是因为网络延时,其实一个块出来后,这个矿工对于出下一个块还是有先发优势的,所以要保证整个过程真正是公平随机的,还需要等六个确认。很多人认为比特币的共识时间是十分钟,其实不对的,真正的共识是需要一个小时才能达成。0 b, \' P/ m  t. x. g& ?" v  U
+ S% F8 i) V6 B7 `* G" c2 o
    说回Algorand的算法,它的1S达成共识,是如何做到的呢?Algorand文档上说,比特币慢是因为比特币设置了十分钟的猜谜时间,但是要知道比特币不是吃饱了撑的非要设置这个十分钟的,而是要等待数据的扩散。Algorand的随机数产生是算法直接生成的,这个肯定比较快,但是其实问题的根本不在这里,比特币要一个小时才能达成的真正的数据的扩展,Algorand真的能在1秒钟完成吗?难道大家不都是在同一互联网里运行吗?同时如果Algorand如此之快,那么真正上线后,处理的数据量必然也比比特币大很多倍,那么这样对网速岂不是要求更高。6 I' K( \+ H. o, V

  ?" A) w7 a4 m$ d( K. }    好,因为Peter的事先功课做的并不扎实,我们还是对Algorand做最善意的假设。我们认定它1S内就能完美的完成交易的确认,但是即使这样,难道就能满足企业级的速度要求了吗?明显依然不够。所以区块链项目要想真正的快起来,真正满是实际项目的需求,答案明显不在自身。而应该从第二层方案去考虑解决。还是以比特币的POW为例,难道就没有优化的空间了吗?当然有,首先可以通过缩短猜谜时间来提高处理速度,实际中的例子就是莱特币,或者可以通过增大每个区块的容量,来提高单位时间内的处理能力,例子就是比特币现金。但是为什么比特币没有采用这两种方式进行扩容呢?这是因为,强行提高处理速度,就会降低整个系统的安全性。而有全球共识能力的区块链,应该把自己看做是整个网络的第一层,全力关注安全。而对于性能的提升,应该放到第二层去做,例如通过闪电网络,或者其他的侧链方案,这个我们就不展开了。目前世界上,通过第二层来解决处理速度这个思路基本上是个共识了,很多公司和项目都采用了这样的思路。例如国内的Nervos项目,它的CTOJan同学,原来是以太坊项目核心开发者,专门研究POS共识算法的,但是到了自己创业开发Nervos的时候,依然选择了POW作为第一层公链的算法,全力保证安全,而把性能提升的工作放到了第二层去进行。
) u" I: h; |% Z8 g/ {0 u4 j0 k8 z- q% H
    第二点,关于POW慢的问题,我们也来总结一下。不管用什么算法,其实真正公平的全球共识本身就会很慢,这是网络速度决定的。即使优化后,也不可能达成真实世界中需要的毫秒级的响应速度。所以说POW的慢也不是错,因为要保证全球共识的安全,而快的问题,应该放到第二层去解决。
9 q8 r: ?$ d- W- u) K! B. G4 o
3 U  N+ }: |+ R  C  {1 i; W    POW耗能是浪费6 e+ v, G' ]' S

- K2 Z# l! X% l& N    最后进入第三点,这个是Peter自己最喜欢跟朋友讨论的一个点,也是Algorand以及其他POS项目最乐于用来攻击POW的一个点:POW的能源消耗问题。引用Nervos团队的CEOTerry的一句话来表明我自己的态度:我们认为挖矿的能耗不是浪费,是有意义的。
5 p' X4 A: s' g# ]( T. T, P
7 m/ }( Z9 C) I( O    我自己有一个观点,只要是自由的市场,那么生产成本跟价格永远会无限趋近的。以目前比特币为例,一枚比特币的价格是6000美金左右,那么用来挖矿的电力和硬件成本,其实也差不多就是这个数。Algorand会说这就是POW最大的问题啊,电力资源都用来算一些无聊的数学题了。但是其实实际情况是,这个生产一枚加密币的成本,跟算法没有一毛钱关系。比特币不值钱的时候,同样是这套算法,一个人用自己的手提电脑就能挖出很多比特币来。而试想当比特币的价格到了1000美金一枚,而挖矿成本低于这个价格,那自由的市场中,就会涌入很多新的矿工,大家比拼算力,挖矿难度于是就会自动调整,挖矿成本也就一路提升直到趋近一千美金。回到Algorand的情况,只能有两种可能,一种是系统只干活,不发币,这样的结果就是大家都会把自己的电脑关掉,没有人会参与共识。另外一种可能就是算法会公平的随机的给每一台机器发放代币奖励,这样,只有还有利润空间,大家肯定会买更多的机器前来提高获得代币的概率,最终也会达成跟挖矿一样的成本平衡。所以说,只要是想在一个无准入门槛的网络中达成全球共识,资源的消耗就不可避免。0 T; ]$ y( m1 Q) V8 n4 [
; r) k9 R8 [4 H6 R# x# P) ?
    另外,前面说了矿池并没有想象的那么邪恶,这里同样的道理,耗能这个事情其实也没有很多环保主义暴徒所宣扬的那样邪恶。首先说挖矿花的钱跟我们去饭店吃顿饭是一样的,都拉动了消费。吃饭的钱,让种菜的农民和餐馆服务员都有了收入。而挖矿花的钱,其实很多都让芯片生产商赚去了,对硬件技术进步是有推动作用的。然后再说电能。其实矿场永远是建设在边远地区,什么四川啊西藏啊蒙古啊。因为这些地方人少,但是自然资源丰富,如果矿场不来,那么其实每年水库都要开闸放水,把很多能源废弃掉,也就是所谓的弃能。挖矿过程会利用起这些能源,给当地带来了税收和就业。底层的逻辑相当于把用不了的电能的价值,存储到了加密货币中。币圈的宝二爷提到过一个词叫“能源货币”,我想大概就是这个意思。
: A" d( Z8 H, U* Z/ Z
) l' \6 B  [/ Z, n, l0 d6 I! X    好,关于比特币被攻击的第三点,总结起来我的观点就是:只要你想通过全球共识来生产一种有价格的货币,那么消耗区块链以外的能量和价值是一个必要条件。斯坦福大学教授,华人物理学家张首晟有一个观点:系统内的熵减,必然伴随着系统外的熵赠,说的就是这个意思。
9 I) j, U- }$ C) `, W8 p9 B5 g, o
    总结5 f( |1 N# {' [5 M/ o1 |
+ s( h8 M$ M  m: h$ r! x+ _
    最后来总结一下全文。Algorand项目提出了一个基于随机数共识算法,号称可以不耗能,同时快速安全的达成全球共识。我个人觉得是不可能的,但是整个的思路还是非常能激发我们的思考的,于是伴随着Algorand和POW两种算法的争论,我们有认真思考了POW中心化程度高,处理速度慢以及耗能高三个问题的本质。我个人认为以后这三个问题肯定会随着技术的进步而不断的优化,但是想要一下子彻底消失是不可能的,因为全球共识本身就应该是相对比较慢并且昂贵的。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

九龙槐哥撕 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    10