PoRX:IIoT区块链共识的声誉激励方案
第一章 介绍
介绍:
工业物联网(IIoT)是指工业生产中的各种设备,无论是工厂中的机器设备还是汽车和飞机中的发动机,其上安装传感器并连接到无线网络终端以收集和共享数据。目前,由于IIoT系统是一个开放的、分布式的、异构的系统,在IIoT中实现可信通信是一个巨大的挑战。区块链技术已成为解决工业物联网合作信任问题的新途径。利用区块链,可以构建防篡改系统,作为工业物联网硬件产品从芯片到整个设备的审计工具。
在IIoT中应用区块链技术的主要问题之一是解决共识协议的安全性和效率问题。本文提出了一种信誉机制,以鼓励正常节点和异常节点以良好的方式参与网络协作。为了引导这种行为,提出了一种基于声誉的激励方法。在声誉的收益支付函数中设计了奖惩因子。其有效性在于合作行为得到奖励,而非合作行为受到惩罚。
我们方案的主要优点是,我们基于声誉的激励模块可以在最先进的PoX协议(称为PoRX)上实现,并且可以使PoX协议达到更好的一致状态。因此,它将有利于IIoT与区块链的应用。
工业物联网应用的例子
智能电表能在社区本地运行,如果出现电源故障,这些智能电表可以确定故障范围,通过基于区块链的智能合约技术直接与本地变电站通信,并重新规划输电线路。
工业物联网系统的问题的复述
由于IIoT本身是一个开放系统,因此允许各种设备加入。一些恶意设备和不诚实设备在加入网络后可能会对IIoT系统的共识协议发起攻击,从而可能破坏IIoT的系统[8]。实际上,当前的最先进的共识协议没有考虑如何在共识协议中保证节点行为良好。在IIoT的实际应用中,解决IIoT系统中恶意节点的攻击一直是需要面对的现实问题[9,10]。为了将区块链成功应用于IIoT,构建一个可信、高效的区块链共识协议是一个亟待解决的关键问题。本文针对这些问题,提出了一种激励声誉方案,以激励节点在系统中保持稳定的良好行为。好的行为会得到奖励,坏的行为会受到惩罚。每个节点都有一个具有信誉值的标识。具有较高的信誉价值,会得到更多的合作。虽然声誉价值较低,但很少得到他人的合作。该方案的主要优点是基于声誉的激励模块可以建立在PoX协议的基础上,是一种实用的方法。
缺乏一种奖惩机制
第二章 相关工作
共识协议
PoW:核心思想是通过节点间计算能力的竞争来分配区块记账权。浪费大量电能
PoS:PoS的主要思想是,用户在系统中所占的比例与块生成的难度成反比。系统中节点持有的股份越大,他就越容易获胜。
现有共识协议的问题一——不确定性
几项协商一致的协议都有一个共同的问题,即协商一致的过程是不确定的。缺乏共识确定性导致交易确认延迟,这不适用于大多数需要实时确认的实时IIoT系统
比如说比特币(pow)虽说是平均10分钟出一个块,但有可能1分钟出块,也有可能半小时出块,造成不确定性。
现有共识协议的问题二——面向加密货币的共识协议不适用于物联网
IIoT系统的主要要求是,应根据以IIoT业务为中心的交易验证规则对交易进行验证。
这是一项基本要求,因为IIoT中的每个新事务基本上都独立于以前的事务,环境或事件的变化会影响设备读数的变化。因此,我们应该设计物联网交易的验证规则。
BTC:比特币会把未花费的币维护成一个(未花费的交易输出表)UTXO
例如,在智能家居中,只有当摄像头或任何其他传感器检测到房间中有人时,壁炉才会点亮。这意味着传感器读数是根据环境背景而不是孤立地进行验证的。
现有共识协议的问题三——分叉
共识协议还应具有共识的最终性,以避免出现分歧。此外,Huang[27]提出了一个分析模型来分析共识区块链中的分布式网络分叉概率。
IIOT系统的问题——Sybil攻击
此外,IIoT系统也容易受到物理或网络攻击。最近,一场名为“Mirai”(Sophos裸体安全,2016)[28]的网络攻击感染了大量IIoT设备,包括DVR和CCTV摄像机,并将它们变成僵尸。然后,通过启动数以百万计的DNS查找请求形式的巨大数据流量,这些受损设备用于发起针对DNS服务提供商“DYN”的DDOS攻击。如果使用PoX共识协议,它可以有效抵御此DDOS攻击,但它面临51%的攻击。如果攻击者拥有整个网络一半以上的证明能力,则他可以实施攻击,并且成功的概率非常高。PoX共识协议也应该对Sybil攻击有效。
分布式系统的信誉机制
Gupta等人[29]提出了第一个P2P网络信誉系统。这是一个有效的解决办法。其他研究也对声誉系统做出了贡献,但没有一项是真正的去中心化。
近年来,区块链技术被关注并用于声誉设计。
Tavakolifard[30]对分散多代理系统中的信任和声誉进行了建模。
Yi[31]提出了在比特币上构建不可链接的(Coin Mixing)硬币混合系统的方案。
作者解释说,网络上的声誉与数字货币具有相同的要求:
(1)数字货币可以表示为一个数字变量;
也就是说声誉需要被定量。
(2)其价值由每一参与者商定,不可由第三方操纵。系统记录付款期间的交互反馈,将实际信誉的计算留给第三方应用程序。
BTC的币价一直在波动,没有人可以定义BTC的价格。也就是说信誉也不能被强行定价。
Khaqqi[32]提出了一个基于声誉的交易系统,其中声誉表示参与者对减排努力的表现和承诺。采用多准则分析方法对该方案与传统排污权交易方案模型进行比较。
Schaub等人[33]提出了一种基于区块链的无信任、分散和匿名的电子商务应用声誉系统。系统用Pos链保证声誉系统的共识,同时,它允许客户提交评级和文本审查。
此外,一些学者利用声誉机制改进区块链[34]。Gai Fangyu等人[35]提出了基于声誉证明的共识协议。该协议纯粹基于声誉激励,完全放弃代币激励。我们认为,其协议的激励机制不够完善,放弃代币激励会导致用户参与共识的动机显著降低。
第三章 方法
在共识层上面加了一层激励(声誉)层


输出函数是要满足的目标值,它由经常账户信誉估价师和当前信用度确定。该函数具有当前状态值state和随机nonce值nonce。一旦Hfunction输出小于目标值,则认为矿工获得了该区块记账权。矿工的声誉价值越大,区块产生的概率越大。
实际上就是在原有的难度设置上多加了一层F,原有的可能是H(State,nonce)<D
该函数的设计标准是将当前矿工的帐户信誉值合并到D的难度中。其核心思想是,最大信誉值(上限)可以抵消20%-40%的难度,最小信誉值(下限)可以提高20%-40%的难度,
基于身份的方法
共识中使用了基于身份的方法。身份是IIoT系统中的一个重要属性。我们设计了共识活动的身份识别方法。其逻辑是建立一个全局注册表来存储参与协商一致的节点的标识声明。智能合约的陈述是一个身份所呈现的事实。这些声明由申报人签字,因此可以验证其真实性和完整性。节点调用合约可以在作为验证者参与协商一致之前成功注册。
注册合约
智能合约身份注册。在协商一致协议中,注册身份契约用于协助共识协议的运行。其主要任务是注册参与共识节点的身份,并与真实世界中的身份信息相关联(?)。登记合约应确保申报人账户的有效性、申报的有效性和申报的唯一性。因为只有一个注册合约,所以所有调用方都可以信任它的逻辑并使用它。身份登记合同的具体任务如下。
与真实世界中身份信息相关联不就失去了匿名性吗
有点像联盟链的做法
注册:将帐户注册为矿工。验证后,可获得区块生成权,并将账户存储在全局注册账户列表中,返回注册账户列表。
注销:当用户想要退出共识时,可以取消帐户。注销的帐户被视为无效帐户。它无法参与共识,该帐户将从注册帐户列表中删除。
与BTC、ETH不一样的是,他这里的注册首先需要告知各方,其次也不是匿名
注册时需要确保有一定保证金(用于罚款),注册后账户的声誉设置为初始声誉
注销时需要确保现有状态(什么状态?)是否小于初始值,如果是的话,将声誉设为0定为注销
基于身份的方法具体描述
基于身份的方法包括声誉构建、区块链启动过程、竞争周期、激励机制和协议参数更新规则,具体描述如下。
声誉构建
一个矿工只能有一个账户,这样声誉值的设定才有意义。
区块链启动过程
因为我们的计划涉及部署身份登记合同,这些合同由矿工操作。存在一个矛盾:矿工的注册需要合同,而合同的部署需要矿工。
设置一个零地址。零地址无需注册即可拥有区块记帐权限。当一个新的链(没有矿工,没有合同)需要启动时,开发者或负责人可以先使用零地址作为矿工,将身份注册合同部署到新的链上,然后用户可以正常使用该合同。应该注意的是,所有零地址的目的是处理这些相互矛盾的事情。所有零地址都没有私钥,因此使用此地址挖掘获得的奖励无法撤回。
竞争周期
在本文中,我们提出了一种竞争限制,称为竞争周期,它用C_duration表示。一般来说,竞争周期是现在时间之前一定数量的块。例如,当前块之前的100个块可以视为竞争周期。竞争周期根据系统中注册矿工的数量动态确定。建议使用矿工人数的两倍作为竞争周期的值,主要目的是:
- 计算指定矿工的采矿难度。确保高声誉采矿者不能始终主导区块生产的优先级,并增加低声誉和潜在采矿者的机会。
例如,指数基数为2,竞争周期为100,矿工的声誉值为1200,开采1000号区块。如果900号至999号区块之间没有属于矿工的区块,则矿工的可用声誉值为1200。如果其中一个区块是矿工的,则矿工的可用声誉值为1200/2=600 - 用于计算矿工的声誉奖惩。声誉激励根据预期产生的区块数量计算,预期产生的区块数量将由竞争周期确定。
激励机制
在原始协议中,矿工获得一定数量的代币和交易费,作为成功开采区块的奖励。在与声誉模块的新协议中,奖励还包括声誉奖励。
规则如下:
1.如果注册的节点竞争成功生成块,并且该块最终得到确认,则该节点将收到奖励,包括声誉和令牌。
2.声誉会下降。如果注册节点未能在一定时间内生成块,或未能达到自己生成的预期块数,则将对其进行处罚。
更新协议参数的规则
协议参数包括循环参数和其他参数。周期参数包括竞争周期、奖励周期和惩罚周期。其他参数包括最大预期块生成量、最小预期块生成量、可用声誉衰减基数和声誉难度转换率。
循环参数由矿工人数决定。由于矿工是动态的,因此需要一个更新周期来更新矿工。注意,在我们的模块中,惩罚周期是很难执行(每次区块链上的区块高度达到惩罚期),立即执行奖励周期(每个生成的区块必须按奖励周期进行奖励)。这里我们假设更新周期等于惩罚周期,即在每个惩罚周期之后,调用矿工注册合同以获得当前矿工编号并更新周期参数以进入下一轮惩罚周期。奖励周期和惩罚周期应根据竞争周期设置。如果竞争周期非常大(这是IIoT中的常见场景,系统中有许多矿工),则可以选择竞争周期的一部分作为奖励周期和惩罚周期。相反,如果竞争周期很小(例如在启动阶段),为了避免意外情况,我们可以选择几个竞争周期。
其他参数为静态设置。
为了使PoX共识协议在IIoT中得到广泛应用,必须提高PoX协议的安全性。我们提出了一个信誉模块来解决PoX的安全问题。声誉模块将在下一节中详细介绍。
第四章 实验
在以太坊上进行实验,在docker上运行节点
理想的声誉增长
首先,可以得到最理想条件下矿工的声誉增长曲线,即不包括声誉增长衰减和在一个竞争周期内产生过多区块而导致的声誉惩罚。为了便于观察,所有参数均设置为理想化,竞赛周期设置为0。
理想的声誉增长
正常的声誉增长包括声誉奖励衰减和在一个竞争周期内产生的过多区块造成的声誉惩罚。根据模型参数的不同,声誉增长的性能也不同。为了便于观察,参数设置不同。最大声誉的转换率设置为1。我们建立了三个计算能力相同的矿工。初始信誉值分别设置为500、1000和1500。所有三家矿商都能运营良好,并记录声誉价值的增长和产生区块的比例。为了进行比较,我们首先不考虑过多区块导致的声誉报酬和可用声誉的衰减。

信誉值为1500的节点出块率仍占较大比例,但信誉值增长不明显。因此,信誉值的差距将会缩小,这将导致信誉较低的节点能够参与共识,但大功率节点成功作恶的概率仍然很大。

实验参数设置的很杂,有种为了故意凸显实验设置的。
协议安全性分析
Sybil attack
非匿名:很少有具有POX共识的区块链能够真正抵御此类攻击,因为区块链的账户是完全匿名的,无法识别。我们提议的声誉模块有身份注册合约,只有注册的账户才有资格参与共识活动。合约保证一个人或一个节点只有一个注册帐户。因此,除非攻击者可以贿赂或窃取多人注册的信息,否则声誉模块可以很好地抵御Sybil攻击。
思考:
回到最开始的问题:
分叉:第3个问题通过不匿名解决了。
算法中也没有结合环境背景的设置
不确定性:第一个问题呢?以太坊出块仍然是不确定的。
Normal Reputation Growth并不能减少贫富差距?