poa挖矿是什么意思
❶ 挖矿挖的是什么
首先,网络里挖矿是指矿工通过特定的设备进行一定工作量的运算,计算出符合要求的区块哈希值从而争取记账权,并获得相应的奖励,也可以将其看成是一个向记录着数字货币过往交易的账本中添加新交易的过程。
上面的定义,局限性在于:没有明确指出挖矿挖出的到底是什么。挖矿挖出的是区块,既然这些区块由数字符号组成,那么也可以说挖出的就是一串数字而已。但是,这些数字代表着矿工可以获取的奖励,或者说是收益,所以,挖出的又可以说成收益。但是区块奖励随着币价的波动而波动,影响币价的最大因素在于受众范围的大小。比特币在诞生之初,随便一台电脑每月就可以挖出成百上千的比特币,由于无人问津,矿工买个披萨都需要上万枚比特币。但是,随着接受比特币的人群增加,比特币的价格翻了上万倍!所以,最终我们可以说:挖矿挖的就是未来社会对某一数字货币的共识预期。
矿工,是指一群专注于“挖矿”的人,可以指一个人,也可以是一个群体。随着技术的不断进步,矿工不再仅仅局限于使用硬件设备挖矿,投入时间、精力、甚至脑力等,都可以在一些项目中挖出数量不一的数字货币。既然挖的是未来社会对某一数字货币的共识预期,这个收益也就充满了不确定性。为了更好区分,笔者从“硬件”挖矿和“软件”挖矿进行区分。
一、“硬件”挖矿
这个挖矿由于需要投入大量的硬件设备,所以基本上是前期接触的人群获利最大,而且要求很高,逐步向专业化过度。目前,单独的某一个矿工已经很难在拼算力、拼硬件、拼迭代速度的矿工军备竞赛中生存下去,所以大部分矿工会选择合作,通过共建的矿池来达到盈利的目的。
由于是挖的共识预期,这让价格波动尤为剧烈,而硬件矿工的设备投入、维保、迭代、场地租赁、人工、水电费等都需要真金白银的付出,所以这类矿工压力巨大,一不小心可能会血本无归。影响共识的因素是多方面的,为了实现稳定、可持续、最大化的利益,硬件矿工通常的选择是:牛市将手中的币卖出,换成法币或者其他稳定币,静静等待熊市;熊市中,则尽可能的屯币,并用之前的积累的法币或稳定币来“过冬取暖”。
作为硬件矿工,对牛市期盼,同样也不拒绝熊市的到来。牛市中,矿工大量增加,同样会提升挖矿的难度,奖励锐减;熊市中,币价腰斩,但是挖矿的奖励会因为矿工的减少而增加。通过牛熊交替,他们才能实现收益的最大化。而牛熊交替,即使四年一个周期,也需要付出常人难以忍受的坚持。
二、“软件”矿工
这类矿工,是指通过投入资金、时间、精力、脑力等非硬件进行挖矿的行为。
随着技术进步,POW机制已经不能满足人们的需求,目前市面上已经被大量应用的共识算法有三十多种,POS、DPOS、POI、POB、POA等可以看成是对POW机制的补充。在这类挖矿行为中,矿工通常是需要买入、持有一定量的数字货币,并通过数字货币的增值来获取收益。为了实现利益的最大化,这个持有时间通常也是以年为单位,以币市的牛熊交替为大周期,所以没有耐心的矿工,注定会被淘汰出局。
这里面还有一类矿工,藏宝阁想重点阐述一下:就是不投入资金而在各个项目初期进行撸糖果、薅羊毛的矿工(后面为便于阐述,统一用Token代替),当然在UGC平台进行创作,也归于这类矿工之中。
数字货币目前除了有主流币、山寨币之分,还有世界币、竞争币之分。目前我们撸糖果、薅羊毛获得的Token基本为竞争币:项目方为了项目发展融资、推广而发行的数字货币(不是为了弥补数字货币技术的不足)。这类数字货币首先会有一个中心化的团队进行管理;其次会经历一个由幼小到强大的成长过程;最后,是该项目的成长结果影响用户手中币的最终价值。这类挖矿中,矿工付出的是时间、精力、脑力等,获得的Token 可以看成是股权、或者带有分红性质的权益证明。那么,决定矿工收益的就是这个项目能否落地活下来,并最终被越来越多的群体所接受,如果能成长为区块链行业中的独角兽,那带给矿工的收益就足以实现财富自由了。
但是,有竞争就会有优胜劣汰,竞争币的项目方中,注定会有大量的项目死去,这样矿工手里的Token就是数字而已,不能产生任何的价值。所以,矿工通常面临的选择是:尽早卖出手中的Token换成BTC等主流币或是耐心持有,等待这些Token像瑞波币一样,实现惊天大逆转。五元投资,上亿收益,这样的机会用白日做梦已经不足以形容,但是币圈就是一个造就神话的地方,所以藏宝阁的做法就是屯!毕竟手中的Token卖个十块八块的也没什么意思,藏宝阁更愿意陪着项目一起成长,同时广撒网,想办法获得更多的项目Token,提到钱包,静静等待项目成长带来的红利。
三、结语
从文中可以总结出:不论是采用 “硬件”,还是 “软件”,挖矿挖出的都是对未来收益的预期:未来认可的人多,该币带来的收益就好;未来无人问津,这个币就有可能归零,矿工收益为负。但是预期,通常需要很长的时间来验证,包括随之而来的机会,也往往蕴藏在最初的平淡无奇之中。区块链必然带来颠覆性的社会变革,这是加入币圈的矿工最基本的信仰,所以不妨放弃眼前的鸡毛蒜皮,耐心持有数字货币,以牛熊更替的周期为操作频率,这样,才能获取最大的收益。
❷ 区块链共识算法——(四)PoA共识(Proof of Activity)
PoA共识(Proof of Activity)也称为活动证明,其结合了PoW工作量证明与PoS权益证明的特点并进行了相应扩展,PoA共识具有更为复杂的记账节点选取,同时有更为公平的奖励机制。
PoA活动证明,主要的优势是利用公平的激励措施保证节点保持在线状态,调动节点积极性,线上矿工即使不挖矿也有一定的概率获取收益。大大提高了全网维护质量。
step1:每个矿工先利用自身算力通过工作量证明机制后得出nonce并生成一个空区块头,这个区块头除了没有交易信息数据外其他数据与正常区块一致。
step2:最先生成空区块的节点广播全网节点,全网节点接收到消息后,将此区块的hash值与上一区块的hash值进行拼接,然后加上n个固定后缀值进行再hash,最后得出n个值作为输入,进入follow-the-satoshi程序,然后可输出n个随机权益持有者。
step3:前n-1个随机权益持有者对空区块进行签名,第n个随机权益持有者即为获取到记账权的节点,他将在空区块的基础上添加交易数据与签名。
step4:第n个随机权益持有者将打包好的区块广播全网,全网节点接收到区块后进行验证,验证成功后上链。
step5:产生空区块的矿工与第n个随机权益持有者以及前n-1个已签名的随机权益持有者共享交易费奖励。
❸ POA(Proof of Activity)区块链共识算法
POA(Proof of Activity)算法是一个区块链的共识算法,基本原理是结合POW(Proof of work)和POS(Proof of stake)算法的特点进行工作,POW算法和POS算法的具体内容可以参考:
POW算法 : https://www.jianshu.com/p/b23cbafbbad2
POS算法 : https://blog.csdn.net/wgwgnihao/article/details/80635162
POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。
POA算法需求的网络中同样包含两类节点,矿工和普通参与者,其中普通参与者不一定一直保持在线。POA算法首先由矿工构造区块头,由块头选出N个币,这N个币的所有者参与后续的校验和生成块的过程。
从这里可以看到POA算法不仅与算力有关,后续的N个参与者的选举则完全由参与者在网络中所拥有的币的总数量决定。拥有越多币的参与者越有机会被选为N个后续的参与者。而后续N个参与者参与的必要条件是这N个参与者必须在线,这也是POA命名的由来,POA算法的维护取决于网络中的活跃节点(Active)。
POA算法的一个理想的基本流程是,类似于POW协议,矿工构造出一个符合难度要求的块头,通过矿工得到的块头计算衍生出N个币的编号,从区块链中追溯可以得到这几个币目前所述的参与者。矿工将这个块头发送给这N个参与者,其中前N-1个参与者对这个块进行校验和签名,最后第N个参与者校验并将交易加入到该块中,将这个区块发布出去,即完成一个区块的出块。
一个理想过程如下图所示:
在实际运行中,无法保证网络上所有参与者都在线,而不在线的参与者则无法进行校验和签名,这个无法被校验和签名的块头则会被废弃。
即在实际运行中,应该是一个矿工构造出块头后广播给各个参与者签名,同时继续重新构造新的块头,以免上一个块头衍生的N个参与者存在有某一个没有在线,而导致块头被废弃。
因此,在这种情况下,一个块是否被确认不仅与矿工的计算能力有关同时也与网络上的在线比例有关。
与纯POW相比,在与比特币(POW)同样10分钟出一个块的情况下,POA由于会有参与者不在线而产生的损耗,因此,10分钟内矿工可以构造的块的数量会更多,即块头的难度限制会降低,那么矿工在挖矿过程中会造成的能量损耗也会降低。
与纯POS相比,可以看到POA的出块流程并不会将构造区块过程中的相关信息上链,可以明显减少区块链上用于维护协议产生的冗余信息的量。
本节对上诉协议中一些参数设置进行分析
在矿工构造出块头后对块头进行校验和区块构造的N个参与者的数量选定比较类似于比特币中每一个块的出块时间的选取。比特币中选择了10分钟作为每一个块的期望出块时间并通过动态调节难度来适应。
这里N的取值同样可以选择选定值或者动态调节。动态调节需要更加复杂的协议内容,同时可能会带来区块链的数据膨胀,而复杂的协议也增加了攻击者攻击的可能性。另外暂时没有办法证明动态调节可以带来什么好处。静态调节在后续的分析(4 安全分析)中可以得到N=3的取值是比较合适的。
从上面的描述可以看到,构造新的区块的除了矿工还有从块头中衍生出来的N个币所有者。在构造出一个新的区块后,这些参与者同样应该收到一定的激励,以维持参与者保持在线状态。
矿工与参与者之间的非配比例与参与者的在线状态相关。给予参与者的激励与参与者保持在线状态的热情密切相关,越多参与者保持在线状态,能更好地维持网络的稳定。因此,可以在网络上在线参与者不够多的时候,提高参与者得到的激励分成比例,从而激发更多的参与者上线。
如何确定当前参与者的在线情况呢?可以最后第N个参与者构造区块时,将构造出来但是被废弃的块头加入到区块中,如果被丢弃的块头数量过多,说明在线人数过低,应当调节分成比例。
同时最后第N个参与者与其他参与者的分成同样需要考虑,第N个参与者需要将交易加入区块中,即需要维护UTXO池,同时第N个参与者还需要将被丢弃的块头加入新构建的区块中。
为了激励其将废弃区块头加入新构建的区块中,可以按照加入的区块头,适当增加一点小的激励。虽然加入更多的区块头,可以在下一轮的时候增加分成的比例,应当足够激励参与者往区块中加入未使用的块头了(这里参与者不可能为了增加分成而更多地加入区块头,每一个区块头都意味着一位矿工的工作量)。
一个参与者如果没有维护UTXO池则无法构造区块,但是可以参与前N-1个的签名,因此为了激励参与者维护UTXO池,作为最后一个构造区块的参与者,必须给予更多的激励,比如是其他参与者的两倍。
从3.2的描述中可以知道一个用户必须在线且维护UTXO池才可能尽可能地获得利益。这种机制势必会导致一些用户将自己的账户托管给一个中心化的机构。这个机构一直保持在线,并为用户维护其账户,在被选为构造区块的参与者时参与区块的构建并获取利益。最后该机构将收益按照某种形式进行分成。
上面说到参与者必须用自己的密钥进行签名,而托管给某个机构后,这个机构在可以用这个密钥签名构造区块的同时,也有可能使用这个密钥消费用户的财产。这里可以采用一种有限花销的密钥,这个密钥有两个功能,一个是将账户中的部分财产消费出去,另一个是将所有财产转移到一个指定账户。在托管的时候可以使用这个密钥,在被通知部分财产被花费后可以立即将所有财产转移到自己的另一个账户下,以保证财产的安全。
从上面的分析可以看到,POA的安全性与攻击者所拥有的算力和攻击者所拥有的股权有关。假设攻击者拥有的在线股权占比为 ,则攻击者的算力需要达到其他所有算力的 倍才能达成分叉。假设攻击者股权总占比为 ,网络中诚实用户的在线比例为 ,则攻击者的算力需要达到其他所有算力的 倍才能达成攻击。
攻击的分析表格如下:
从上文的分析可以看到,POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。同时,PoA协议的攻击成本要高于比特币的纯PoW协议。
参考文献:Proof of Activity: Extending Bitcoin’s Proof of Work via Proof of Stake