Helium白皮书 2018-11版

Helium是个分布式无线网络,是第三方的物联网的基础设施,叫做PeopleNetwork(跟另一家TheThingNetwork差不多)。发起方是一个公司,Helium Systems, Inc.。

摘要

物联网市场很大,WDC的预测是,2021年1.4万亿美元;84亿个物联网连接设备。然而他们与互联网的连接比较落后、昂贵、耗能、范围有限。Helium network是一个分布式的无线基础网,不用卫星定位-耗电、不用手机移动网络-贵。Helium以区块链上进行Token(HNT)奖励的方式实现Helium的建设,具体特点是低功耗、开源的、跨行业的、无线分布网络。

1.背景

世界发展趋势之一是去中心化,如去中心化的平台、技术和服务以各种形式涌现出来。如Napster利用点对点网络进行音乐分享(肖恩范宁Shawn Fanning是Helium的联合创始人),BitTorrent(迅雷等,利用分布式哈希表存放大文件并可检索共享)等。比特币、以太坊等使用区块链来记账、运行简单应用。很多互联网应用、文件存储、鉴别、域名等,都从基于服务器的应用转成基于区块链的版本。 从技术变更速度的角度看去中心化,软件比硬件跑的快;这可以理解,硬件产品开发周期更长些。

既然是区块链应用,少不了共识协议,Helium共识协议是覆盖证明协议(Proof-of-Coverage)。矿工提供某一地理位置网络覆盖(A)、提供接入服务的时间(B)的证明,AB两项加密后作为证明提交个Helium网络。为了防止证明有假,矿工要经过拜占庭共识选出来,形成“共识组”,达成一致后进行区块链出块。每轮(epoch)做一次共识组选举,现在由Validator(验证节点)这个角色完成。 出一个块是1分钟,一轮(epoch)是30个块的时间。

桥接互联网与物联网设备需要WHIP协议(Helium Wireless protocol),功能类似LoraWAN。物联网设备通过互联网收发数据要收费;矿工提供网络接入要有所得;矿工参与验证要有奖励。

官网: https://github.com/helium

1.1 基本概念

Proof-of-Coverage:特定时间、地理覆盖的证明,计算强度不高。

Helium网络:Erlang写的独立的区块链,对网络中的设备和数据传输进行识别,实现WHIP协议。

Helium共识协议:无核准的、高吞吐的、抗审查的异步拜占庭共识协议。

WHIP:开源的兼容的无线网络协议,低功耗广域传输(言外之意是不限于LoraWAN),可由市场上可用的通信芯片实现,使用无产权限制的技术,数十个厂商均可完成。

位置证明(Proof-of-Location):使用WHIP协议进行地理位置的确定,不用卫星信号。设备可声明自己的位置,这是不可变的、安全的、可验证的,要记入链的。

DWN:Helium协议下为物联网设备提供互联网接入的部分,称为decentralized wireless network。

1.2 系统视图

* 物联网设备(物联网终端节点,不是区块链的节点)包括射频通信模块与遵守WHIP的固件;设备联网要花Token给矿工,以实现互联网通信。

* 矿工桥接WHIP与互联网路由器,获取奖励。

* 设备存有自己的私钥,公钥记录在区块链上。

* 矿工入网前要确定自己的地理位置,这一动作记录在链上,是一个区块链的交易。而且,要交钱-Token(现由设备商代缴)。

* 对某一设备的待传输数据由矿工定价,Router付款,交易上链后发放奖励。

* 矿工参与出块,异步拜占庭共识(现改为Validator出块)。

* 矿工在共识组被选出的概率,基于它所覆盖的面积。

* 区块链的数据源于Proof-of-Coverage,确保覆盖面积属实。

2. DWN

2.1 参与者

Helium网络有三类参与者:设备、矿工和路由器(router)。

*设备(Devices)收发加密的数据(多为传感器),发出的数据是经链上设备号签名的。

*矿工提供热点、在覆盖区域内的设备可以连接互联网。热点遵循WHIP协议,由认可的厂商提供,缴纳Token才可使用;根据热点的密度进行部署。矿工提供覆盖证明,提交不合格证明,矿工的分数值会下降。特定周期内,部分矿工被选出来,组成共识小组(委员会),共同出块。矿工的分数值也会影响到他被选举的概率。

*路由器(Routers)是互联网应用,它需要来自物联设备的数据,从矿工购买(仅以矿工为通道,不涉及数据所有权问题)。路由器通过位置证明从数个矿工中获取数据。类似内容寻址,热点要将设备数据发送到合适的路由器上。路由器负责确认热点和设备数据的正确传输,并奖励矿工为此提供的服务。

2.2 区块链

除了分布式账本功能外,Helium链记录DWN相关数据,如设备指纹、相关交易等。使用HCP(Helium Consensus Protocol)共识协议。区块的块头数据跟传统区块链类似,多了一个共识组的集体签名。

所有矿工周期性的根据PoCoverage提交证明,同时附加一个随时间衰减的分数;根据HoneyBadgerBFT协议和上述分数选择出委员会成员;委员会验证本周期内所有交易,签名上链;委员会成员获得奖励。

2.3 物理层

* WHIP 开放的无线协议,低功耗远距离,城域几公里,乡村十几公里。WHIP规定密码机制与鉴定方式。

* 热点 在物理层将互联网的路由器与物联网的设备进行连接。一个热点支持连接数千个物联网设备,覆盖十几平方公里。

* 设备 低功耗射频信号收发,集成各种传感器,一般电池供电(数年)。

2.4 WHIP

低功耗广域网Low Power Wide Area Network (LPWAN)技术日渐成熟。(技术背景描述省略)我们意在建设一个去中心化的无线网络,各厂商自由进出;使用的硬件也不能是专利生产或独家生产的。

Whip是一种LPWAN协议,工作在公共开放频段。使用NIST P-256 ECC标准进行接入授权、私钥存储使用现代密码机制、参与者公钥存于链上。无线电收发有若干厂商符合WHIP的标准,如Texas Instruments, Microchip, and Silicon Labs.

WHIP是一个窄带无线协议,在公共频段内使用几个信道并使用跳频切换信道。一般跳频需要时间同步,而WHIP不需要热点协调进行信道选择,全信道监听。

WHIP广泛支持各种速率、信道、纠错等技术;热点和设备协商后进行通信。

2.5 热点

通过TCP/IP连接互联网,可由以太网、WIFI、移动通信蜂窝网作为途径。热点通过无线射频连接设备,各国频段规定不同。通过软件进行调制与解调,监听范围更广。不需与设备同步,成本降低。允许热点使用跳频技术连接与射频进行连接,降低成本。

热 点需要GPS/GNSS接收器确定更准确的位置信息和时间信息。卫星位置可以验证热点的地理覆盖,但容易伪造,不够精准,需要多种机制来协助实现PoCoverage。位置证明机制使用多热点位置相互协助,进行精准定位。

2.6 设备

设备是指电池供电的服从WHIP协议的传感器。市场可见的低成本产品有Texas Instruments CC1125、 STMicroelectronics S2-LP;这些射频设备也就1美元(价量相关)。

推荐的设备商使用Microchip ECC508A或类似的秘钥硬件存储;NIST P-256 ECC这个标准产生公钥私钥,签名不用暴露私钥。秘钥存储设备和主机之间有很多被攻击的漏洞,需要更安全的措施。WHIP协议有API,用户可使用“可编程密码存储”。

2.7 路由器

路由器部署在互联网上,从热点接收设备的数据包,然后路由到目标,可以走HTTP协议或MQTT协议(后者是物联网的订阅消息的遥感协议 Telemetry Transport)。

路由器功能包括:识别设备;接收并路由热点传输的包;下发消息到设备;提供接收确认;提供鉴别和路由机制;可作为区块链全节点。

当热点收到设备的数据包,它查询区块链以确定使用哪一个路由器。每个人可以自建自己的路由器并定义特定的针对热点的路由策略。这样特定的加密数据就会导流到特定的路由器,类似VPN。

路由器可以实现一个通道Channel,认证后路由到特定的互联网服务,如云平台Google Cloud Platform IoT Core;这样,一个应用与一个设备实现安全的直连。我们将开源这些设备通道与网上服务的接口方案。我们同时提供云路由器,作为第三方的开源服务。

3 覆盖证明

Helium网络中,矿工要对它无线网覆盖提供证明,其他矿工进行验证。时序证明协议(Proof-of-Serialization)用于提供正确时序证据(相对网络的),并可获取恶意行为的密码学证据。借助以上两个协议,我们可以获得位置和时间维度的,确定性事件的密码证明。

相比其他共识协议,Helium要求证明要抵抗女巫攻击(矿工用假身份参与网络来获取奖励)。还要抗“替换现实攻击”,几个矿工组团,欺骗性提交地理的覆盖证明,比如在台式机上运行挖矿程序、模拟GPS定位和无线网络。后续介绍的Helium共识协议使用覆盖证明来支撑Helium链的运行,同时为Helium网络提供服务。

原理

提供覆盖的区域 = W

发起质询的矿工Challenger = C # “你真的覆盖了这偏区域么?”

GPS location = L # 地理坐标

要检验的n个目标 = T

一个T断言:在位置L中存在区域W,且说服了C ; T就是一个证明。#说服不了C就不能产出证明。

具体证明包括功能:

* 证明矿工使用的是WHIP协议规定的硬件和频率。

* 证明矿工位于它所声明的地理区域中。

* “现实”版本冲突时,能正确的辨识出现正确的版本。

覆盖证明协议不是从来就有的,源于导游协议-Guided Tour Protocol (GTP) 。大致原理如下:为了防止DoS攻击,服务器大量集中的请求先有导游先行分散一下。当客户端访问时,先由导游机计算出服务器地址。而多个导游机是排序的,导游机的访问顺序由哈希得出;只有通过全部导游机才能到达服务器。客户端访问到最后一个导游机时,向目标服务器发送一个证明,表明自己第一个和最后一个导游机都访问过了;而服务器无需通过全部导游机,只需验证首个和末个即可。

Helium网络中的矿工通过加密时序共识实现类似GTP的机制,称作时间序列证明-Proof-of-Serialization。时间同步不依赖于集中的时钟服务器,因为不需要特别精确的时间戳、保证顺序即可;且作假的时间服务器会中断序列证明的生成。

构造覆盖证明

无线射频通信不同于Internet通信,它的特点有:

a,距离有限,传播受限;b接收到的信号强度跟距离的平方成正比;c,信号以光速传播,无延时。

我们的目标是要去证明:矿工在特定区域内诚实的提供信号覆盖。挑战者challenger C

构造一个多层的数据包,每层形成一个序列然后广播;让序列中的目标一层层的(Target1~TargetN)剥葱头;每个目标只能包开最外层。每层剥开后签发一个收据提交给挑战者。

* 怎么确定第一个目标(第一层谁来剥)

挑战者C和第一个目标T都是矿工,C要确定T的位置,C和T无需地理靠近。

A 先引入这个公式,它定义了目标选取的概率P(m):  # m=miner, ɸm是miner的分数。

上述公式保证了低分数的矿工有更大的可能性;例如,n=5,ɸ越小,P越大。

B 挑战者将当前区块哈希签名作为可验证的种子(η),用于生成均匀的随机数。

C 步骤A产生每个矿工的分数列表;据此反向计算步骤B的累计分布。

那么低分数的不诚实的矿工会被首先挑出来。

若矿工分数是按时间衰减的,有必要给低分数矿工更多参与机会并提高其分数;这样可以激励参与者发送更多的收据给挑战者。

* 多层挑战

选出序列中的各个目标后,挑战者需要构建多层数据包并广播。地理位置覆盖(近似度)可用目标中心半径表示。构建多层数据包,每层对三个要素加密:E (S, ψ, R)。 E是ECDH秘钥协商函数,S为随机数、ψ为广播到下一层的时间、R是剩余各层要素的列表。目标所在区域到数据各层的映射,如示意图所示。

* 创建证明

数据包的各层构造之后,发送至目标T1,T1在Helium网络中广播。WHIP协议不是点对点的,就近的几个目标会天道此广播;只有特定的目标可以解密并发收据给挑战者。PoCoverage大致流程如下:

  1. T1收到挑战者的数据包,解开最外层数据-O后,在T1附近半径范围人广播。
  2. 其他目标T监听到并解密E (S, ψ, R)
  3. T记录数据包的到达时间b和这一层的信号强度v。
  4. T解密成功,曾签发收据Ks = (随机数S,到达时间b,信号强度v)。
  5. 通过Helium网络将Ks传输给C-挑战者,去除外层O,继续广播
  6. 重复至最后一个目标TLast。

挑战者C等到各目标的反应有个时间长度限制λ,而且只有C知道各层数据的具体信息;O中的参数b和v是C定义的,据此可以验证数据包的时空特性。到达时间b限于,Tn到Tn-1的光速传播时间。用tt表示光走每米所用时间(3x10⑻的倒数);考虑折射传播距离e,在距离D下到达某目标Tg的时间v = tt * (D+e)。根据物理量的反平方定律(和距离平方反比关系),可以计算出RSSI (Received Signal Strength Indication,接收信号强度指示)来验证信号强度v。

时间长度限制λ类似于TTL(这个包能活多长时间TimeToLive); λ到期或最后目标提交收据,此轮PoCoverage结束。Tlast个目标对应Klast个收据,提交至Helium网络。

* 分数

矿工分数和覆盖证明中的分值是Helium共识协议的一部分。加入Helium网络后,矿工会被分配一个分数,大于特定分数φm被认为是诚实的。这个分数会随矿工验证次数和区块高度而降低。φm降低,矿工成为被挑战的目标的概率就会增加;而Helium网络会频繁的对低分数矿工要求提供诚实性证明,并提供给矿工合理提高分数的机会。

定义如下:

M:矿工;

v:矿工成功验证次数 - 失败验证次数;

H:成功验证时的区块高度。

v` = v/10.0

h` = h/480, 假定验证的间隔为240个区块(出块时间为60秒时,大约需4小时)

为构造算分函数,我们引入疲劳因子δ,用它来确定矿工分数(δ的公式省略);这样做的效果如下:

1. 当v为负值,表示矿工持续验证失败。

  1. V=0,无法获得信任信息,使用极陡峭的下降抛物线(H增加,δ快速下降)。
  2. V>0, 表明矿工持续成功验证,缓慢下降。
  3. V<0, 表明矿工持续失败验证,因子持续缓慢增大。

结合因子函数,定义算法函数,其输出值在0-1之间。

矿工之间的连接(边),使用Dijkstra算法计算。多次迭代后,高分矿工所验证的边的权重会逐渐增强,被验证的矿工分数也会增加。这种解决办法有利于合格矿工而逐渐冷落不诚实的矿工。

* 目标选择

矿工分数会下降,有可能会僵尸在低分水平一段时间。所以引入了目标选择机制,增加低分者被选择的概率。通过定义选择概率P(m)保证了,低分数者概率增大。

其中:n为矿工数,φm为矿工分数。

* 验证证明

最后一个目标提交证明收据,PoCoverage完成。挑战者将各目标提交的收据作为一个交易,公示在Helium网络上。共识组里的矿工看到这一交易后,进行验证。挑战者对各目标的挑战、目标提供的收据都是确定性的、公开的、可验证的;验证矿工通过重建以下步骤进行验证:

1 重建N个矿工集合;

2 验证随机种子η,它曾经由挑战者在正确的时间点创建。

3 根据种子η从N个矿工中选择出t个矿工集合,所得结果应与被验证的选择集合相同。

4 构造T1~TLast目标序列。

5 使用Dijkstra算法构造图Tg;

6 验证各目标提交的收据Ks。

成功验证后,挑战者的分数也会更新。

构造序列证明

分布式节点达成密码学时间共识,我们使用Google的Roughtime协议;它不依赖特定的时间服务器、安全的提供粗略的时间同步。

* 证明生成

获取密码学安全时间的大致步骤如下:

1 矿工M伪随机的选出另外两个矿工,M1,M2;他们来证明序列顺序。

2 M知道M1和M2的公钥;否则可以从链上获取。

3 M使用SHA512将PoCoverage进行哈希,哈希值作为一个随机数R。

4 M根据以上数据生成哈希承诺书K(Proof Kernal),K=H(R||M1||M2)。

5 M将K发展给M1. M1回复消息,包含当前时间T、K,并对此签名。

6 M获知M1的回复;因R是随机值,M1的回复不可能是事先生成的。

假设M对M1不信任,继续对M2进行时间问询。

1 再次生成随机数R; 将T截断为512位,与另一个512随机数进行异或运算。

2 M生成第二个Kernel(Sub-proof-kernel),L=H(R||T||K);发送给M2。

3 M2回复U,U是含有T2和L的签名消息。

4 U是证明M1和M2序列的证明。

对于两个节点,效果不佳。但对于若干个独立节点,此算法提供的时间证明足够精确;一系列证明会将不诚实的节点排除在外。

* 证明验证

(略)

4 位置证明

对于矿工的位置证明和时间序列证明,可充分加以利用-生产位置证明。

4.1 动机

位置追踪对于低功耗设备是个最有用的场景,专家预计2022年会有7千万价值的追踪设备出货。Global Navigation Satellite Systems (GNSS)是现在通行的定位方案;GPS系统使用TOA(TimeOfArrival)来定位;20多颗卫星根据地面同步时间,确定设备的直线距离;使用三边测量法即可确定地理位置。

GPS方案应用广泛,能提供位置和时间服务。缺点是过于耗电,它要2分钟左右才能是的卫星锁定。例如,若一个设备一天发射25次位置信息,普通电池只能支撑一个月。对于室内的应用场景,GPS无法直线收到三到四颗的卫星信号。再者,GPS数据是不加密的,所以,GPS方案不适合Helium位置证明。

4.2 构造位置证明

(略)

5 交易事务

Helium链提供Token在地址间的转移;同时提供DWN网络操作相关的关键服务。

5.1 需要微交易

* 终端设备按数据包付费

Helium网络提供互联网传输,为此终端设备向矿工付费(不同于现有模式),需要按数据包进行计量。即使双方并未存在任何合同关系,设备也可向矿工收发数据包。

* 所有交易发生在链上

交易存储在链上,定期出块。出块成本要低、块足够大以容纳大量交易、出块间隔要小(交易速度快)。

* 允许设备将数据持有化在链上

交易相关数据的指纹可以存储在链上(DWN),我们认为传感器数据的防篡改、保证真实性会有更多应用场景。

5.2 现有方案的局限性

现存的链上微支付应用到Helium网络上有以下不适应之处:

*过重的交易费

考虑这种情况:多数交易特别小,要支付的服务费远小于支付额。此时,大量微交易的支付方,相比与价值交换场景,负担相对更多的交易费。类似当今信用卡购物中,低价格商品支付成本更高;卖方负担少的信用卡交易费,但承担了更大的风险。现有微支付方法不适用Helium网络中大量的微小交易。

*链上交易无成本

虽然设备希望零费用使用区块链,但会造成链上充斥垃圾交易。很容易使用脚本填充垃圾数据到区块链上,这会浪费空间、阻塞网络。一些公链采用其他方式增加使用成本,如转移验证工作给上链方。很多其他无成本上链的方式需要集中的协调人,不适合helium网络。

*状态通道

状态通道让双方在低风险情况下交换价值,一次交换是很小粒度的增量(链下操作后再操作)。如果一方认为另一方不诚实,可以关闭通道;通道上链后,顶多一次小粒度支付是有风险的。然而,这种方式使支付方锁定资产在支付通道中,而资产不能他用;通道中的交易不会全部上链;实现相对复杂。目前状态通道主要用作支付通道。(Lightning、Raiden采用支付通道,还未普及@2018年)

*迟后支付

分布式系统中采用事后结算、事后付款是一种高风险行为。没有信任关系或资产抵押时,这不是一个可行的机制。

5.3 Helium中的各种费

5.3.1 传输费

终端设备通过Helium网络向互联网传输数据,要付给矿工传输费。传输费是对数据包传送到互联网路由器服务的报酬。区块链相关的挖矿交易不包括在内。费用由路由器和矿工商定。矿工制定它愿意接收的,传输每字节数据量的价格。终端设备属于路由器,路由器收到数据后付费。因为传输交易上链,发生在数据传输行为之后;所以矿工先收到传输费。这样矿工有以下风险,传输完了并未付款或并未上链。确定结算时最低字节传输量可以限制风险;此外,矿工可以使用黑名单限制特定的设备或组织。

5.3.2 交易费

绝大多数区块链使用交易费激励矿工打包、校验交易,以便网络稳定运行、并保证链上数据的纯净。根据以往的包传输费用δ 的中值粗略的确定适当的费率水平。包传输链上发生后,费用使用固定值确定。将交易费锚定到链上是基于现实的原因,Helium网络的本意是提高无线覆盖的接入服务,要保证所有参与者的经济可行性。若使用成本高于市场,Helium将丧失它的功能。

为了让矿工和轻客户端能够确定费率,全节点提供了建议的API;这样自由有限的节点不用保存最近交易记录、不用自行计算交易费。块提交后,共识组会检验交易费的偏差(可接受性)。

HCP协议具有抗审查性、并不会对规模大的交易有额外奖励。不像比特币,矿工会从交易池优先挑选交易费高的交易打包,Helium网络的矿工是看不到交易内容的(需伙同共识组矿工解密)。过高过低交易费的交易,将在出块前被拒绝掉。

5.3.3 入场费

链上确定热点位置的交易- assert location ,需要动态计算其入场费。Helium网络最大化它的使用价值,跟热点的密度有关;所以在入场费加以调节,以到达热点拓扑的最优。位置确定的入场费y有函数确定:

D表示理想密度,F是每交易的单位费用,当D=3、F=1时,图像为:

如图,位置增加到适当密度区域,费用低;新建网络或设在拥挤的区域,入场费会很贵(对网络没什么好处)。而且,此机制增加了“替代现实攻击”的难度。

没有确定位置、没交入场费的矿工,进不了共识组。热点换地方(搬家)要重新付费。

5.4 Helium链的交易指令

* add_hotspot

新增热点需要在链上作为一个交易进行注册。热点添加到现有账户;账户支付股本金,同时接受挖矿奖励和热点所得费用。

属性:

热点地址 : 加入网络后热点的公钥地址

所有者地址: 所有者的账户地址

签名: 所有者和热点的联合签名

* assert location

位置确定,确定热点位置的地理坐标,需要支付资本金。

属性:

热点地址 : 将确定位置的热点地址

Nonce:自增的计数器

经纬度: 地球经纬度

高度:海拔高度

签名:热点的签名

* payment

从一个账户到另一个账户的Token转移

属性:双方地址、计数器、数量、发送者的签名

5.5 轻客户端与全节点

如何处理持续增加的区块链大小(存储规模)?所有交易全部上链,会使全节点特别大。为此,我们运行区块链节点去掉历史悠久的老区块,只存部分新区块,称为轻客户端;称为轻客户端“轻客户端”而不是“轻节点”,是因为他们在对等网上与全节点通信。全节点保存全量交易记录并验证交易。

那么谁来作为全节点?有什么激励措施?路由器是软件应用、一般基于云存储,被要求来运行全节点。我也会主导运行一些作为全节点的路由器,这样方便开发者对产品和应用的开发。企业也可自行开发自定的全节点。所有这些路由器组成全节点网络,来支持热点、轻客户端和钱包的运行。(后来改成Validator了)

6 HCP 共识协议

    1. 动机

中本聪共识使用难于计算、易于验证的POW算法,遏制女巫攻击。这种主流的共识实现最主要的缺点就是耗能;比特币耗能总量比一些小国家都大。鉴于挖矿难度极大,矿工组成矿池共同挖矿、分享收益,这使得比特币和以太坊丧失了去中心化的优势;他们前10%的矿池垄断着,共识也就集中在少数人手中。共识机制最近有所改进,如Filecoin使用时空证明、以太坊转移到权益证明上。

Helium的共识须有以下特性:

无许可: 区块链节点自由出入、不许第三方许可,只需遵守共识规则即可。

天然去中心化:共识过程中,任何资源优势、便宜的电力、硬件的领先等都无法受惠。而且,联合组成矿池是技术不可能的。

拜占庭容错:兼顾共识达成效率和公正。

提供社会效用:达成共识的过程对网络有益并可重用。中本聪共识仅用于出块,并无他用。目标的共识系统出了保证链的安全外,还提供其他价值。

高吞吐:交易打包入块即为确认,每秒可处理更多的交易。多数链上共识等待时间过长,而Helium中的交易不能等。

交易抗审查:矿工不能在挖矿前对交易挑三拣四,这不仅杜绝恶意审查,还能让普通交易(固定费率的交易)上链。

    1. HCP

基于覆盖证明协议、结合HoneyBadgerBFT (HBFT)协议,我们提出了一种异步拜占庭容错协议HCP。

      1. HBFT

HFBT是可达到最优效率的异步原子广播协议,2016年提出。它假定网络由N个独立节点组成,对应于HCP协议中的共识组C。共识组以收到的交易为输入,以排序后的交易序列为输出。获得输出需要取得一致性,并将他们加入区块。

协议执行多轮,每轮产生一批交易(追加到区块链,原文上链,但此时还不少共识的结果)。每轮的开始,共识组选择交易的子集,放入自己的缓存,让后输入给随机一致性协议;多次选择之后,最后选择的一批交易作为本轮的结果。

HBFT依赖于门限加密机制,交易使用分段的公钥加密,共识组需要全体成员一起解密。这意味着,不同谋于多数人,单一节点无法作恶。

      1. 覆盖证明的HBFT

Helium网络中矿工每周期都提交覆盖证明,作为一种交易记入区块链。提高合格的证明增加自己的分数。在另一个周期,N个高分矿工被选举出来作为共识组C。

使用覆盖证明选举的C,解决了HBFT协议中节点的身份问题。Helium链无需许可的意思,也就是我们可以使用覆盖证明确定矿工的诚实性,给最诚实的矿工出块并获得奖励的机会。

      1. 共识组

共识组负责创建区块、追加上链,所有新交易都提交到共识组成员。固定周期内,共识组创建区块,各共识组成员分享出块奖励Token,包括块中合法交易的费用(已更改)。极端情况下,出块周期内可能生成不含交易的空块。

      1. 挖矿过程

共识组成员确定后,启动分布式秘钥生成程序,生成一个门限加密秘钥TPKE。TPKE关联一个公钥PK,允许任一方交易加密,共识组全体联合才能解密。一旦一定数量(f+1为容错协议的系数,决定具体数量)的成员正确计算出他们自己部分的解密内容,交易内容就全部恢复(拼接式解密)。TPKE.Setup函数产生PK,含有PK的块提交到链上,每个成员就会收到对应的私钥部分(PK对应的分段的私钥SKi)。

(程序流程略)

7 未来

本文对构造Helium网络提供了尽可能详实的说明,但只是一个去中心化无线网设计、研究和开发的开端。将区块链Token与现有网络硬件相结合是一种有价值的创新。我们认为未来的区块链共识证明,不是比拼算力和电力成本,而是在于提供有价值的可验证的服务。

我们将继续以下工作:

* 拓展应用到其他物理层,如WiFi、蓝牙与蜂窝通信

* 拓展到5G传输网

* 研究更安全的覆盖证明

* 激励机制的博弈分析

* 覆盖证明分数的形式化证明

* WHIP协议规范

* 制造Helium网络需要的热点与终端设备

* 在DWN的命令部署为链上合约

* 推动转发纠错技术的发展

白话版::木村晓 @18511075010

猜你喜欢

转载自blog.csdn.net/savagesong2006/article/details/126659109