BitcoinCash Classic(BCC) Make BCH decentralized again!

一种基于比特币网络的造链系统设计(草案)


零、概述

本文提出一种方法,将绝大部分采用独立共识层的区块链项目(非Token通证项目)与比特币网络进行合并挖矿,进而解除共识层的研发和维护负担,使项目可以在上层展开更加敏捷和丰富的功能开发。该分叉类型与现有独立共识层的链条可以并存,作为测试网络或者不同实现路线而存在。并存的分叉将通过市场的考验,市场会逐步优选出出最适合项目的共识层实现模式,可合可分,不同实现模式也可能会长期并存。

分层实现、松耦合、模块化、不造重复的轮子是常见的应用技术的思路,比特币共识层已经经历了大规模的实践验证,以及形成丰富的生态系统(矿机芯片研发、矿池、矿场、矿工生态齐全,以及全球分布超过400万台矿机),理应可以发挥更大的效能,利用比特币的能耗和算力,用接近为零的边际成本,实现区块链造链的一种可选方法。

随着比特币第三次减半的到来,以及矿机芯片研发的持续迭代升级,数以百万计的矿机面临淘汰,而增加比特币网络的应用场景,为大量的区块链项目提供共识层算力服务,可以延长矿机的生命周期,为比特币矿业节省数以百亿计的设备折旧费用。

一、PoW共识层的困局

1.PoW生态的马太效应

PoW(工作量证明)共识方法(机制)由中本聪所创造,即通过“算力挖矿”进行铸币,这种方法被各种主流币所采用,比如ETH、LTC、BCH等。PoW共识方法,由算力、矿池、矿工组成,所实现的安全并非由代码保证,而是由以下因素综合决定:

  • 有足够大的总算力:即经济门槛,算力成本决定攻击门槛。
  • 算力足够去中心化:即算力离散化,不由少数人完全把控的算力。
  • 算法安全:即算法本身对所用人需要是公平的,如某些CPU挖矿算法被FPGA或GPU化破解。

维护一个健壮的PoW共识层,绝不仅仅是代码和算法开发,而是需要形成很良好的生态:

  • 有足够多矿工
  • 有足够多的易于获得挖矿设备
  • 有足够多的矿池
  • 有足够多的专业化矿场
  • 有足够多的矿机算法芯片研发厂商
  • 满足以上条件的规模化经济效益

而目前只有比特币拥有最齐备的PoW共识层生态,遍布全球部署超过400万台比特币的矿机,其它的PoW币种,除了少数头部品种,普遍存在算力集中化、缺乏专业挖矿设备、没有规模化经济效益等情况。很多新的公链都在采用PoS/DPoS或研究新的共识办法,包括ETH也在计划将共识层往PoS方向进行转换。

但是,请注意,比特币所采用的PoW共识办法, 是到目前为止被大规模证明最可靠的共识办法,其它所有“新型”的共识办法,均存在显而易见的治理弊端和安全威胁,以及没有得到市场的最广泛认可,开发者经常陷入共识层问题的长期拉锯和消耗。

所以,直接采用比特币的共识层办法,使用合并挖矿模式,共享利用比特币构建起来的共识层生态,是开发区块链项目一种可选的方法。

2.不可能的三角

由Vitalik Buterin提出,表明区块链系统最多只能拥有以下三个属性中的两个:

  • 去中心化(定义为系统可以在每个参与者只能访问O(c)资源的场景下运行)
  • 扩展性(定义为可以处理O(n) > O(c)交易)
  • 安全性(定义为最多使用O(n)资源就可以抵御安全攻击)

将这个“不可能的三角”套用在比特币上,可以找出一些具体的例子:

  • 区块太大会提高节点成本,并且不利于节点的同步和收敛(扩展性和去中心化矛盾)
  • 大量的分散化节点进行挖矿,要求区块不能太大以免影响同步产生孤块(安全性和扩展性矛盾)

基本上,比特币放弃了很多的扩展性,以实现最强的安全性和去中心化。

将这个“不可能的三角”套用在以太坊上,可以找出一些具体的例子:

  • 大量的Token基于以太坊主链造成主链庞大(安全性和扩展性矛盾)
  • GPU挖矿的专业化要求,造成算力集中化(去中心化和安全性矛盾)

比特币和以太坊作为PoW共识方法的典型代表,很可以说明这个问题。这个不可能的三角其实有很多优化的复杂解法:

  • 分片,以太坊已经研究出多个版本的分片方案
  • 通道策略(比如,闪电网络),即二层扩展交易容量,但不扩展状态容量。
  • 子链,采用跨链协议,多链并存。
  • 高级密码学解法(如Mimblewimble协议和基于ZK-SNARKs的策略)。

这些解法的研究和实践是很多的,但因为理解起来都是很复杂的,而且也存在各式各样的问题,大都是理论层面的证明,未必有经过大规模的部署和验证,所产生的效果以及市场对此的认可度并不明显。

除了复杂的方式优化不可能的三角,也有简单的方法:

  • 独立的链条,也就是各种互不关联的链条,也可以视为一种扩展的实现。
  • 增加区块大小。
  • 合并挖矿,采取合并挖矿方式,使多链条共享底层安全并实现灵活扩展。

这些方法也都有具体的实践。本文通过分层的重构设计,尝试将简单和复杂的办法进行综合,融合吸收各种办法的优势,以对不可能的三角的问题进行优化,形成新的实践。

3.PoW区块链难以生存的原因

3.1.易于形成算力中心化

PoW共识法本身不限制节点数量,可以支撑成千上万乃至无限节点进行并行挖矿,节点出块之后同步到整个网络。但很多PoW项目因为吸引不到足够多的矿工,只有少数的人进行挖矿,且算力高度集中在1-2个矿池,因此,事实上,这些PoW项目都形成了算力中心化、寡头化现象。

简单来说,PoW共识法本身无法保证链条的算力安全,算力安全来源于算力,这要求足够多的矿工投入,比特币能够集聚大量的算力,是因为比特币本身值钱,而不值钱的项目,启动维艰(类似比特币早期),算力的集中化劝退了更多的矿工,这是一个鸡和鸡蛋的困局,很多项目无法破局,没有熬过启动器就归零消失了。

3.2.死亡螺旋的问题

矿工投入挖矿是有成本的,要求有持续的回报,一旦挖的币在二级市场无法出货,或者下跌,矿工会停止挖矿,当出现批量的矿工停止挖矿,会导致PoW挖矿难度下降,挖矿成本进一步降低,市场抛压进一步增加,因此形成恶性循环,也就是死亡螺旋。

即使早期发展良好的PoW矿币,也可能陷入死亡螺旋,算力安全是持续的,因此矿币的算力如果无法长期稳定或增长,掉入死亡螺旋的可能性是持续存在的,即使开发者不断投入开发,也会因为出现死亡螺旋而不得不中断项目,因为即使项目不死亡,在死亡螺旋的矿难中,可能有大量的筹码被集中在少数人手中。

3.3.缺乏算力安全的标准

有一些币种遭遇过51%的攻击,而很多的币种没有遭受过51%攻击,但不一定是安全的。算力安全有一些实践上的标准,但很难精确地去定义理论值上的安全,很多PoW币种经常会因为以下原因,被宣称存在算力安全威胁:

  • 少量的矿池集中了大部分的算力(50%以上)
  • 在同类型算法中,占比少于50%的算力
  • 在同类型挖矿设备中,占比少于50%的算力(比如CPU挖矿,要求占用50%的全球CPU)

简单来说,除了比特币没有其它PoW币种的开发者不被这些标准所困扰,算力的风吹草动都可能会给开发者造成负担。

3.4.抗ASIC的迷思

PoW矿币为了防止算力集中化,而开发抗ASIC的算法,但也会因此陷入两难的境地,因为即使不断更换算法,或者采取独一无二的CPU算法,仍然面临着:

  • 控制僵尸网络可以进行“零成本”的CPU挖矿
  • 算法的FPGA/ASIC化“破解”,只能事后获知,即被破解后才会发现算力异动
  • 因为升级算法造成硬分叉,共识分裂
  • 算法本身产生漏洞(因为太独特而导致漏洞也很难发现)

3.5.防重组技术的问题

近年来,有一些PoW币种通过以下方式防御区块重组(回滚):

  • 防重组保护
  • 增加区块确认时间(比如长达144块的确认)
  • 增加新挖区块成熟时间(比如长达10天的成熟期)

其实这类“后悔药”解法,并无法从根本上解决问题,同时也产生新的问题,防重组保护会导致分叉更容易,破坏了原来共识模型的一致性,在追随最长链原则下,强者(最多工作量)优胜,始终只有一条链条,而加入防重组技术之后,可能会不小心保护了弱链,导致多链并存分叉。增加确认时间和成熟时间,只是延缓算力攻击的生效,并牺牲了一部分网络响应和交易确认的及时性。

二、突破PoW共识层困局的解决方案

1.与比特币共享算力的合并挖矿

1.1.共享比特币算力安全

通过合并挖矿技术可以实现共享比特币的算力安全,将节点共识层的研发和维护需求全部解除,并且可以同时兼顾节点的去中心化、算力安全、可扩展性。

比特币拥有最安全、最健壮的共识层,以及最丰富的共识层生态:

  • 超过十家的比特币算法芯片研发商
  • 全球超过400万台比特币矿机的部署
  • 专业化矿池几十家
  • 消耗过剩电力或处于极寒地带的大量矿场
  • 丰富的算力产品和金融衍生品

任何一种PoW“矿币”依靠自身的力量,在发展共识层生态上均举步维艰,不易生存,直接利用比特币的共识层生态,是现实的选择之一。

1.2.保持独立链条数据

与比特币进行合并挖矿的币种,仍然保存有独立的节点和链条,合并挖矿只发生在矿池,而其它使用(非挖矿)节点是完全可以独立运行的:

  • 数据链条独立
  • 出块间隔独立
  • 区块奖励独立
  • 合约功能独立

因为每条链条都是独立的,因此可以不断新增独立的链条进行吞吐量扩展,这种扩展即简单又无限。

1.3.从共识层困局中解脱

因为共识层由比特币网络负责,因此新的PoW矿币无需再被以上【一、3】部分的问题所困扰,摆脱相关的共识层困扰。开发者可以将精力投入到更有意义的事情上面。

1.4.使算力更加去中心化

合并挖矿形成“多挖”的效果,鼓励矿工或者矿池采用“Solo”模式进行挖矿,因为Solo挖矿的极低的爆块概率,会被合并挖矿的PoW矿币产出所对冲。

比特币一天出块144块,一个月出块4320块,因此合并挖矿的矿池,只需要有1/4000的比特币网络算力,就可能在一个月之内爆出一个BTC块(对应12.5个BTC奖励),比特币网络算力按120E计算,矿池有30P算力(即1/4000),即可获得每个月12.5个BTC的奖励,这可以覆盖矿工的算力成本。

即使只有3-5P的算力,在概率上也可以实现一年爆出一个BTC块,对于小型矿币的矿工而言,会增加相当多的挖矿积极性。因此,这也会使比特币的算力分布更加分散和去中心化。

2.可持续扩展的矿池系统

2.1.模块化的矿池系统

矿池系统采取模块化设计:

  • 合并挖矿主链接口模块,理论上适配所有SHA256D算法主链
  • 合并挖矿从链接口模块,适合无限链条的合并挖矿代理
  • 算力切换,支持在多种SHA256D算法主链进行算力切换
  • 算力分配,支持配置不同的算力比率,分配给不同主链

2.2.挖矿分区功能

支持矿工选择挖矿分区的功能:

  • Solo分区:矿工独得爆块奖励(主链及从链)
  • 矿池分配算法分区:使用共享分配算法分配挖矿所得给矿工(主链及从链)

2.3.合并挖矿接口标准

提供标准化的合并挖矿接口,支持主从配置,多种可选可配置的主链,即从链可以选择挂载在哪条主链进行合并挖矿,一条从链可以挂载在一条或多条主链进行合并挖矿。

2.4.矿池部署模式

矿池系统根据项目方的需求,自主选择以下方式部署:

  • 1:1模式,一个主链和一个从链合并挖矿矿池。
  • 1:N模式,一个主链和多个从链合并挖矿矿池。
  • N:1模式:由多个1:1模式组成的合并挖矿矿池。

3.造链工程

3.1.现有PoW项目替换共识层

现有区块链项目通过分叉,将共识层替换为PoW比特币共识层,并支持合并挖矿模式。通过测试网分叉,测试验证,主链切换的流程进行分叉。

3.2.无币区块链 over PoW

RSK是比特币的侧链,用于扩展比特币的智能合约功能,已经运行两年与比特币进行合并挖矿,技术上可行性经过充分验证。同理,其它领域的无币区块链应用,也可以采取相同的模式,在比特币PoW共识层之上构建独立链条。

3.3.PoS/DPoS over PoW

在PoW层之上,仍可以部署PoS/DPoS共识层,用于治理、资源调配或其它扩展功能。因为底层共识层由比特币负担,因此可以减少或取消出块奖励,减少通胀压力,并将更多的激励资源投入到开发和社区建设。

3.4.其它BFT共识算法 over PoW

在PoW层之上,部署可信环境以及许可联盟下的共识算法,可以进行二层的许可控制,实现联盟链甚至私有链,类似互联网中的VPN,公网中存在着大量的专网和私网。

三、方案适用场景

1.合并比特币与以太坊的共识层

以太坊的开发路线里面,有两项主要内容,一是通过分片实现扩展性,二是使用PoS替换掉PoW共识机制。这些研发在未来也许会取得重大的进展和突破,但是我们也看到消耗了大量的资源,但始终达不到预期的目标,遥遥无期。随着ETH 2.0的到来,ETH 1.0的开发可能会陷入停滞,以及我们发现ETH有数百款Defi(去中心化金融)应用,产生数以十亿美元级别的质押,这些质押的存在未来不易与PoS共识机制形成良好协作。因此,将ETH的共识层与比特币进行合并,可以作为ETH向2.0过渡的一种可选择的分叉路线。

2.合并比特币与其它分叉币的共识层

很多的比特币分叉币主要探索于比特币的创新应用开发,并没有采取完全独立共识层的必要性,因此可以合并成少数几种作为主链共识层。

3.构建比特币单向/双向通道

将出块奖励减少或取消,并用于激励建立比特币的单向/双向通道,形成高可用的通道链结算网络,极大地加速比特币或其它加密货币的应用体验。

通道链结算网络的基本原理是:每两个账户各自锁定若干资金,组成一个支付通道,私下可双方签名多次支付,期间无需向全网广播确认交易,只需最后一次向主网提交最终的余额分配即可取回各自正确拥有的资金,从而极大地自由扩充整个系统的每秒交易数量;如果单方结束通道,则其资金会被锁定一段时间,如果另一方在此期间内向主网举证更新的余额分配而证实对方作假,则揭露方将会夺取对方全部资金,从而迫使双方保持诚实;只需将多个支付通道连接起来,并从收款方开始让所有资金流转方有序签名直至付款者最后签署,则所有相关方都将同时收到和支出钱款,从而确保支付完整、实时到账和资金安全;通道可收取微量手续费激励其提供稳定服务。

4.构建无币区块链

有币区块链可以激励吸引矿工,巩固共识层的安全,缺乏独立的安全共识层解决方案,因此无币区块链并没有发展起来,而与比特币合并挖矿,可以轻易实现共识层的安全,使各种无币区块链应用可以发展起来。无币区块链因为不存在结算问题,因此可以启用随用随弃,自动修剪,自动老化,分区分层数据等各种机制,灵活性和多样性可以充分发挥。

5.小型矿币的启动

类似的真实例子其实已经存在,狗狗币在一开始拒绝与莱特币合并挖矿,而后走入生存的困局,社区决定放下共识层维护的负担,接受并实现与莱特币合并挖矿之后,狗狗币的社区继续存续及发展。RSK作为比特币的侧链,是一个无币区块链项目,与比特币合并挖矿,提供了智能合约功能的扩展以及30秒的出块间隔,并为矿池矿工增加每个月4.8万美元的手续费收益。

与比特币合并挖矿貌似不适合以“取代或超越比特币”为目标的项目(而且以此为卖点),但实质上大量的项目在归零后,普遍意识到存活下去是实现其理想和目标的必要基础条件,在壮大和发展过程中,需要先保障自身的可靠存在。99%的区块链项目已经归于消失,而采用合并挖矿的项目存活率高达90%以上。

6.区块链的P2P应用

在共识层之上,利用节点网络构建各种需要基于底层一致性区块信息的点对对P2P网络应用,分布式节点负责计算资源、存储资源以及身份验证、内容验证、服务资源(使用和提供)验证。

四、开发者社区的构成

矿池系统开发主体

矿池系统由矿池运营商作为开发主体,矿池运营商可以基于以上系统设计开展以下业务:

  • 区块链共识层出块服务(数据一致性服务)
  • 区块链整体解决方案(矿池、浏览器、节点等框架化开发)
  • 算力合约及租用(对接矿场)
  • 应用监测和测试服务

分叉链条的开发维护

任何项目都有其独立的开发者,开源项目可以按照以上方法,直接进行分叉开发,也可以由原有开发者自行分叉维护。


Similar Posts

Comments