Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

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

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

( P  Y* F" n1 y" W8 u! O    POW交易确认巨慢& n3 {5 \& R4 E, N; b% T8 E0 o
3 m7 p3 i$ ~" M
    接下来我们讨论第二个点,就是POW交易慢的问题。
- O0 ^1 u' `; i
5 {) m2 Y7 j4 r+ z+ [) z/ Y) o    先来说说POW为何会很慢。我在知乎的一个帖子上:https://www.zhihu.com/question/59648250,看到maxdeath同学的一个说法,觉得很有道理:不管是POW还是POS本质上就是找一个随机数。其实只要网络上能保证,没有任何人知道下一个生成区块的人是谁,那么就能保证网络是安全的。但是以比特币为例,为何系统要设定10分钟才能出一个块呢?答案就是系统要等待数据能够触及到尽可能多的网络上的节点。同时还是因为网络延时,其实一个块出来后,这个矿工对于出下一个块还是有先发优势的,所以要保证整个过程真正是公平随机的,还需要等六个确认。很多人认为比特币的共识时间是十分钟,其实不对的,真正的共识是需要一个小时才能达成。$ E2 D. }8 U3 \5 {7 Q
2 [1 S( a# ^: D5 U8 g  _
    说回Algorand的算法,它的1S达成共识,是如何做到的呢?Algorand文档上说,比特币慢是因为比特币设置了十分钟的猜谜时间,但是要知道比特币不是吃饱了撑的非要设置这个十分钟的,而是要等待数据的扩散。Algorand的随机数产生是算法直接生成的,这个肯定比较快,但是其实问题的根本不在这里,比特币要一个小时才能达成的真正的数据的扩展,Algorand真的能在1秒钟完成吗?难道大家不都是在同一互联网里运行吗?同时如果Algorand如此之快,那么真正上线后,处理的数据量必然也比比特币大很多倍,那么这样对网速岂不是要求更高。* H9 ^8 l1 R) }' |/ q$ m# x
" v/ c8 i# I2 X. ?/ c% \
    好,因为Peter的事先功课做的并不扎实,我们还是对Algorand做最善意的假设。我们认定它1S内就能完美的完成交易的确认,但是即使这样,难道就能满足企业级的速度要求了吗?明显依然不够。所以区块链项目要想真正的快起来,真正满是实际项目的需求,答案明显不在自身。而应该从第二层方案去考虑解决。还是以比特币的POW为例,难道就没有优化的空间了吗?当然有,首先可以通过缩短猜谜时间来提高处理速度,实际中的例子就是莱特币,或者可以通过增大每个区块的容量,来提高单位时间内的处理能力,例子就是比特币现金。但是为什么比特币没有采用这两种方式进行扩容呢?这是因为,强行提高处理速度,就会降低整个系统的安全性。而有全球共识能力的区块链,应该把自己看做是整个网络的第一层,全力关注安全。而对于性能的提升,应该放到第二层去做,例如通过闪电网络,或者其他的侧链方案,这个我们就不展开了。目前世界上,通过第二层来解决处理速度这个思路基本上是个共识了,很多公司和项目都采用了这样的思路。例如国内的Nervos项目,它的CTOJan同学,原来是以太坊项目核心开发者,专门研究POS共识算法的,但是到了自己创业开发Nervos的时候,依然选择了POW作为第一层公链的算法,全力保证安全,而把性能提升的工作放到了第二层去进行。) F7 t) w) |" f- {
1 B4 N% u( z3 m5 V% }. s
    第二点,关于POW慢的问题,我们也来总结一下。不管用什么算法,其实真正公平的全球共识本身就会很慢,这是网络速度决定的。即使优化后,也不可能达成真实世界中需要的毫秒级的响应速度。所以说POW的慢也不是错,因为要保证全球共识的安全,而快的问题,应该放到第二层去解决。# I" Q9 L3 X  ~& z* x

6 ?- e; v: y/ N) Z. C8 {    POW耗能是浪费  M5 x" I; C; U" o  l

5 l' v0 {4 E6 T. e, e8 W    最后进入第三点,这个是Peter自己最喜欢跟朋友讨论的一个点,也是Algorand以及其他POS项目最乐于用来攻击POW的一个点:POW的能源消耗问题。引用Nervos团队的CEOTerry的一句话来表明我自己的态度:我们认为挖矿的能耗不是浪费,是有意义的。8 |9 c$ q4 |. K! Z# V& O% k# Q

. K7 X$ I# a" q# G! G$ ~    我自己有一个观点,只要是自由的市场,那么生产成本跟价格永远会无限趋近的。以目前比特币为例,一枚比特币的价格是6000美金左右,那么用来挖矿的电力和硬件成本,其实也差不多就是这个数。Algorand会说这就是POW最大的问题啊,电力资源都用来算一些无聊的数学题了。但是其实实际情况是,这个生产一枚加密币的成本,跟算法没有一毛钱关系。比特币不值钱的时候,同样是这套算法,一个人用自己的手提电脑就能挖出很多比特币来。而试想当比特币的价格到了1000美金一枚,而挖矿成本低于这个价格,那自由的市场中,就会涌入很多新的矿工,大家比拼算力,挖矿难度于是就会自动调整,挖矿成本也就一路提升直到趋近一千美金。回到Algorand的情况,只能有两种可能,一种是系统只干活,不发币,这样的结果就是大家都会把自己的电脑关掉,没有人会参与共识。另外一种可能就是算法会公平的随机的给每一台机器发放代币奖励,这样,只有还有利润空间,大家肯定会买更多的机器前来提高获得代币的概率,最终也会达成跟挖矿一样的成本平衡。所以说,只要是想在一个无准入门槛的网络中达成全球共识,资源的消耗就不可避免。
3 O/ {5 ?; m( R9 A/ g' m8 W# o- ~- O, A! s
    另外,前面说了矿池并没有想象的那么邪恶,这里同样的道理,耗能这个事情其实也没有很多环保主义暴徒所宣扬的那样邪恶。首先说挖矿花的钱跟我们去饭店吃顿饭是一样的,都拉动了消费。吃饭的钱,让种菜的农民和餐馆服务员都有了收入。而挖矿花的钱,其实很多都让芯片生产商赚去了,对硬件技术进步是有推动作用的。然后再说电能。其实矿场永远是建设在边远地区,什么四川啊西藏啊蒙古啊。因为这些地方人少,但是自然资源丰富,如果矿场不来,那么其实每年水库都要开闸放水,把很多能源废弃掉,也就是所谓的弃能。挖矿过程会利用起这些能源,给当地带来了税收和就业。底层的逻辑相当于把用不了的电能的价值,存储到了加密货币中。币圈的宝二爷提到过一个词叫“能源货币”,我想大概就是这个意思。
" V6 M, H, _6 B7 H) @/ A( k
! S" I. c/ b4 n6 w- R9 |% P: B    好,关于比特币被攻击的第三点,总结起来我的观点就是:只要你想通过全球共识来生产一种有价格的货币,那么消耗区块链以外的能量和价值是一个必要条件。斯坦福大学教授,华人物理学家张首晟有一个观点:系统内的熵减,必然伴随着系统外的熵赠,说的就是这个意思。9 o8 s2 S7 u$ l) O7 h

6 d" }6 V" \9 z    总结  C+ a& n& H) A( C
) T# o( C: q8 d% t8 h2 i& W. r# M: B
    最后来总结一下全文。Algorand项目提出了一个基于随机数共识算法,号称可以不耗能,同时快速安全的达成全球共识。我个人觉得是不可能的,但是整个的思路还是非常能激发我们的思考的,于是伴随着Algorand和POW两种算法的争论,我们有认真思考了POW中心化程度高,处理速度慢以及耗能高三个问题的本质。我个人认为以后这三个问题肯定会随着技术的进步而不断的优化,但是想要一下子彻底消失是不可能的,因为全球共识本身就应该是相对比较慢并且昂贵的。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

九龙槐哥撕 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    10