Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

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

九龙槐哥撕
88 0 0
POW受矿池控制中心化程度高,POW被攻击的第一个点,就是挖矿带来了矿机矿池,造成了算力垄断,客观造成了网络中心化程度变高。
. f: u* X% j/ c5 Q5 F% \$ C( V$ X" o% H( O$ p8 f4 `
    在为POW辩驳之前,我们先来看看,Algorand的核心思路。目前业内有一个基本的共识就是要达成小范围的共识,那么BFT也就是拜占庭容错算法,是非常好用的,因为不涉及挖矿,所以速度会非常快。而对于大范围共识,或者说全球的无准入门槛的共识,POW是唯一一个被验证可行的算法,但是POW的确比较昂贵和低效。Alogorand要打破的就是这个矛盾,要做出又快又广的共识。共识要想快,基本思路就是要先选取出委员会,例如EOS项目就是靠事先选举好一个21个成员组成的委员会进行表决的,我们可以明显看到这种做法中心度是比较高的,需要我们对这21个公司有足够的信任,另外委员如果都是固定的,不管是去进行DOS攻击还是进行贿赂,其实都是比较容易的。而Algorand采用的是非固定委员会制度,号称能达成真正的去中心化。具体做法的核心就是通过随机数,这就难怪项目名字中就有rand,也就是“随机”这个词的简写了。每次出块前,网络会随机选举出一个很小的委员会来,没有任何人能够事先知道委员组成,然后在委员会内通过拜占庭容错算法达成共识。8 n) f4 J; Y& L9 O$ r
1 p# Z+ t: J2 G+ q, |0 ^
    我得声明我没有仔细看Algorand的白皮书。但是当我看到白皮书上:https://arxiv.org/pdf/1607.01341.pdf,写着他们的算法已经申请专利了,而且代码也不开源,我就知道这个项目不是我特别喜欢的那种,因为这种做法本身就是中心化极高的。但是不要紧,下面我们的讨论,不会基于我的无知来进行,而是我们对Algorand进行最优的假设,我们假设它真的能很快的在一个去中心化网络上达成安全的随机数,虽然这个任务其实非常非常难。同时Algorand其实是基于POS的,也就是如果攻击者持有了Algorand项目的三分之一的代币,那么拜占庭算法可能也就失效了,但是这个我们也暂时忽略。换句话说,我们假定Algorand就是一个很快,按照官方的说法就是一秒,就能达成全球共识的系统。那么其实在这个基础上,我依然不认为POW就一无是处。
7 _) z3 o' [! G1 e9 R6 Q; S# L2 Z* S
    铺垫有点长了,回到我们要讨论的第一个点,那就是Algorand真的能避免POW出现的算力集中问题吗?首先Peter认为反矿机是一个基本不可能的任务,不管软件的算法怎么设计,不管你是CPU挖矿,内存挖矿,带宽硬盘挖矿,还是用任何狗屁东西挖矿,只要有足够的经济利益,矿工总会能够设计出专门用来挖矿的设备的。再退一步,即使没有矿机,只要Algorand是一个公开的规则,任何参与的机器都有平等的机会被随机数选中而获得代币奖励,那矿池公司就干脆多买PC就行了,反正花了钱就有回报,具体花钱买矿机还是买PC,真的有区别吗?所以说矿池的算力垄断我觉得一方面是不可避免的,另外一方面也没有普通人说的那么危险。51%攻击的意思,不是说一个公司有51%的算力系统就不安全了,而是要同时保证这个公司的人都是疯子,可以不顾自己的投资,一心想干掉系统。同时,大矿池虽然存在,但是整个系统其实还是保留了强有力的去中心化特点的,比如个别矿池瘫痪了,其实不会太影响整个网络的安全,这只会意味着其他矿工会挖的更开心一些。
3 a! b# ~) P/ m  n/ V; ]' M2 J8 V9 n- f3 w" j' ]
    综上,我们可以总结一下第一个点。首先一方面,不管用什么算法,其实只要有利益驱动,就会有大矿池公司的产生,Algorand也不能避免这个问题。其次第二个方面,只要保证矿池作恶不会获得比不作恶更多的利益,那么整个网络就是安全的。而对于第二个方面,其实只有POW能保证,POS下是保证不了的,而Algorand就是基于POS的。
2 B3 r. S2 D! V% w$ M
: V. S# e/ e* ~    POW交易确认巨慢
3 V% _( E$ F8 }, j6 m8 `6 C- S5 Y( K( Z$ d! N
    接下来我们讨论第二个点,就是POW交易慢的问题。
5 Q. u- {5 `) m5 {/ O: B6 T
2 e8 C+ d" @: c9 n5 o$ E+ J    先来说说POW为何会很慢。我在知乎的一个帖子上:https://www.zhihu.com/question/59648250,看到maxdeath同学的一个说法,觉得很有道理:不管是POW还是POS本质上就是找一个随机数。其实只要网络上能保证,没有任何人知道下一个生成区块的人是谁,那么就能保证网络是安全的。但是以比特币为例,为何系统要设定10分钟才能出一个块呢?答案就是系统要等待数据能够触及到尽可能多的网络上的节点。同时还是因为网络延时,其实一个块出来后,这个矿工对于出下一个块还是有先发优势的,所以要保证整个过程真正是公平随机的,还需要等六个确认。很多人认为比特币的共识时间是十分钟,其实不对的,真正的共识是需要一个小时才能达成。
. e  q( m' M! ?  b0 Q1 l7 L% L! o. b1 x! Z0 c0 R2 v5 t
    说回Algorand的算法,它的1S达成共识,是如何做到的呢?Algorand文档上说,比特币慢是因为比特币设置了十分钟的猜谜时间,但是要知道比特币不是吃饱了撑的非要设置这个十分钟的,而是要等待数据的扩散。Algorand的随机数产生是算法直接生成的,这个肯定比较快,但是其实问题的根本不在这里,比特币要一个小时才能达成的真正的数据的扩展,Algorand真的能在1秒钟完成吗?难道大家不都是在同一互联网里运行吗?同时如果Algorand如此之快,那么真正上线后,处理的数据量必然也比比特币大很多倍,那么这样对网速岂不是要求更高。; K9 z" e/ O2 H! I

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

7 B6 c# q. A# l% _5 v    最后进入第三点,这个是Peter自己最喜欢跟朋友讨论的一个点,也是Algorand以及其他POS项目最乐于用来攻击POW的一个点:POW的能源消耗问题。引用Nervos团队的CEOTerry的一句话来表明我自己的态度:我们认为挖矿的能耗不是浪费,是有意义的。/ b0 v6 ?3 Q. P: U2 V" Y3 U: U
9 B2 L8 l6 |9 y0 O# V$ E
    我自己有一个观点,只要是自由的市场,那么生产成本跟价格永远会无限趋近的。以目前比特币为例,一枚比特币的价格是6000美金左右,那么用来挖矿的电力和硬件成本,其实也差不多就是这个数。Algorand会说这就是POW最大的问题啊,电力资源都用来算一些无聊的数学题了。但是其实实际情况是,这个生产一枚加密币的成本,跟算法没有一毛钱关系。比特币不值钱的时候,同样是这套算法,一个人用自己的手提电脑就能挖出很多比特币来。而试想当比特币的价格到了1000美金一枚,而挖矿成本低于这个价格,那自由的市场中,就会涌入很多新的矿工,大家比拼算力,挖矿难度于是就会自动调整,挖矿成本也就一路提升直到趋近一千美金。回到Algorand的情况,只能有两种可能,一种是系统只干活,不发币,这样的结果就是大家都会把自己的电脑关掉,没有人会参与共识。另外一种可能就是算法会公平的随机的给每一台机器发放代币奖励,这样,只有还有利润空间,大家肯定会买更多的机器前来提高获得代币的概率,最终也会达成跟挖矿一样的成本平衡。所以说,只要是想在一个无准入门槛的网络中达成全球共识,资源的消耗就不可避免。4 Z5 _! d0 [8 F

% Q0 X( X" f  z2 |    另外,前面说了矿池并没有想象的那么邪恶,这里同样的道理,耗能这个事情其实也没有很多环保主义暴徒所宣扬的那样邪恶。首先说挖矿花的钱跟我们去饭店吃顿饭是一样的,都拉动了消费。吃饭的钱,让种菜的农民和餐馆服务员都有了收入。而挖矿花的钱,其实很多都让芯片生产商赚去了,对硬件技术进步是有推动作用的。然后再说电能。其实矿场永远是建设在边远地区,什么四川啊西藏啊蒙古啊。因为这些地方人少,但是自然资源丰富,如果矿场不来,那么其实每年水库都要开闸放水,把很多能源废弃掉,也就是所谓的弃能。挖矿过程会利用起这些能源,给当地带来了税收和就业。底层的逻辑相当于把用不了的电能的价值,存储到了加密货币中。币圈的宝二爷提到过一个词叫“能源货币”,我想大概就是这个意思。
) a  Q% _# u  D& r, V- V
( O9 ~; S- \3 w& _8 E    好,关于比特币被攻击的第三点,总结起来我的观点就是:只要你想通过全球共识来生产一种有价格的货币,那么消耗区块链以外的能量和价值是一个必要条件。斯坦福大学教授,华人物理学家张首晟有一个观点:系统内的熵减,必然伴随着系统外的熵赠,说的就是这个意思。
$ ?! B2 K$ ], c  G9 u
0 D3 ?' n7 O/ X6 \    总结
6 l' j4 r! n3 E: U' w; ]# E" G% I% x- U
    最后来总结一下全文。Algorand项目提出了一个基于随机数共识算法,号称可以不耗能,同时快速安全的达成全球共识。我个人觉得是不可能的,但是整个的思路还是非常能激发我们的思考的,于是伴随着Algorand和POW两种算法的争论,我们有认真思考了POW中心化程度高,处理速度慢以及耗能高三个问题的本质。我个人认为以后这三个问题肯定会随着技术的进步而不断的优化,但是想要一下子彻底消失是不可能的,因为全球共识本身就应该是相对比较慢并且昂贵的。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

九龙槐哥撕 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    10