BitcoinHD:基于条件容量证明算法的加密货币系统


poc,下一代共识算法,用硬盘作为共识的参与者,降低加密货币对电力资源
的消耗,降低参与门槛,让其生产方式更趋向去中心化方式,并更加安全可信,让人人都能参与到
加密货币的开采,通过数学算法以及分

1 BHD 概述
BitcoinHD(比特硬币,以下简称 BHD)是基于 Conditioned Proof Of Capacity (以下简称: CPOC) 的新型加密货币。其主要的特点是使用硬盘作为共识的参与者,降低加密货币对电力资源
的消耗,降低参与门槛,让其生产方式更趋向去中心化方式,并更加安全可信,让人人都能参与到
加密货币的开采,通过数学算法以及分布式开采产生信用和价值。本文将从本加密货币系统塑造出
的信用体系和技术特征分别对其进行阐述。
1.1 加密货币
提到加密货币,Bitcoin(比特币,以下简称 BTC)是最广为人知的,在其之外,整个加密货币产业已
经开始尝试一些新的技术方案来提高支付速度,扩大支付范围,很多改进型加密货币应运而生,比
如 Dai-Wei 的 B-Money 和 Ripple。
Ripple,我们已经看到,其已被少部分不同国家银行之间用于结算,由于其在生产方式上过于中心
化,并未得到大面积的应用。相较于更去中心化的加密货币(如 BTC),项目中心化的运作更易受到其
他应用型公司的青睐。在这个体系内自然也不会有加密货币矿工的出现,毕竟大多数的步骤和矿工
无关,因其发行方主要以公司性质的身份参与整体项目。
B-Money 由于其设计中需要大量的网络同步操作,使得其很容易产生网络阻塞,而当时的网络速度
并没有那么快,信息在传输的的途中经常卡顿而出现问题,或者全体网络都在等待一个比较慢的
包,最终因得不到回复信息而导致传输失败,使其在使用上不尽人意。
4
BTC 通过自己 nakamoto 型共识,也就是现在大家熟知的异步 proof of work (以下简称 POW),
走到了舞台前。在初期,看好这个项目的人并不多,源于其共识并没有通过同步转账结果来保证转
账的结果不会出错,而是使用很有趣的方式——最长链。也就是说,这个分布式系统中节点更认可
哪个包,那个包中的交易就是正确的结果,那么怎么出现这个包呢,当然是通过这个系统中的节点
来共同验证,只给定一个超时打包的时间,这个包在这段时间中只要有更多的节点参与认可,那么
它就是对的。在这个逻辑中,会存在一种情况,那就是系统中的节点可以集体做坏事,让正确的交
易没有被打包,这样网络的传输就是无效的,这也是这个方式中有趣的地方,因为它既对又不对。
对,是因为它避免了网络中很大量的通讯,异步更加适合交易的步骤;不对,是因为在极端情况
下,即系统中坏人占多数时,系统就变成无效系统,这也是在后期大家经常提到的 51%双花攻击。
金融系统最不能做的就是回滚和双花,这也是一开始 BTC 没有被大规模接受的原因。
随着时间的推移,拥有了很多由于利益而进入到系统的参与者,系统层面由于出块(也就是上文提
到的打包)难度的存在,将坏人进入的成本大大提高,系统也随之变得更加稳定,毕竟做好人比做
坏人得到的收益要高多了。这时候人们开始认可这个新型的加密货币,其从一个不稳定的金融系
统,通过多年的难度增加,让双花和回滚变得非常困难,系统逐渐趋于稳定。也因此产生了 BTC 的
原教义者:加密货币爱好者。这时就有很多新型的加密货币以分叉的方式被制造出来,又因为其算
力的独占的问题被 51%双花攻击,其主要原因就是在低难度下,这个系统是一个不安全的;而高难
度安全系统则需要非常大能源的消耗。
我们可以通过观察发现 BTC 的一些技术特征:
首先 BTC 从来都不是技术激进派,反而是挑选了相当成熟的现有技术去完成安全可信的点对点现金
系统,越是被验证过、越是简洁、成熟的技术,越是安全、可信,例如 nakamoto 共识中用到的
SHA256 这个算法,是由 NSA(美国安全局)设计,其安全可信性是被有效验证过的,说明初期设
计之时可能根本没有考虑到现在的 ASIC(Application-Specific Integrated Circuit,专用集成电
路,以下简称 ASIC)和电力垄断问题,只是为了极致的可信而设计,为了极致的安全可信,甚至牺
牲了互联网原有的高效交易并发量。
5
1.2 寻求替代者
在资源被大量用来出块,成本逐渐提高的时候,加密货币爱好者开始致力于寻找更低功耗的替代
者,主要分为两类:更低成本获得收益的替代者和更通用可堆叠组件的替代者,这就是 ASIC 挖矿以
及抗 ASIC 算法开发的大航海时代。其中 ETH,Monero 的初衷都是以抗 ASIC 为目的,他们希望出
块的计算方式能够抵抗 ASIC 芯片,并且维持比较低的出块成本,让它变成一个不受控于 ASIC 芯片
进行挖矿的加密货币,不过在加密货币发行之后,市值一旦达到 ASIC 芯片投入的范畴,ASIC 的开
发商依然会想办法将这些通过计算方式去挖矿的加密算法设计成为矿机。另外一个著名的加密货币
LTC 也是其中的代表,使用 Scrypt 算法的 LTC,以对抗 ASIC 为技术亮点,不过很快 ASIC 设备生产
商就优化了他的算法,将其做成了矿机,形成了设备以及算力的垄断,带来了巨大的能源消耗。电
力的依赖和矿场的门槛让挖矿成为少数人的游戏。
而 BHD 则是一个集大成者,其即能达到更低的能源消耗,又能方便矿工自制通用组件参与其中,同
时维持相对高的难度来保证系统的稳定性。BHD 使用的 CPOC 共识,是非常去中心化的一个共识算
法,相对于 POW 引起的算力证明大航海时代,CPOC 将会开拓一个基于硬盘容量证明的新大航海时
代。CPOC 使用硬盘来作为共识的主要载体,让更多的普通人可以通过自己的电脑参与到算力的组
建中,能够回归到中本聪设计 POW 的部分初衷,让每个人都能参与到去中心化的革新之路。BHD
与此同时继承了 BTC 的传统,因为 BTC 在设计之初便是一个服务于多数参与者的系统,即每一个参
与的者都可以是一个思考、支持、甚至是颠覆系统的角色。CPOC 继承了这种开放性、包容性,伴
随着更加亲民的硬盘容量共识,可进一步将加密货币推向向大众视野,让更多的人参与到 BHD 经济
系统的建设。
6 2 BHD 需要解决的四大问题
POW 型共识的设备垄断、算力集中化、能源消耗以及现有 POC 的激励层问题并行成为现在行业内
四大问题。BHD 从设计之初,就是针对现有行业的四大问题进行解决。下面我们一一进行阐述。
2.1 垄断问题
BTC 从诞生之初,就是想要解决金融机构的垄断问题和信任危机。从 08 年的金融危机之后,中本聪
就认为金融系统的垄断性会一次又一次的重蹈金融危机覆辙(如下图),去中心化是解决这种问题
的最好方法之一。
那么多年之后,BTC 现状又是如何呢?
7
上图是整个由 BTC 引领的加密货币市场的价值曲线,是不是比较像金融危机周期中的一次波动?这
不得不引起我们思考,BTC 在算力垄断的现在,是否依然那么的去中心化?
BTC Core 的技术部分由核心开发者掌控,代码更新速度缓慢,可谓是代码中心化;BTC 的算力巨
大,普通人无法参与到共识,只能进行交易,可谓是算力中心化;BTC 的出块时间比较慢,10 分钟
左右,个位数的 TPS 难以达到现有网络使用的正常体验;另外 BTC Core 钱包在十年间并未做出任
何优化,也没有 BTC Core 的手机版,完全没有根据现有使用者的体验进行更改升级,可谓是体验中
心化;更甚者,想要部署闪电网络,让更多中心化的公司参与到闪电网络节点中,让整个 BTC 系统
越来越中心化,使用体验远远没有中心化支付系统(如 VISA)好。
既然人们愿意相信 BTC,就必须要接受新生事物对它发起的颠覆性挑战,同时去思考如何贯彻去中
心化好让每一个人都能参与到这场革新之中。BHD 就此应运而生,BHD 的设计之初就选择了更经济
8
的去中心化方式,可以将信用成本再次降低,从 POW 的不间断计算方式更改为更低成本的存储+检
索中。我们相信中心化的加强会重蹈一次又一次的危机,我们的目的就是在 BHD 上实现完全的去中
心化,从根本上杜绝潜在危机的诞生。
2.2 算力集中化问题
我们提到,BTC 能够作为成功加密货币的主要原因是其算力维持在一个相对高的范围,在 2017 年
BTC 总算力为 4400P,每天比特币产量为 1800 个,平均下来每 P 挖到的 BTC 是 0.4 个,现在问题
来了,这些矿机制造商可以通过调节矿机的价格来影响 BTC 的价格。也即是随着加密货币参与者对
BTC 收益的预期提高,每一个人都愿意用更高算力的机器来生产加密货币,也就是通过打包得到奖
励。比特币挖矿前四位的机构占有大约 53%的挖矿份额;在以太币的系统中,集中度更高,排名前
三的挖矿机构占有 61%的挖矿份额。此外,全球 56%的比特币挖矿软件和 28%的以太币挖矿软件集
中在数据中心,显示出比特币的经营更加公司化。
下图可以看到现在 BTC 的算力已经在 30,000P-40,000P 左右,那么相对于 2017 年上升了 10 倍,
也就是参与者的难度加大了 10 倍。
从下图而我们可以看到,算力已经开始公司化,可以看到熟悉的 F2Pool,AntPool,Slush。
9
在算力的一步一步攀升中,矿机制造商通过制造更高算力的机器来提高整个生产难度,并通过增加
难度来增加自己矿机的配置,让普通的加密货币参与者望而却步。
BHD 是通过对硬盘的存储空间加以利用,将集中化的算力打散,从而避免垄断的发生。在现有的工
作量证明加密货币中,每一次对哈希值的碰撞都是一次大量计算,连续不断的哈希碰撞持续消耗能
源。
BHD 通过预计算的方式,将每一次的碰撞结果写在硬盘中,这个也是一种比较常见的空间换时间的
方式。通过这个方式对计算进行重构,在货币的产生过程中,矿工只要按照网络需求对硬盘中已存
在的数据进行短暂的检索即可,剩余时间系统保持空闲,带来了低功耗的共识模型。在 BHD 的系统
中,只需要硬盘足够大,装足够多的“答案”,就可以让任何一个加密货币爱好者参与到出块的生产环
节中,并且不需要重复的大量计算。就像是之前计算 BTC 的行为是问你一个 14 笔部首为辶念 liao
的汉字,一个学习中文的人需要计算很久才能想出这个字是什么;而现在的 BHD 更像是直接拿到字
典,直接查出来这个字是什么,当然是你字典记录的字越多,你就越直接能查到这个字是什么,并
且谁都可以参与到里面,因为相对于计算 BTC 需要的头脑风暴,BHD 只需要足够大的词典就够了。
算力集中化的问题,就可以通过这样的空间换时间的方式进行瓦解,当然,这也只是 BHD 需要解决
的第二个问题。
10
2.3 能源消耗问题
当然,算力集中化也带来了能源消耗的问题,在上一个环节中提到了,对于特定哈希碰撞的大量计
算,那么这个计算需要消耗多少资源呢?
举一个例子,按照现有 BTC 网络的能源消耗,大约和意大利 10%的电力需求相仿。都说条条大路通
罗马,BTC 给大家带来罗马的同时,也带来了相当于罗马、米兰和威尼斯总计 600 万人口的用电
量。
目前大多数矿工都在中国大陆境内(如 BitMain),那么我就举一个中国的例子,现在 BTC 的算力
在 45EHash/s 上下,那么在 1P 的算力,消耗 0.1 人民币一度电的情况下,需要花费大约 140000 度
电,也就是平均 14000 元人民币。那么按照中国的高铁每千米行走耗电 2 度多的情况下,时速 350
公里的高铁每小时耗电 9600 多度,按照上海到北京 5 小时高铁计算,需要使用将近 48000 度电,
也就是现在产出 1 个 BTC 的能源消耗足够高铁绕着中国的北京上海跑一圈半。
那么 BHD 的能源消耗是多少呢?
按照现在二手 s9 和现在的二手 8t 硬盘对比来看是 1/300 的能耗投资比,也就是说,同样 1000 元
购买 ASIC 设备(bitmain S9)功耗为 1400 瓦,购买 RX580 显卡为 250 瓦。而对于单价约为 1000 元
11
的 8TB 硬盘而言,只需要 5-8 瓦的耗电量。也就是说花费同样金额采购 100 台 S9 和 100 片 8TB 硬
盘,S9 的月耗电量为 122,400KWH,而参与 BHD 的能源消耗仅为 360KWH,仅相当于美国普通家
庭 10 天的用电量。即使 0.15 美金/度的家庭电费也可以参与 bhd 的挖矿
在这种巨大的能源消耗差别下,BHD 节省下的能源可以更多的为其他实体进行使用,而不是重复的
浪费性消耗。这种弱能源消耗的共识体系可以让更多的人参与进来,不再是少数人的游戏。
能源消耗巨大带来的另一个问题就更为严重了:POW 算力通过能源消耗体现,由于能源在任何国家
都由国家政府掌控,随着 POW 算力的逐渐扩大,过度的能源消耗会引发一系列社会性问题,最终很
可能政府会出面干预导致 POW 的全网算力波动,安全性也将大打折扣。
从下图的表中可以看到,BTC 电力消耗在 2018 年 10 月份为 73121 度,在 2019 年 1 月份直接降到
了 44722 度。这个通过能源减少带来的算力降低会影响到整个出块的难度以及矿机的收益,对于
BTC 尚且如此,对于使用 POW 的小币种,带来的则是分叉的风险,而分叉又是致命的威胁,威胁
到整个共识的正确性与安全性。
12
(chart from https://digiconomist.net/bitcoin-energy-consumption )
https://bitinfocharts.com/comparison/bitcoin-mining_profitability.html
13
也就是说,如果矿场聚集在一个国家政府,那么政府可以通过调控相关能源资源的方式影响系统中
的难度及收益,会因为一次潜在大规模的电力资源下降引发算力下降,更有甚者可以分叉一个 POW
为共识的代币。BHD 的低功耗在这个侧面也给予了解决方法,通过减少对能源的依赖,发展一个更
适应长期生存的生产方式。POC 的意义也是将 ASIC 的高能源消耗替代为低消耗的硬盘查找,通过
全球硬盘的存储媒介作为一个整体来提供保证高安全特性的随机数,从而保证底层的安全性。
2.4 现有 POC 货币设计的激励层问题
之前有没有人考虑过使用硬盘来作为货币共识体系的载体呢?答案是有的。2014 年诞生的 Burst 是
首个 POC 共识体系货币。Burst 很快将 POC 共识算法推广下来,并且拥有了不少的拥护者,但也与
此同时暴露了一些原有 POC 共识算法的问题。BHD 总结了 Burst 的失败教训,经过了技术部分的一
系列改动,于 2018 年 8 月份问世。
Burst 在设计之初并没有适当的激励方式,大部分的货币被早期加入的矿工以非常低的成本挖到,随
着团队的宣传推广,后期进入 Burst 的参与者缺乏足够的货币层回报,极大降低了参与者的热情,以
至于 POC 加密货币慢慢走出了人们的视野。BHD 在设计激励的时候使用了双重激励的方式,可以通
过条件或者非条件的方式进行挖矿,以此调节运营团队费用和矿工收益。即矿工在其条件出块的时
候,矿工可以获得全部收益;让矿工条件撤出的时候,出块的奖励大部分分配到运营团队。BHD 采
用条件的方式来保证链的持续发展以及新的矿工引进,以这样的方式来维护长期的社区正向发展。
14
2.5 BHD 为何现在出现
为了解决以上四个问题,BHD 应运而生。
随着加密货币爱好者愈发增多,其去中心化的目标离我们更进了一步。每一个参与者都希望自己能
够参与并且从中收益,这一合情合理的需求在 POW 领域愈发变得艰难。随着 BTC 的能源消耗越来
越大,矿机厂商越来越中心化,甚至产生了戏剧化的分叉,而基于 POC 的加密货币比在 2019 年变
得更为加密货币爱好者需要。再加上其特殊的共识算法保证了在上线可以迅速完成对算力的积累及
难度的控制,在保证系统安全性、健全性的同时,对交易者及共识支持者进行奖励。在这几个方向
上 BHD 都是优于现有的加密货币的,共识的迭代也提供了高于 Burst 所提供的安全性,技术维度和
信用维度完全超越其他加密货币。
相较于高能源开销的 POW 算法,我们更相信低功耗也能赋予算法以足够的信用来保证未来每一个人
都可以使用上加密货币。
15
3 BHD 的技术解决路线
BHD 以 POC 共识算法为基础,通过设计长期激励的经济模型保证整个加密货币的良性发展,同时也
对现有 POC 进行优化做出了一些改进,将其升级为 CPOC(Conditioned-Proof of Capacity)共
识。
3.1 BHD 分发及挖矿共识算法
供应总量 2100 万枚
开发团队 10%:210 万枚。方式:预挖
推广团队 5%:105 万枚。方式:随挖矿的每个块产出
矿工 85%:1785 万枚。方式:挖矿
出块时间 3 分钟
初始块大小 15BHD / Block , 2MB 区块大小
减半周期 4 年,首次减半时间约为 568288 区块高度
初始 TPS 70 笔交易/秒
条件化容量证明 每 T 持有 3 个 BHD 作为条件。条件需求随全网算力增高而同步降低
说明:1T 硬盘是根据爆块率对全网占比进行评估,不是绝对值。
16
在挖矿初期的前 1 个月,矿工挖矿完全免条件;从第二个月开始,矿工实行条件挖矿,不满足条件
容量挖矿收益为全额的 30%收益保持不变,剩余的 70%中,43%直接累计到下一个满足条件出块地
址,剩余 27%分配到 BHD 发展基金,此后每 33600 个区块(约 10 周),BHD 发展基金收益降低
2%,并将降低部分累积给到下一个满足条件挖矿的区块,直至首次减半时,BHD基金会收益降低至
5%且不再降低,不满足条件容量挖矿出块的 65%收益累积给下一个满足条件挖矿的区块。如果矿工
满足条件挖矿,将会获得 95%收益,5%纳入基金会用于市场推广。
CPOC 条件挖矿的发行方式会让矿工、矿池和基金会等参与方的产生正向商业博弈,使整个系统始
终会有一个较为主力的临时商业既得利者(这个既得利益者会随着时间和价格挖矿难度等变量条件
而变化)去无形推动整个生态。
3.2 BHD 经济模型
BHD 的共识算法在 Burst POC2 (Proof of Capacity) 的基础上进行了升级,称之为:CPOC
(Conditioned-Proof of Capacity),即”条件化容量证明”,也就是有条件的容量证明。
以解决以下问题:
防止经济模型攻击
POW 共识算法下的矿工因成本所迫抛售货币,将会导致整个矿业经济的萎缩,CPOC 的挖矿经济模
型使矿工成为生态利益的共同体、并用币作为新型生产资料代替了原本的电力消耗资源,使 BHD 整
个生态不停的自动扩张。
POW 维持成本高
基于 POW 共识的链,维持其安全需要消耗大量的电力,在市场处于低迷周期时电力是 POW 成本构
成的根本,远超硬件本身所带来的资源消耗,矿工不得不卖币付电费,矿工无法建立利益一致性和
17
认同感,矿工消耗的电力系统的价值也未能沉淀于其货币系统中,这部分的价值无时不刻都在从
POW 体系中抽离出去。
无经济动力持续推动发展
没有经济动力驱动,关键技术无法更新。从而得不到长期有效的发展和迭代,团队后续版本甚至会
产生无法区分主链的分叉情况。
矿机垄断
POW 共识算法,必然导致矿机的军备竞赛,为了获得更高的算力,必然会研发更高性能的专用矿
机,普通人无法参与挖矿。而 POC 共识算法,由于硬盘厂商的迭代速度慢,门槛低,据统计,
2018 年 q4 季度全球的硬盘厂商出货量达到 5000 万块,完全不用担心买不到硬盘,全球只要买得
到硬盘的国家,人人可以参与挖矿。
在传统商业供应链中供应商一般不会成为用户的直接竞争对手,但在 POW 中的 ASIC 厂商本身就是
其最大的矿工,也就是说 ASIC 厂商既是矿工的直接竞争对手也是矿工的供货商,当你的商业工具源
头来自于你的竞争对手的时候,你所拥有的利润就是被对方套利的风险部分,矿工完全沦为了 ASIC
厂商方的套利工具。
电力资源垄断
电力垄断导致 POW 内生经济系统不再扩张,矿工挖矿成本已高于挖矿收益,收支不平衡,而对于
CPOC 挖矿而言,硬盘耗电低,矿工的收益将会更加可计算,还可以利用民用计算机硬件的线性保
值率保证矿工可以在相对安全保本的情况下对冲二级市场的价格波动风险。
3.3 BHD 架构及共识算法
BHD 钱包源自 BTC,共识源自 BurstCoin。
18
BTC(Bitcoin)始于 2009 年 1 月,经过 10 年的迭代,其钱包稳定性及交易链稳定性已得到广泛的认
可,在其 QT 钱包基础上进行 POC 共识的部署将会非常安全可信。
BurstCoin 始于 2014 年 8 月,经过 4 年的迭代,于 2018 年升级到 POC2,技术相对成熟、完善。
把这两者结合,取长补短,BHD 成为目前 POC 共识算法下最可信赖的公链。
BHD 自 2018 年 8 月 3 日上线以来,算力稳步增长,经受了无数的测试、攻击和破解,至今无大的
漏洞出现。
通过采用成熟的 POC2 共识算法,BHD 瞬间获得一个稳定,可信赖的共识算法,社群具备对 BHD
公链的信心。通过兼容 BurstCoin Plot 文件,矿工仅仅需要增加微小的投入,便可以获得 BHD 和
BurstCoin 两份收益。
BHD 钱包继承了 BTC 优良的 P2P 网络架构,及 UTXO 体系,成熟、稳定。
继承自 BTC 钱包,可以保持对 BTC 社区最新进展的跟踪:如闪电网络,脚本升级等。
保持跟 BTC 的相同的接口规范,钱包,交易所对接获得了极大便利。
CPOC:Conditioned Proof Of Capacity,即有条件的容量证明。
参与挖矿有条件,需要条件 3 BHD/T。通过条件属性,有助于整个社群的稳定,可持续发展。
POC:Proof Of Capacity,即容量证明。
CPOC 经济模型博弈
角色:矿池、矿工、持币者、钱包、交易所、硬件服务商。
CPOC 生态中的商业博弈,产生内在经济循环和外部资源的进入会使之扩张发展,BHD 价格上涨,
会使矿工增加;矿工预先看好 BHD 网络加入也会助推 BHD 价格上涨,反之亦然。
19
POW 的成本制存在 4 个特性:1、作恶成本; 2、铸币成本 ;3、获取的容易度 ;4、挖矿设备价值
本身的沉淀,但最终 POW 也会成为低毛利率行业,短暂的暴利是因为其规模不够大,二级市场的波
动和挖矿设备的增加曲线不对称导致。POC 中由于硬件相对线性保值,电力消耗小,对于 POC 未来
的共生生态矿工免费获得币的权重过于高,不用付出任何风险即可获得几乎免费的其他附产小币
种,CPOC 在这个系统中让矿工低成本的付出风险成为其他币种的持币股东,防止矿工的恶意作
恶。同时 CPOC 系统高度看重发行权和记账打包权的无门槛释放,这决定了这个系统的公平性。
BHD 网络架构,及参与方:
20
3.3.1 矿工挖矿流程:
1、P 盘(Plot)
Miner(矿工)在本地硬盘 Plot 文件,用含有自己公钥的哈希值,综合 Shabal 算法填充硬盘。我们
将 plot 文件(p 盘)认为是软件制造“poc 矿机”的过程,将垄断矿机厂商的权力释放给每个普通的
人。
硬盘容量越大,填充的 Hash 值越多,爆块的概率越高。
Hash 算法采用 Shabal256,具有抗 ASIC 特性。
2、转账(Transaction)
钱包组成的 P2P 网络(基于 BTC);钱包之间进行转账操作。
3、打包(Forging)
Miner 通过钱包,侦听 P2P 网络,每当收到一个块,就开始下一块的打包过程。
钱包组织一个 Block,把 block 的哈希值发给 Miner,Miner 寻找最匹配的 Nonce。
钱包收到 Nonce 后,把 Nonce 转成 Deadline(时间),然后等待这个时间结束后,把块广播出
去。
4、验证(Verify)
收到 Block 之后,进行验证。
3.3.2 Plotting-创建 Plot 文件
算法和缩略词
Shabal:Shabal 是 BHD 中使用的加密/散列函数的名称。 与许多其他类似 SHA256 相比,Shabal
是一个相当沉重和缓慢的加密。 因此,使它成为 BHD 等容量证明的良好加密方案。 因为我们存储
预先计算的哈希值,同时它仍然足够快以进行较小的实时验证。 BHD 使用的是 Shabal 的 256bit 版
本,也称为 Shabal256。
21
Hash / Digest:散列或摘要是 Shabal256 加密的 32Byte(256 位)长字符串。
Nonce:生成 Plot 文件时,会生成一些名为 nonces 的字节。 每个随机数包含 256 千字节的数据,
矿工可以使用这些数据来计算截止日期。 每个 nonce 都有自己的个别编号。 该数字的范围可以在
0-18446744073709551615 之间。 在创建 nonce 时,该数字也用作种子。 因此,每个 nonce 都
有自己独特的数据集。 一个绘图文件可以包含许多 nonce。
Scoop:每个 nonce 被排序到 4096 个不同的数据位置。 这些地方被称为 scoop number。 每个
scoop 包含 64 字节的数据,其中包含 2 个哈希值。 这些哈希中的每一个都使用最终哈希进行
xored(异或)(我们在生成 nonce 章节时得到最终哈希)。
Plotter ID:创建 Plotter 文件时,它将绑定到特定的 BHD 帐户。 创建随机数时将使用 Plotter ID。
因此,即使他们使用相同的 nonce 数字,所有矿工都有不同的 Plotter 文件。
3.3.3 生成 nonce
创建 nonce 的第一步是制作第一个种子。 种子长 16bytes,包含 Plotter ID 和 nonce number。
完成后我们用 Shabal256 函数生成第一个哈希值。
创建首个哈希。 作为 nonce 中的最后一个哈希:#8191。 把哈希#8191 附加到起始种子。 作为
下一轮 shabal256 计算的种子。
22
创建了两个哈希: 哈希#8191 和#8190。 将 Hash #8190 附加到最后一个种子上,作为新种子。
创建新哈希。 对于全部 8192 个哈希,继续将哈希附加到,生成新新种子。迭代 128 次之后,种子
长度超过 4096 字节。 剩余的迭代,只读取最后 4096 个字节。
生成终极哈希(Final Hash).
用生成的 8192 个哈希,创建终极哈希。 全部 8192 个哈希值和前 16 个字节作为种子,Shabal256
函数后,生成终极哈希。
23
终极哈希单独 xor 所有其他哈希。
重复创建 nonce,并把它存到 plot 文件中。
3.3.4 POC 格式
POC nonce 与 Burst POC1 构造方式相同,只是在流程结束稍作调整,混一下数据。
数据混洗流程:
1.将 nonce 分成两半,范围 1:0-2047,范围 2: 2048-4095 的范围。
2. 0-2047 称为低 scoop 范围,2048-4095 称为高 scoop 范围。
24
3.从低 scoop 中取出第二个散列,并将与高 scoop 范围中的镜像 scoop 中的第二个散列交换。 镜 像 scoop 是这样计算的:
MirrorScoop = 4095 – CurrentScoop
3.3.5 Plot 结构
Mining 时,从一个或多个 plot 文件中读取 nonce。 矿工软件打开一个 plot 文件并寻找 scoop 位
置来检索 scoop 数据。 如果 plot 文件未经优化,则 scoop 将位于多个位置。 下面示例矿工读取#
403 scoop。
矿工花费大量时间在存储上寻找位置,才能读取 scoop,非常低效。
为了提升效率,可以优化 plot,或创建 plot 的时候,做好优化。
优化方案:重新排序 plot 文件中的数据, 把相同 scoop#的数据放在一起。
将 plot 文件分成 4096 个部分,根据 scoop 数量分割所有的 nonce 数据。
当矿工现在想要读取 Scoop 4096 时,它只寻求一次并按顺序读取所有数据,因此比较高效,符合
机械硬盘慢寻址特性。
25
3.3.6 Mining 和锻造区块
算法和缩略词
Shabal / Sha256
Shabal,Sha256 是本文中使用的加密哈希函数。 Shabal 是 BHD 使用的主要方法。 Shabal 是一
个相当沉重和缓慢的加密哈希函数,与 SHA256 等许多其他函数相关。 因此,它得以成为像 BHD
这样的容量证明货币的加密算法。这是因为我们存储了预先计算的哈希值,并且它仍然足够快以进
行较小的实时验证。 BHD 使用的是 Shabal 的 256bit 版本,也称为 Shabal256。
Deadline
当您挖掘并处理Plot文件时,最终会产生称为deadline的数值。 这些值表示在允许锻造区块之前,
自上一个块被锻造以来必须经过的秒数。 如果没有其他人在这段时间内锻造一个区块,你可以锻造
一个区块并获得区块奖励。
Block reward
如果你幸运地铸造了一个区块,你将获得 BHD 作为奖励。 这被称为块奖励。 每 568288 个区块,
区块奖励减少 50%。 从 197568 开始,每个区块奖励为 15 个 BHD。
Base target
Base Target 是根据最后 288 个块计算得出的。 该值调整了矿工的难度。 基准目标越低,矿工越难
找到数值小的 deadline。 它的调整方式是尽量让 BHD 每个区块平均间隔时间为 3 分钟。
Network Difficulty
Network Difficulty(网络难度),或简称 NetDiff,是一个值,可以看作对 BHD 存储空间的评估,单
位为 Byte。 这个值随块而变, 以 base target 为基准。
26
Block Height
每个被锻造的块都有一个单独的数字。 每个被锻造的新块都会在前一个块的编号上+1;此编号称为
块高度,用于标识唯一的区块。
Generation Signature
生成签名是基于先前的块 merkle 根和区块高度,然后矿工使用该值来锻造新块。 生成签名长度为
32 字节。
3.3.7 挖矿过程
矿工从钱包获取挖矿信息,此信息包含新的 generation signature,base target 和下一个块高度。
在钱包发送此信息之前,通过将上一个 generation signature 和 plot id 创建生成签名,并通过
shabal256 运行此方法以获取新哈希。 矿工将采用新的 32 字节生成签名和 8 字节块高度,并将它
们作为 Shabal256 的种子放在一起。 生成 Generation hash 的哈希值。
矿工对哈希进行小规模数学计算,通过散列对 4096 取模,找出 scoop number。
27
下一步读取 plot 文件,从所有的 nonce 中,获得 scoop,处理这些 scoop.
方案: shabal256(scoop.hash,generation signature),生成目标哈希,称为 target。 Target 除 以 base target,得到的前 8 个字节是值就是 deadline。
Target = shabal256(scoop.data,generation signature)
Deadline = target / base target;
为防止对钱包进行“nonce spamming”,矿工通常会检查当前 deadline 是否低于目前为止发现的最
低 deadline。 可以设置一个最大值,因为任何人都无法使用大得离谱的 deadline,检查之后,矿工
把信息提交给钱包。 此信息包含绑定到 plot 文件的 Plotter ID,以及包含用于生成 deadline 的
scoop 数据的 nonce。
3.3.8 区块锻造过程
处理 Deadline
钱包收到矿工提交的信息,创建对应的 nonce,以便找到并验证的 deadline。
然后,钱包现在将检查 deadline 对应时间的流逝,直到 deadline 对应的时间(秒)用光。
如果在 deadline 之前在网络上收到其他钱包的有效区块,则钱包将丢弃提交的 Mining 信息。
如果矿工提交新信息,钱包将创建 nonce,并检查 deadline 值是否低于之前的 deadline。
如果新 deadline 较小,钱包将使用该 deadline。
Deadline 有效时,钱包现在开始锻造一个新的区块。
28
锻造
首先,钱包获取从用户或网络收到的所有未经确认的交易。
钱包将尝试包含尽可能多的交易,直到达到 2M 的上限,或者直到处理完所有交易。
钱包对交易进行合法性检查。 例如,如果交易具有有效签名,如果它具有正确的时间戳等。
钱包还将总结所有添加的交易金额和费用。
BHD VS BTC
参数 BTC BHD
供应总量 2100 万 2100 万
出块时间 10 分钟 3 分钟
区块大小 1M 2M
减半周期 4 年减半 4 年减半
初始出块奖励 50 15
BHD 继承自 BTC,相对 BTC:
BHD 增加区块到 2M/Block,区块变大,单个区块可以包含更多交易,提升转账速度;
出块时间调整为 3 分钟,提升转账速度;
初始出块奖励调整为 15BHD/block,4 年减半;初始出块奖励减半,可以让社区有更多得时间,聚
集社区资源,矿工群体可以分享更多收益,同时维持 2100 万货币供应总量。
3.4 BHD 技术特性
1. POC2 共识算法;
2. 出块时间 3 分钟,交易速度更快;
3. 2M 区块大小,提升网络效率;
4. 全网容量达到 3000P 计划加入零知识证明;
5. 使用硬盘挖矿,抗 ASIC,无需专业设备即可挖矿;
6. 绿色环保,低能耗,低噪音;
29
3.4.1 区块链
● 块包括 proof sub block, signature sub block and transaction sub block。 ● 箭头表示该子块包含矿工对箭头指向子块的签名。
● 我们的 challenge 由 ? 块之前的 proof 子块的 hash 生成。

3.4.2 Possible attacks 可能的攻击及防范设计 Block grinding
矿工可以在创建块的时候, 尝试不同的交易组合, 使得创建的块对自己有一定偏向性。我们的区块结
构中 proof 子块的独立性可以防止这个攻击。
Challenge Grinding
• 矿工在挖矿的过程中, 可以将自己的空间分成 m 份, 然后对区块链上的连续 ? = 2∆块进行重
构,如果区块链的 Quality 定义如下: • 那么可以通过尝试第 i 块的 proof,使得 i + ∆ 的 Quality 最大。在以上基于线性求和的
Quality 下,按照上述的攻击方法,将会导致攻击者可以获得 ?2
倍的机会取得更大 Quality
• 通过重新定义区块链的 Quality 的,来降低这种攻击的获得收益倍数,将 Quality 的计算由
线性叠加改变为乘积的方式,定义如下:
• 在该定义下,攻击者获取的概率提升将会降低为 ??? (?)。同时,让连续的 ∆ 块的
challenge 由同一个块来决定,将会进一步降低该攻击的影响。
30
3.4.3 Transaction 交易
BHD 交易结构同 bitcoin 一样,即一条 UTXO 到 UTXO 的链。这种 transaction 的设计方式也是经
过了多年通用可用,也是用这种有效的办法来实现其基础的属性。

1755 浏览