加密市场2022-12-15 14:30:53
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。物联网设备通过互联网收发数据要收费; 矿工提供网络接入要有所得; 矿工参与 验证要有奖励。
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 的分数。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 小时)
为构造算分函数,我们引入疲劳因子 δ ,用它来确定矿工分数( δ的公式省略) ;这样做的 效果如下:
当v为负值,表示矿工持续验证失败。
V=0,无法获得信任信息,使用极陡峭的下降抛物线(H增加, δ快速下降) 。
V>0,表明矿工持续成功验证,缓慢下降。
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 的公钥; 否则可以从链上获取。
2. M 使用 SHA512 将 PoCoverage 进行哈希,哈希值作为一个随机数 R。
3 .M 根据以上数据生成哈希承诺书 K(Proof Kernal) ,K=H(R | |M1 | |M2) 。
4. M 将 K 发展给 M1. M1 回复消息,包含当前时间 T、K,并对此签名。
5 .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 位置证明。
5 交易事务
Helium 链提供 Token 在地址间的转移; 同时提供 DWN 网络操作相关的关键服务。
5.1 需要微交易
* 终端设备按数据包付费
Helium 网络提供互联网传输,为此终端设备向矿工付费(不同于现有模式) ,需要按数据 包进行计量。即使双方并未存在任何合同关系,设备也可向矿工收发数据包。
* 所有交易发生在链上
交易存储在链上,定期出块。出块成本要低、块足够大以容纳大量交易、出块间隔要小(交 易速度快) 。
* 允许设备将数据持有化在链上
交易相关数据的指纹可以存储在链上(DWN) ,我们认为传感器数据的防篡改、保证真实 性 会有更多应用场景。
5.2 现有方案的局限性
现存的链上微支付应用到 Helium 网络上有以下不适应之处:
*过重的交易费
考虑这种情况: 多数交易特别小,要支付的服务费远小于支付额。此时,大量微交易的支付 方,相比与价值交换场景,负担相对更多的交易费。类似当今信用卡购物中,低价格商品支 付成本更高; 卖方负担少的信用卡交易费,但承担了更大的风险。现有微支付方法不适用 Helium 网络中大量的微小交易。
*链上交易无成本
虽然设备希望零费用使用区块链,但会造成链上充斥垃圾交易。很容易使用脚本填充垃圾数 据到区块链上,这会浪费空间、阻塞网络。一些公链采用其他方式增加使用成本,如转移验 证工作给上链方。很多其他无成本上链的方式需要集中的协调人,不适合 helium 网络。 *状态通道
状态通道让双方在低风险情况下交换价值,一次交换是很小粒度的增量(链下操作后再操作)。如果一方认为另一方不诚实,可以关闭通道; 通道上链后,顶多一次小粒度支付是有 风险的。然而,这种方式使支付方锁定资产在支付通道中,而资产不能他用; 通道中的交易 不会全部上链; 实现相对复杂。 目前状态通道主要用作支付通道。(Lightning、Raiden 采 用支付通道,还未普及)
*迟后支付
分布式系统中采用事后结算、事后付款是一种高风险行为。没有信任关系或资产抵押时,这 不是一个可行的机制。
5.3 Helium 中的各种费
5.3.1 传输费
终端设备通过 Helium 网络向互联网传输数据,要付给矿工传输费。传输费是对数据包 传送到互联网路由器服务的报酬。区块链相关的挖矿交易不包括在内。费用由路由器和矿工 商定。矿工制定它愿意接收的,传输每字节数据量的价格。终端设备属于路由器,路由器收 到数据后付费。因为传输交易上链,发生在数据传输行为之后; 所以矿工先收到传输费。这 样矿工有以下风险,传输完了并未付款或并未上链。确定结算时最低字节传输量可以限制风 险; 此外,矿工可以使用黑名单限制特定的设备或组织。
5.3.2 交易费
绝大多数区块链使用交易费激励矿工打包、校验交易,以便网络稳定运行、并保证链上 数据的纯净。根据以往的包传输费用 δ 的中值粗略的确定适当的费率水平。包传输链上发 生后,费用使用固定值确定。将交易费锚定到链上是基于现实的原因,Helium 网络的本意 是提高无线覆盖的接入服务,要保证所有参与者的经济可行性。若使用成本高于市场, Helium将丧失它的功能。
为了让矿工和轻客户端能够确定费率,全节点提供了建议的 API; 这样自由有限的节点 不用保存最近交易记录、不用自行计算交易费。块提交后,共识组会检验交易费的偏差(可 接受性) 。
HCP 协议具有抗审查性、并不会对规模大的交易有额外奖励。不像比特币,矿工会从交 易池优先挑选交易费高的交易打包,Helium 网络的矿工是看不到交易内容的(需伙同共识 组矿工解密) 。过高过低交易费的交易,将在出块前被拒绝掉。
5.4 Helium 链的交易指令
* add_hotspot
新增热点需要在链上作为一个交易进行注册。热点添加到现有账户; 账户支付股本金,同时 接受挖矿奖励和热点所得费用。
属性:
热点地址 :加入网络后热点的公钥地址
所有者地址: 所有者的账户地址
签名: 所有者和热点的联合签名
* assert location
位置确定,确定热点位置的地理坐标,需要支付资本金。
属性:
热点地址 :将确定位置的热点地址
Nonce: 自增的计数器
经纬度: 地球经纬度高度: 海拔高度
签名: 热点的签名
* payment
从一个账户到另一个账户的 Token 转移
属性: 双方地址、计数器、数量、发送者的签名
5.5 轻客户端与全节点
如何处理持续增加的区块链大小(存储规模) ?所有交易全部上链,会使全节点特别 大。为此,我们运行区块链节点去掉历史悠久的老区块,只存部分新区块,称为轻客户端; 称为轻客户端“轻客户端”而不是“轻节点” ,是因为他们在对等网上与全节点通信。全节 点保存全量交易记录并验证交易。
那么谁来作为全节点? 有什么激励措施? 路由器是软件应用、一般基于云存储,被要求 来运行全节点。我也会主导运行一些作为全节点的路由器,这样方便开发者对产品和应用的 开发。企业也可自行开发自定的全节点。所有这些路由器组成全节点网络,来支持热点、轻 客户端和钱包的运行。(后来改成 Validator 了)
6 HCP 共识协议
四川欣欣微笑科技有限公司13608018782
6.1 动机
中本聪共识使用难于计算、易于验证的 POW 算法,遏制女巫攻击。这种主流的共识实 现最主要的缺点就是耗能; 比特币耗能总量比一些小国家都大。鉴于挖矿难度极大,矿工组 成矿池共同挖矿、分享收益,这使得比特币和以太坊丧失了去中心化的优势; 他们前 10% 的矿池垄断着,共识也就集中在少数人手中。共识机制最近有所改进,如 Filecoin 使用时 空证明、以太坊转移到权益证明上。
Helium 的共识须有以下特性:
无许可: 区块链节点自由出入、不许第三方许可,只需遵守共识规则即可。
天然去中心化: 共识过程中,任何资源优势、便宜的电力、硬件的领先等都无法受惠。而 且,联合组成矿池是技术不可能的。
拜占庭容错: 兼顾共识达成效率和公正。
提供社会效用: 达成共识的过程对网络有益并可重用。中本聪共识仅用于出块,并无他用。 目标的共识系统出了保证链的安全外,还提供其他价值。
高吞吐: 交易打包入块即为确认,每秒可处理更多的交易。多数链上共识等待时间过长,而 Helium 中的交易不能等。
交易抗审查: 矿工不能在挖矿前对交易挑三拣四,这不仅杜绝恶意审查,还能让普通交易 (固定费率的交易) 上链。
6.2 HCP
基于覆盖证明协议、结合HoneyBadgerBFT (HBFT)协议,我们提出了一种异步拜占庭容错协议 HCP。
6.2.1 HBFT
HFBT 是可达到最优效率的异步原子广播协议,2016 年提出。它假定网络由 N 个独立 节点组成,对应于 HCP 协议中的共识组 C。共识组以收到的交易为输入,以排序后的交易 序列为输出。获得输出需要取得一致性,并将他们加入区块。
协议执行多轮,每轮产生一批交易(追加到区块链,原文上链,但此时还不少共识的结
果) 。每轮的开始,共识组选择交易的子集,放入自己的缓存,让后输入给随机一致性协 议; 多次选择之后,最后选择的一批交易作为本轮的结果。
HBFT 依赖于门限加密机制,交易使用分段的公钥加密,共识组需要全体成员一起解 密。这意味着,不同谋于多数人,单一节点无法作恶。
6.2.2 覆盖证明的 HBFT
Helium 网络中矿工每周期都提交覆盖证明,作为一种交易记入区块链。提高合格的证 明增加自己的分数。在另一个周期,N 个高分矿工被选举出来作为共识组 C。
使用覆盖证明选举的 C,解决了 HBFT 协议中节点的身份问题。Helium 链无需许可的 意思,也就是我们可以使用覆盖证明确定矿工的诚实性,给最诚实的矿工出块并获得奖励的 机会。
6.2.3 共识组
共识组负责创建区块、追加上链,所有新交易都提交到共识组成员。固定周期内,共识 组创建区块,各共识组成员分享出块奖励 Token,包括块中合法交易的费用(已更改) 。极 端情况下,出块周期内可能生成不含交易的空块。
6.2.4 挖矿过程
共识组成员确定后,启动分布式秘钥生成程序,生成一个门限加密秘钥 TPKE。TPKE 关 联一个公钥 PK,允许任一方交易加密,共识组全体联合才能解密。一旦一定数量(f+1为容 错协议的系数,决定具体数量) 的成员正确计算出他们自己部分的解密内容,交易内容就全 部恢复(拼接式解密) 。TPKE.Setup 函数产生 PK,含有 PK 的块提交到链上,每个成员就 会收到对应的私钥部分(PK 对应的分段的私钥 SKi) 。
7 未来
本文对构造 Helium 网络提供了尽可能详实的说明,但只是一个去中心化无线网设计、研究 和开发的开端。将区块链 Token 与现有网络硬件相结合是一种有价值的创新。我们认为未 来的区块链共识证明,不是比拼算力和电力成本,而是在于提供有价值的可验证的服务。 我们将继续以下工作:
拓展应用到其他物理层,如 WiFi、蓝牙与蜂窝通信,拓展到 5G 传输网,研究更安全的覆盖证明, 激励机制的博弈分析, 覆盖证明分数的形式化证明, WHIP 协议规范, 制造 Helium 网络需要的热点与终端设备, 在 DWN 的命令部署为链上合约, 推动转发纠错技术的发展。
四川欣欣微笑科技有限公司13608018782
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。物联网设备通过互联网收发数据要收费; 矿工提供网络接入要有所得; 矿工参与 验证要有奖励。
四川欣欣微笑科技有限公司136 08018782
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 的分数。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 小时)
为构造算分函数,我们引入疲劳因子 δ ,用它来确定矿工分数( δ的公式省略) ;这样做的 效果如下:
当v为负值,表示矿工持续验证失败。
V=0,无法获得信任信息,使用极陡峭的下降抛物线(H增加, δ快速下降) 。
V>0,表明矿工持续成功验证,缓慢下降。
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 的公钥; 否则可以从链上获取。
2. M 使用 SHA512 将 PoCoverage 进行哈希,哈希值作为一个随机数 R。
3 .M 根据以上数据生成哈希承诺书 K(Proof Kernal) ,K=H(R | |M1 | |M2) 。
4. M 将 K 发展给 M1. M1 回复消息,包含当前时间 T、K,并对此签名。
5 .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 、 位置证明
对于矿工的位置证明和时间序列证明,可充分加以利用-生产位置证明。
四川欣欣微笑科技有限公司13608018782
4.1 动机
位置追踪对于低功耗设备是个最有用的场景,专家预计2022年会有7千万价值的追踪设备 出货。Global Navigation Satellite Systems (GNSS)是现在通行的定位方案; GPS 系统使 用 TOA(TimeOfArrival) 来定位; 20多颗卫星根据地面同步时间,确定设备的直线距离; 使 用三边测量法即可确定地理位置。
GPS 方案应用广泛,能提供位置和时间服务。缺点是过于耗电,它要 2 分钟左右才能是 的卫星锁定。例如,若一个设备一天发射 25 次位置信息,普通电池只能支撑一个月。对于 室内的应用场景,GPS 无法直线收到三到四颗的卫星信号。再者,GPS 数据是不加密的, 所 以,GPS 方案不适合 Helium 位置证明。
5 交易事务
Helium 链提供 Token 在地址间的转移; 同时提供 DWN 网络操作相关的关键服务。
5.1 需要微交易
* 终端设备按数据包付费
Helium 网络提供互联网传输,为此终端设备向矿工付费(不同于现有模式) ,需要按数据 包进行计量。即使双方并未存在任何合同关系,设备也可向矿工收发数据包。
* 所有交易发生在链上
交易存储在链上,定期出块。出块成本要低、块足够大以容纳大量交易、出块间隔要小(交 易速度快) 。
* 允许设备将数据持有化在链上
交易相关数据的指纹可以存储在链上(DWN) ,我们认为传感器数据的防篡改、保证真实 性 会有更多应用场景。
5.2 现有方案的局限性
现存的链上微支付应用到 Helium 网络上有以下不适应之处:
*过重的交易费
考虑这种情况: 多数交易特别小,要支付的服务费远小于支付额。此时,大量微交易的支付 方,相比与价值交换场景,负担相对更多的交易费。类似当今信用卡购物中,低价格商品支 付成本更高; 卖方负担少的信用卡交易费,但承担了更大的风险。现有微支付方法不适用 Helium 网络中大量的微小交易。
*链上交易无成本
虽然设备希望零费用使用区块链,但会造成链上充斥垃圾交易。很容易使用脚本填充垃圾数 据到区块链上,这会浪费空间、阻塞网络。一些公链采用其他方式增加使用成本,如转移验 证工作给上链方。很多其他无成本上链的方式需要集中的协调人,不适合 helium 网络。 *状态通道
状态通道让双方在低风险情况下交换价值,一次交换是很小粒度的增量(链下操作后再操作)。如果一方认为另一方不诚实,可以关闭通道; 通道上链后,顶多一次小粒度支付是有 风险的。然而,这种方式使支付方锁定资产在支付通道中,而资产不能他用; 通道中的交易 不会全部上链; 实现相对复杂。 目前状态通道主要用作支付通道。(Lightning、Raiden 采 用支付通道,还未普及)
*迟后支付
分布式系统中采用事后结算、事后付款是一种高风险行为。没有信任关系或资产抵押时,这 不是一个可行的机制。
5.3 Helium 中的各种费
5.3.1 传输费
终端设备通过 Helium 网络向互联网传输数据,要付给矿工传输费。传输费是对数据包 传送到互联网路由器服务的报酬。区块链相关的挖矿交易不包括在内。费用由路由器和矿工 商定。矿工制定它愿意接收的,传输每字节数据量的价格。终端设备属于路由器,路由器收 到数据后付费。因为传输交易上链,发生在数据传输行为之后; 所以矿工先收到传输费。这 样矿工有以下风险,传输完了并未付款或并未上链。确定结算时最低字节传输量可以限制风 险; 此外,矿工可以使用黑名单限制特定的设备或组织。
5.3.2 交易费
绝大多数区块链使用交易费激励矿工打包、校验交易,以便网络稳定运行、并保证链上 数据的纯净。根据以往的包传输费用 δ 的中值粗略的确定适当的费率水平。包传输链上发 生后,费用使用固定值确定。将交易费锚定到链上是基于现实的原因,Helium 网络的本意 是提高无线覆盖的接入服务,要保证所有参与者的经济可行性。若使用成本高于市场, Helium将丧失它的功能。
为了让矿工和轻客户端能够确定费率,全节点提供了建议的 API; 这样自由有限的节点 不用保存最近交易记录、不用自行计算交易费。块提交后,共识组会检验交易费的偏差(可 接受性) 。
HCP 协议具有抗审查性、并不会对规模大的交易有额外奖励。不像比特币,矿工会从交 易池优先挑选交易费高的交易打包,Helium 网络的矿工是看不到交易内容的(需伙同共识 组矿工解密) 。过高过低交易费的交易,将在出块前被拒绝掉。
5.4 Helium 链的交易指令
* add_hotspot
新增热点需要在链上作为一个交易进行注册。热点添加到现有账户; 账户支付股本金,同时 接受挖矿奖励和热点所得费用。
属性:
热点地址 :加入网络后热点的公钥地址
所有者地址: 所有者的账户地址
签名: 所有者和热点的联合签名
* assert location
位置确定,确定热点位置的地理坐标,需要支付资本金。
属性:
热点地址 :将确定位置的热点地址
Nonce: 自增的计数器
经纬度: 地球经纬度高度: 海拔高度
签名: 热点的签名
* payment
从一个账户到另一个账户的 Token 转移
属性: 双方地址、计数器、数量、发送者的签名
5.5 轻客户端与全节点
如何处理持续增加的区块链大小(存储规模) ?所有交易全部上链,会使全节点特别 大。为此,我们运行区块链节点去掉历史悠久的老区块,只存部分新区块,称为轻客户端; 称为轻客户端“轻客户端”而不是“轻节点” ,是因为他们在对等网上与全节点通信。全节 点保存全量交易记录并验证交易。
那么谁来作为全节点? 有什么激励措施? 路由器是软件应用、一般基于云存储,被要求 来运行全节点。我也会主导运行一些作为全节点的路由器,这样方便开发者对产品和应用的 开发。企业也可自行开发自定的全节点。所有这些路由器组成全节点网络,来支持热点、轻 客户端和钱包的运行。(后来改成 Validator 了)
6 HCP 共识协议
6.1 动机
中本聪共识使用难于计算、易于验证的 POW 算法,遏制女巫攻击。这种主流的共识实 现最主要的缺点就是耗能; 比特币耗能总量比一些小国家都大。鉴于挖矿难度极大,矿工组 成矿池共同挖矿、分享收益,这使得比特币和以太坊丧失了去中心化的优势; 他们前 10% 的矿池垄断着,共识也就集中在少数人手中。共识机制最近有所改进,如 Filecoin 使用时 空证明、以太坊转移到权益证明上。
Helium 的共识须有以下特性:
无许可: 区块链节点自由出入、不许第三方许可,只需遵守共识规则即可。
天然去中心化: 共识过程中,任何资源优势、便宜的电力、硬件的领先等都无法受惠。而 且,联合组成矿池是技术不可能的。
拜占庭容错: 兼顾共识达成效率和公正。
提供社会效用: 达成共识的过程对网络有益并可重用。中本聪共识仅用于出块,并无他用。 目标的共识系统出了保证链的安全外,还提供其他价值。
高吞吐: 交易打包入块即为确认,每秒可处理更多的交易。多数链上共识等待时间过长,而 Helium 中的交易不能等。
交易抗审查: 矿工不能在挖矿前对交易挑三拣四,这不仅杜绝恶意审查,还能让普通交易 (固定费率的交易) 上链。
6.2 HCP
基于覆盖证明协议、结合HoneyBadgerBFT (HBFT)协议,我们提出了一种异步拜占庭容错协议 HCP。
6.2.1 HBFT
HFBT 是可达到最优效率的异步原子广播协议,2016 年提出。它假定网络由 N 个独立 节点组成,对应于 HCP 协议中的共识组 C。共识组以收到的交易为输入,以排序后的交易 序列为输出。获得输出需要取得一致性,并将他们加入区块。
协议执行多轮,每轮产生一批交易(追加到区块链,原文上链,但此时还不少共识的结
果) 。每轮的开始,共识组选择交易的子集,放入自己的缓存,让后输入给随机一致性协 议; 多次选择之后,最后选择的一批交易作为本轮的结果。
HBFT 依赖于门限加密机制,交易使用分段的公钥加密,共识组需要全体成员一起解 密。这意味着,不同谋于多数人,单一节点无法作恶。
6.2.2 覆盖证明的 HBFT
Helium 网络中矿工每周期都提交覆盖证明,作为一种交易记入区块链。提高合格的证 明增加自己的分数。在另一个周期,N 个高分矿工被选举出来作为共识组 C。
使用覆盖证明选举的 C,解决了 HBFT 协议中节点的身份问题。Helium 链无需许可的 意思,也就是我们可以使用覆盖证明确定矿工的诚实性,给最诚实的矿工出块并获得奖励的 机会。
6.2.3 共识组
共识组负责创建区块、追加上链,所有新交易都提交到共识组成员。固定周期内,共识 组创建区块,各共识组成员分享出块奖励 Token,包括块中合法交易的费用(已更改) 。极 端情况下,出块周期内可能生成不含交易的空块。
6.2.4 挖矿过程
共识组成员确定后,启动分布式秘钥生成程序,生成一个门限加密秘钥 TPKE。TPKE 关 联一个公钥 PK,允许任一方交易加密,共识组全体联合才能解密。一旦一定数量(f+1为容 错协议的系数,决定具体数量) 的成员正确计算出他们自己部分的解密内容,交易内容就全 部恢复(拼接式解密) 。TPKE.Setup 函数产生 PK,含有 PK 的块提交到链上,每个成员就 会收到对应的私钥部分(PK 对应的分段的私钥 SKi) 。
7 未来
本文对构造 Helium 网络提供了尽可能详实的说明,但只是一个去中心化无线网设计、研究 和开发的开端。将区块链 Token 与现有网络硬件相结合是一种有价值的创新。我们认为未 来的区块链共识证明,不是比拼算力和电力成本,而是在于提供有价值的可验证的服务。 我们将继续以下工作:
拓展应用到其他物理层,如 WiFi、蓝牙与蜂窝通信,拓展到 5G 传输网,研究更安全的覆盖证明, 激励机制的博弈分析, 覆盖证明分数的形式化证明, WHIP 协议规范, 制造 Helium 网络需要的热点与终端设备, 在 DWN 的命令部署为链上合约, 推动转发纠错技术的发展。
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。物联网设备通过互联网收发数据要收费; 矿工提供网络接入要有所得; 矿工参与 验证要有奖励。
四川欣欣微笑科技有限公司136 08018782
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 的分数。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 小时)
为构造算分函数,我们引入疲劳因子 δ ,用它来确定矿工分数( δ的公式省略) ;这样做的 效果如下:
当v为负值,表示矿工持续验证失败。
V=0,无法获得信任信息,使用极陡峭的下降抛物线(H增加, δ快速下降) 。
V>0,表明矿工持续成功验证,缓慢下降。
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 的公钥; 否则可以从链上获取。
2. M 使用 SHA512 将 PoCoverage 进行哈希,哈希值作为一个随机数 R。
3 .M 根据以上数据生成哈希承诺书 K(Proof Kernal) ,K=H(R | |M1 | |M2) 。
4. M 将 K 发展给 M1. M1 回复消息,包含当前时间 T、K,并对此签名。
5 .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 位置证明。
5 交易事务
Helium 链提供 Token 在地址间的转移; 同时提供 DWN 网络操作相关的关键服务。
四川欣欣微笑科技有限公司13608018782
5.1 需要微交易
* 终端设备按数据包付费
Helium 网络提供互联网传输,为此终端设备向矿工付费(不同于现有模式) ,需要按数据 包进行计量。即使双方并未存在任何合同关系,设备也可向矿工收发数据包。
* 所有交易发生在链上
交易存储在链上,定期出块。出块成本要低、块足够大以容纳大量交易、出块间隔要小(交 易速度快) 。
* 允许设备将数据持有化在链上
交易相关数据的指纹可以存储在链上(DWN) ,我们认为传感器数据的防篡改、保证真实 性 会有更多应用场景。
5.2 现有方案的局限性
现存的链上微支付应用到 Helium 网络上有以下不适应之处:
*过重的交易费
考虑这种情况: 多数交易特别小,要支付的服务费远小于支付额。此时,大量微交易的支付 方,相比与价值交换场景,负担相对更多的交易费。类似当今信用卡购物中,低价格商品支 付成本更高; 卖方负担少的信用卡交易费,但承担了更大的风险。现有微支付方法不适用 Helium 网络中大量的微小交易。
*链上交易无成本
虽然设备希望零费用使用区块链,但会造成链上充斥垃圾交易。很容易使用脚本填充垃圾数 据到区块链上,这会浪费空间、阻塞网络。一些公链采用其他方式增加使用成本,如转移验 证工作给上链方。很多其他无成本上链的方式需要集中的协调人,不适合 helium 网络。 *状态通道
状态通道让双方在低风险情况下交换价值,一次交换是很小粒度的增量(链下操作后再操作)。如果一方认为另一方不诚实,可以关闭通道; 通道上链后,顶多一次小粒度支付是有 风险的。然而,这种方式使支付方锁定资产在支付通道中,而资产不能他用; 通道中的交易 不会全部上链; 实现相对复杂。 目前状态通道主要用作支付通道。(Lightning、Raiden 采 用支付通道,还未普及)
*迟后支付
分布式系统中采用事后结算、事后付款是一种高风险行为。没有信任关系或资产抵押时,这 不是一个可行的机制。
5.3 Helium 中的各种费
5.3.1 传输费
终端设备通过 Helium 网络向互联网传输数据,要付给矿工传输费。传输费是对数据包 传送到互联网路由器服务的报酬。区块链相关的挖矿交易不包括在内。费用由路由器和矿工 商定。矿工制定它愿意接收的,传输每字节数据量的价格。终端设备属于路由器,路由器收 到数据后付费。因为传输交易上链,发生在数据传输行为之后; 所以矿工先收到传输费。这 样矿工有以下风险,传输完了并未付款或并未上链。确定结算时最低字节传输量可以限制风 险; 此外,矿工可以使用黑名单限制特定的设备或组织。
5.3.2 交易费
绝大多数区块链使用交易费激励矿工打包、校验交易,以便网络稳定运行、并保证链上 数据的纯净。根据以往的包传输费用 δ 的中值粗略的确定适当的费率水平。包传输链上发 生后,费用使用固定值确定。将交易费锚定到链上是基于现实的原因,Helium 网络的本意 是提高无线覆盖的接入服务,要保证所有参与者的经济可行性。若使用成本高于市场, Helium将丧失它的功能。
为了让矿工和轻客户端能够确定费率,全节点提供了建议的 API; 这样自由有限的节点 不用保存最近交易记录、不用自行计算交易费。块提交后,共识组会检验交易费的偏差(可 接受性) 。
HCP 协议具有抗审查性、并不会对规模大的交易有额外奖励。不像比特币,矿工会从交 易池优先挑选交易费高的交易打包,Helium 网络的矿工是看不到交易内容的(需伙同共识 组矿工解密) 。过高过低交易费的交易,将在出块前被拒绝掉。
5.4 Helium 链的交易指令
* add_hotspot
新增热点需要在链上作为一个交易进行注册。热点添加到现有账户; 账户支付股本金,同时 接受挖矿奖励和热点所得费用。
属性:
热点地址 :加入网络后热点的公钥地址
所有者地址: 所有者的账户地址
签名: 所有者和热点的联合签名
* assert location
位置确定,确定热点位置的地理坐标,需要支付资本金。
属性:
热点地址 :将确定位置的热点地址
Nonce: 自增的计数器
经纬度: 地球经纬度高度: 海拔高度
签名: 热点的签名
* payment
从一个账户到另一个账户的 Token 转移
属性: 双方地址、计数器、数量、发送者的签名
5.5 轻客户端与全节点
如何处理持续增加的区块链大小(存储规模) ?所有交易全部上链,会使全节点特别 大。为此,我们运行区块链节点去掉历史悠久的老区块,只存部分新区块,称为轻客户端; 称为轻客户端“轻客户端”而不是“轻节点” ,是因为他们在对等网上与全节点通信。全节 点保存全量交易记录并验证交易。
那么谁来作为全节点? 有什么激励措施? 路由器是软件应用、一般基于云存储,被要求 来运行全节点。我也会主导运行一些作为全节点的路由器,这样方便开发者对产品和应用的 开发。企业也可自行开发自定的全节点。所有这些路由器组成全节点网络,来支持热点、轻 客户端和钱包的运行。(后来改成 Validator 了)
6 HCP 共识协议
6.1 动机
中本聪共识使用难于计算、易于验证的 POW 算法,遏制女巫攻击。这种主流的共识实 现最主要的缺点就是耗能; 比特币耗能总量比一些小国家都大。鉴于挖矿难度极大,矿工组 成矿池共同挖矿、分享收益,这使得比特币和以太坊丧失了去中心化的优势; 他们前 10% 的矿池垄断着,共识也就集中在少数人手中。共识机制最近有所改进,如 Filecoin 使用时 空证明、以太坊转移到权益证明上。
Helium 的共识须有以下特性:
无许可: 区块链节点自由出入、不许第三方许可,只需遵守共识规则即可。
天然去中心化: 共识过程中,任何资源优势、便宜的电力、硬件的领先等都无法受惠。而 且,联合组成矿池是技术不可能的。
拜占庭容错: 兼顾共识达成效率和公正。
提供社会效用: 达成共识的过程对网络有益并可重用。中本聪共识仅用于出块,并无他用。 目标的共识系统出了保证链的安全外,还提供其他价值。
高吞吐: 交易打包入块即为确认,每秒可处理更多的交易。多数链上共识等待时间过长,而 Helium 中的交易不能等。
交易抗审查: 矿工不能在挖矿前对交易挑三拣四,这不仅杜绝恶意审查,还能让普通交易 (固定费率的交易) 上链。
6.2 HCP
基于覆盖证明协议、结合HoneyBadgerBFT (HBFT)协议,我们提出了一种异步拜占庭容错协议 HCP。
6.2.1 HBFT
HFBT 是可达到最优效率的异步原子广播协议,2016 年提出。它假定网络由 N 个独立 节点组成,对应于 HCP 协议中的共识组 C。共识组以收到的交易为输入,以排序后的交易 序列为输出。获得输出需要取得一致性,并将他们加入区块。
协议执行多轮,每轮产生一批交易(追加到区块链,原文上链,但此时还不少共识的结
果) 。每轮的开始,共识组选择交易的子集,放入自己的缓存,让后输入给随机一致性协 议; 多次选择之后,最后选择的一批交易作为本轮的结果。
HBFT 依赖于门限加密机制,交易使用分段的公钥加密,共识组需要全体成员一起解 密。这意味着,不同谋于多数人,单一节点无法作恶。
6.2.2 覆盖证明的 HBFT
Helium 网络中矿工每周期都提交覆盖证明,作为一种交易记入区块链。提高合格的证 明增加自己的分数。在另一个周期,N 个高分矿工被选举出来作为共识组 C。
使用覆盖证明选举的 C,解决了 HBFT 协议中节点的身份问题。Helium 链无需许可的 意思,也就是我们可以使用覆盖证明确定矿工的诚实性,给最诚实的矿工出块并获得奖励的 机会。
6.2.3 共识组
共识组负责创建区块、追加上链,所有新交易都提交到共识组成员。固定周期内,共识 组创建区块,各共识组成员分享出块奖励 Token,包括块中合法交易的费用(已更改) 。极 端情况下,出块周期内可能生成不含交易的空块。
6.2.4 挖矿过程
共识组成员确定后,启动分布式秘钥生成程序,生成一个门限加密秘钥 TPKE。TPKE 关 联一个公钥 PK,允许任一方交易加密,共识组全体联合才能解密。一旦一定数量(f+1为容 错协议的系数,决定具体数量) 的成员正确计算出他们自己部分的解密内容,交易内容就全 部恢复(拼接式解密) 。TPKE.Setup 函数产生 PK,含有 PK 的块提交到链上,每个成员就 会收到对应的私钥部分(PK 对应的分段的私钥 SKi) 。
7 未来
本文对构造 Helium 网络提供了尽可能详实的说明,但只是一个去中心化无线网设计、研究 和开发的开端。将区块链 Token 与现有网络硬件相结合是一种有价值的创新。我们认为未 来的区块链共识证明,不是比拼算力和电力成本,而是在于提供有价值的可验证的服务。 我们将继续以下工作:
拓展应用到其他物理层,如 WiFi、蓝牙与蜂窝通信,拓展到 5G 传输网,研究更安全的覆盖证明, 激励机制的博弈分析, 覆盖证明分数的形式化证明, WHIP 协议规范, 制造 Helium 网络需要的热点与终端设备, 在 DWN 的命令部署为链上合约, 推动转发纠错技术的发展。
“交易所 官方网站”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与我们联系删除或处理,客服邮箱:bitokx@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
页面加载中...