电脑如何挖以太坊币,电脑如何挖pi币

  

     

  

  

1 引用

  

  

  孙h,华s,周e,皮b,孙j,山下K. (2018)在物联网中使用以太坊区块链:电动汽车电池充电的解决方案。陈,王,张立军。(eds)区块链——中国工商银行2018。工商银行2018。计算机科学讲义,第10974卷。查姆施普林格   

  

  

2 摘要

  

  

  物联网技术近年来越来越热门。然而,由于物联网设备资源有限,集中式系统架构、集中式服务器过载、单点故障、恶意使用个人信息等严重问题仍难以解决。区块链技术在加密货币交易领域取得了巨大成功。它具有许多独特的功能,如协商机制、点对点通信、实现无第三方交易和基于智能合约的交易。区块链似乎有助于建立一个分布式和自治的物联网系统来克服上述问题。   

  

  介绍了一种基于以太坊区块链的富瘦客户端物联网解决方案,解决了物联网场景中采用区块链挖掘机制时,物联网设备资源有限的问题。富客户端和瘦客户端都可以提供区块链访问和数据收集功能,而只有拥有更多资源的富客户端才能执行挖掘过程。在此基础上,提出了一种电动汽车换电池充电系统。实验证明了该方案的合理性,并与其他基于区块链的物联网方案进行了比较。我们的结论是,我们的区块链物联网解决方案适用于各种物联网场景,同时避免了物联网设备资源有限带来的问题。   

  

  

3 介绍

  

  

  区块链于2008年由中本聪首次提出,作为比特币的底层数据结构。顾名思义,区块链是一个区块链,其中每个块包含许多事务,这些事务在Merkle树中被散列。通过存储前一个块的哈希值,每个块引用前一个块形成链式结构。图1显示了区块链的典型结构。区块链系统,结合点对点通信、工作证明(PoW)、非对称加密、数字签名等矿工间的共识,可以提供稳定、不可改变的价值转移网络,推动加密货币的蓬勃发展。这个主要用于加密货币的区块链,可以定义为区块链1.0。   

  

  图1区块链的典型结构   

  

  虽然比特币支持脚本定义简单的规则,但是脚本是不完整的。为了让区块链适用于比加密货币更多的场景,以太坊推出了智能合约,可以用图灵的完整编程语言(比如solid)来构建。智能合约是存储在区块链上的可执行代码,它定义了存储什么信息和执行什么交易。理论上,所有基于事务的状态机都可以通过智能合约来构建。图2显示了智能合约的机制。如果一个应用程序仅由一个类似以太网的区块链构建,没有物理交互或其他外部设施,则它被定义为区块链2.0,即基于区块链的经济、市场和金融相关应用程序。随着智能设备的快速发展和无线网络带宽的不断提高,物联网的概念正在被广泛接受和普及。如今,它代表了一个网络,其中智能事物与传感器和天线相连。作为一个高度动态的网络,物联网总是具有可扩展性,允许节点连接和离开网络。事实上,物联网的范式代表了连接设备和异构网络的集合,它也继承了计算机网络的传统安全和隐私问题。然而,与传统计算机不同,物联网设备通常具有有限的资源,例如有限的功率、计算能力和存储空间。这导致基于区块链的传统计算机网络安全方案难以在物联网网络中实施。   

  

  图2智能合约机制   

  

  区块链3.0意味着基于区块链的应用超出了区块链2.0的场景。例如,区块链命名系统、医疗保健系统、物联网系统等。对于基于区块链的物联网系统,除了共识方法、智能合约支持等区块链的相关因素,或者不考虑状态机管理的情况下,还需要考虑物联网的相关因素,如设备的计算能力、内存和网络带宽的约束,设备的安全性等。然而,由于物联网设备资源有限,区块链节点的挖掘过程无法得到很好支持的问题经常出现。介绍了一种基于区块链的物联网系统的富瘦客户端解决方案。   

  

  本文的其余部分组织如下。第三部分介绍了基于区块链的物联网解决方案。在第四部分,我们提出了一个基于以太坊区块链的富客户端和瘦客户端的物联网解决方案,并利用该方案实现了电动汽车的电池充电系统。第四部分还介绍了一个性能实验来证明所提出的解决方案的有效性。在第五部分,我们将基于区块链的物联网解决方案与其他解决方案进行了比较。第六部分提出了结论和下一步工作。   

  

  

4 基于区块链的物联网解决方案

  

  

  物联网指的是物(设备、传感器、执行器等)的互联网。)是有联系的。来自物理世界的数据由传感器收集,并通过互联网传输。物联网系统的用户(或控制单元)可以分析收集的数据,并发现趋势或模式。   

式,或根据数据改变执行器的状态。物联网技术近年来发展迅速。Gartner公司预测,到2020年,将有208亿物联网设备接入互联网。

  

然而,由于物联网设备的计算能力、存储能力和网络带宽有限,以及集中的系统架构,一些严重的问题仍然难以解决。Minhaj和Khaled列举了物联网系统中不同层次的安全问题,如干扰对手、不安全的物理接口、不安全的连接监测、漏洞和虫洞攻击、sybil攻击等。此外,Nir总结了当前物联网系统集中化架构带来的主要挑战:成本和容量约束、架构不足、云服务器停机和服务不可用、易受操作等。

  

Marco等人的提出了一种分层架构,即在底层区块链的基础上构建额外的应用程序,适用于构建物联网系统,例如由Muneeb等人提出的块栈架构。Blockstack是一个全局命名和存储系统,用户可以通过它注册名称-值对。名称-值对是根据特定的私钥生成的,只有私钥的所有者才能对名称-值对执行写操作或更新操作。块堆栈将控制平面与存储平面分开,这使得块堆栈的性能优于Namecoin。此外,作者认为可以在块堆栈的控制平面上构建各种状态机。

  

Ali等人提出了一种基于区块链的智能家居物联网解决方案,并对其提出的解决方案进行了进一步的研究。他们的解决方案的系统架构也是分层的,包括智能家居、覆盖网络和云存储。智能家居包含了家庭中的所有智能设备、本地区块链、智能家居管理器(SHM)和本地存储。覆盖网络连接智能家居和云存储,通过覆盖区块链提供分布式信任。云存储是用来存储来自智能家居的数据,为互联网上的其他服务提供数据。考虑到物联网设备没有足够的资源来支持PoW,作者设计了没有PoW的系统架构。在智能家居中,本地区块链由业主通过SHM集中管理。覆盖网络的节点可以是SHMs等资源相对较高的设备。将节点分组成簇,以减少网络过载,每个簇中的一个节点被选为簇头(CH)。CHs负责评估其他CHs是否值得信任,方法是根据直接和间接证据维持一个信任评级。由于该系统不采用协商一致的机制,允许区块链分岔,因此由CHs维护覆盖区块链。作者得出的结论是,他们提出的架构保留了传统区块链的优点,如隐私性和安全性,同时消除了传统区块链的PoW,以获得更好的性能。

  

Seyoung等人构建了基于以太坊的用电自动调节系统。该系统由Ethereum区块链、智能手机和三个设备组成,分别代表电表、空调和灯泡。由于智能合约可以定义物联网设备的行为,用户可以设置使用智能手机的设备如何工作的策略。例如,用户可以定义一个用电量的阈值,一旦达到这个阈值,空调就会切换到节能模式。作者使用RSA算法提供公钥和签名函数,而不是用Ethereum实现细粒度。

  

综上所述,区块链能够解决的物联网问题主要是由于当前物联网系统的集中化架构所导致的问题。列出了一些问题:

  

·中央服务器故障:故障可能由软件故障或攻击引起。

  

·单点故障:一个损坏的设备可能导致整个系统的故障。

  

·缺乏隐私保护:保存在中央服务器上的个人信息可能被滥用。

  

区块链可以解决上述问题,因为它的分散架构可以防止中央服务器故障或单点故障,而它的公钥-私钥加密可以提供假名,在一定程度上保护个人信息。然而,物联网设备的有限的资源所造成的问题仍然难以解决:一方面,大部分的物联网设备没有足够的资源来支持PoW,另一方面,如果设备不是一个区块链网络的节点,其安全性和身份是很难保证的。

  

此外,我们发现以下因素对构建基于区块链的物联网系统至关重要:

  

·应该使用什么样的底层区块链系统?

  

-应采用什么共识方法?

  

-图灵完全编程是否必要?(是否需要智能合约?)

  

-如何管理状态机?

  

-如何保证隐私和安全?

  

·如何融合区块链进入物联网?

  

-如何实现网络-物理设备交互?

  

-物联网设备需要成为区块链的节点吗?

  

-如何设计系统架构?

  

-如何设计物联网设备和区块链节点的拓扑结构?

  

5 基于Ethereum区块链的Rich-Thin-Clients物联网解决方案

在本节中,我们提出了一种基于Ethereum区块链的富瘦客户端物联网解决方案。我们设计了一种富瘦客户端体系结构,解决了上述物联网设备资源有限与集中式体系结构的矛盾。瘦客户机负责用户交互和物联网数据收集,可以认为是资源受限的物联网设备;富客户机是瘦客户机加上完整的区块链节点,可以认为是资源大于或等于个人计算机的设备。我们使用自己构建的私有以太体区块链网络作为底层区块链系统。这不仅是因为它支持智能合约,我们可以通过智能合约设计不同物联网设备之间、人类用户与设备之间相对复杂的交互,还因为它可以比比特币更快地生成一个新的区块。我们还使用了原始的协商一致方法:PoW,以及原始的加密方法:Ethereum account。

  

5.1 系统架构和拓扑

  

我们设计了一个富瘦客户机体系结构,它不同于分层体系结构,因为富客户机和瘦客户机有一些重叠的功能,而分层体系结构中的层或组件通常执行不同的功能。

  

图3显示了富瘦客户机体系结构。富客户端和瘦客户端都可以为用户提供一个GUI,调用区块链(BC) api通过公元前接口部署在富客户端,定义业务逻辑,收集物联网数据为富客户端(可选),但只有一个富客户端包含一个完整的BC节点可执行公元前的采矿和包含所有交易记录系统。

  

图3 富-瘦客户端架构

  

图4显示了由富客户机和瘦客户机组成的总体体系结构和拓扑。每个富客户机都包含一个功能完备的Ethereum BC节点,该节点可以与其他Ethereum BC节点一起执行挖掘和运行PoW协商算法。富客户机形成P2P网络,就像公共Ethereum BC节点一样。

  

瘦客户端连接到同一富客户机的客户机与富客户机形成星型拓扑。由于只有具有高资源的富客户端才能进行挖掘和协商一致算法,所以我们的网络在性能上应该类似于公共以太网络BC,这样就可以解决物联网设备资源有限与集中式架构的矛盾。

  

图4 整体架构

  

5.2 隐私和安全

  

我们使用Ethereum帐户机制来识别每个客户端并加密交易。我们为每个客户机分配惟一的Ethereum帐户,以便在系统中惟一标识它们。每个客户端都有其惟一的公钥和私钥以及Ethereum帐户。由于这些账户与现实世界中的个人信息没有直接联系,这可能会为用户提供隐私。

  

在物联网系统中,物联网设备(瘦客户机)是最容易受到攻击的部分。如果物联网设备被黑,攻击者可能采取三种操作:

  

1. 窃取在此设备上使用的帐户的属性。不幸的是,这个问题无法通过使用集中式架构或分散式架构来解决。

  

2. 通过该设备入侵其他设备。这种情况在集中系统中可能会导致严重的问题,因为中央服务器可能会通过物联网设备受到攻击,但在分散体系结构中不会发生这种情况。

  

3. 由于只有富客户机才能生成有效的帐户,所以在我们的系统中无法验证伪造的帐户。由于区块链验证机制在生成块时,无效的事务或帐户将被拒绝。

  

此外,即使富客户机被黑,因为它只是区块链网络中的一个节点,其他富客户机也会拒绝它发送的无效请求。

  

5.3 基于以太元的物联网加油系统

  

电动汽车加油。由于电池技术的发展和环保意识的提高,电动汽车技术在过去的几十年里发展迅速。随着电动汽车技术的大规模应用,可以减少温室气体的排放,提高能源利用效率。然而,电池的加油仍然是一个没有很好地解决的问题。电动汽车电池充电主要有三种方式:交流电充电、直流电充电和电池交换。电动汽车车主的车库可采用交流充电。它很方便,但是很费时。用交流电给耗尽的电动汽车电池充一次电需要8个多小时。充电站可提供直流充电。用直流电充满耗尽的电动汽车电池需要12小时。然而,由于直流充电功率大,可能会对电动汽车电池造成危害。换电池是三种电动汽车电池加油方式中最省时的一种。用电池交换站将耗尽的电池更换为充满电的电池只需要几分钟。

  

在实际情况下使用我们之前的基于区块链的电动汽车电池交换系统实际上是一个物联网的场景,因为电池交换站和电动汽车必须连接到互联网上,电池信息的网络-物理交互也必须参与其中。在本节中,我们验证了基于区块链的物联网解决方案是否可以用于电动汽车电池交换场景。

  

电池交换系统的架构。我们基于我们提出的富瘦客户机体系结构实现了电池交换系统。图5显示了系统是如何组成的。

  

图5 电池交换系统架构

  

我们使用Raspberry Pi (RPi)作为瘦客户机的硬件,每个瘦客户机代表一个EV。在每个EV中,使用truffle调用区块链的远程过程调用(RPC)服务,使用本地express服务器控制网络物理交互。我们使用USB盘,它可以连接到RPi来表示真正的电池,每个电池的信息存储在每个对应的USB盘的一个文件中。图6显示了一个典型电池信息文件的静态信息和动态信息。

  

图6 电池信息文件示例

  

一个基站由一个电池交换接口(RPi的工作原理类似于电动车)和一个完整的以太节点组成。我们使用Geth作为命令行接口来运行完整的Ethereum节点,并为调用者提供RPC服务。

  

智能合约。我们实现了三个智能合约来管理电池交换系统的状态机:

  

·“BatteryProcess”智能合约用于操作和存储电池信息。它存储电池的静态信息和动态信息。静态信息是在电池生产完成后确定的,不能更改,例如品牌、生产时间、生产价格等。动态信息用于显示电池的状态,如充电时间、充电状态(SOC)、价格、所有者帐户等。

  

·“BalanceProcess” 智能合约用于管理账户之间的价值转移。考虑到要求每个EV用户都使用以太币是不合理的,我们在系统中定义了一个名为E-coin的令牌作为货币。

  

·“BatteryInterface” 智能合约为三类终端用户提供API接口:车站运营商、电动车用户和超级用户。电动汽车用户可以在自己的电动汽车上充电,并向电池站发送电池更换请求,等待确认。站务员是电瓶站的员工。他们可以充放电和回收属于电池站的电池,他们可以批准或拒绝电动汽车用户发送的电池交换请求。超级帐户是这个电池交换系统的系统管理员,他可以创建其他类型的帐户,授予电子硬币,定义调用智能合同所需的气体,等等。

  

系统流程图。图7显示了系统如何工作。首先,电动汽车有一个耗尽的电池,属于TOY品牌,充电电池分别属于SUM和BYD品牌。然后电动汽车车主进入电池交换系统的GUI,发送一个交换请求,将自己的玩具电池与站点的比亚迪电池进行交换。当站操作员确认交换请求后,存储在区块链中的所有权信息将被更改。然而,此时对应的“真实”电池(USB磁盘)还没有交换,因此网络信息和物理信息之间的不一致被警告。最后,更换了相应的电池后,就没有警告了,可以被正常交换。

  

工作程序主要有三种操作:

  

·初始化。EV和Station分别执行初始化。零售物价指数将读取信息的系统零售物价指数上的所有电池插入USB接口,智能合约将创建一个电池基于静态信息记录每个真正的电池和电池产生一个独特的ID,与此同时,生成的ID将被写入到电池电池信息文件内的USB磁盘。

  

·电池信息一致性检查。每当电动汽车车主或车站操作员进入显示电动汽车或车站电池信息的索引页时,系统将检查USB盘中记录的电池静态信息是否与区块链上的电池静态信息一致。如果发现任何不一致,将弹出一个警告框。当电动汽车所有者提交交换请求,并且站操作员确认请求后,必须更改相应的USB磁盘,以消除不一致。

  

·电池充放电。当用户对电池进行充放电操作时,系统会根据电池ID改变USB盘上记录的动态信息,同时改变区块链上电池的动态信息。

  

5.4 实验

  

为了找到在富瘦客户机体系结构中使用Ethereum的合适方法,我们尝试了三种不同的实现,如图8所示。

  

图8 架构的不同实现

  

为了找到在富瘦客户机体系结构中使用Ethereum的合适方法,我们尝试了三种不同的实现,如图8所示。

  

第一个实现(图8(a))是在Raspberry Pi上部署一个Geth客户机和一个完整的Ethereum节点,该节点用作富客户机,并在Raspberry Pi上开始挖掘。第二种实现(图8(b))是部署Geth客户机,不需要在每个树莓Pi上进行挖掘,而是在PC上部署Geth和一个完整的Ethereum节点,树莓Pi上的Ethereum节点同步来自挖掘节点的数据。第三个实现(图8(c))是只在一个富客户机的PC上部署一个Geth客户机和一个完整的Ethereum节点,富客户机的Raspberry Pi只作为一个电池交换接口工作。

  

第一个实现在开始挖掘后不久就导致了系统崩溃,因为树莓派Pi的资源不能支持挖掘完整的Ethereum节点,所以将其排除在性能比较之外。

  

我们对第二次实施和第三次实施进行了量化比较。实验环境采用ARMv7 1.2 GHz cpu的Raspberry Pi 3B+、1gb RAM和Raspbian OS、Intel 2.0 GHz 64位cpu的PC、66gb RAM和Ubuntu 16.04.2 OS。我们在第2个实现和第3个实现的瘦客户机中监视了Raspberry Pi的CPU和内存使用率。此外,我们将电动汽车的放电时间作为一个指标来显示每个实现的效率。我们通过重复电池交换系统的典型场景进行实验,该场景包括初始化、电动汽车电池放电、电池交换和站充电池等过程。图9显示了在一次实验中CPU、内存和网络使用情况的变化情况,这表明第2个实现明显比第3个实现需要更多的CPU和内存使用。图10显示了10次重复实验的统计结果,表明第三次实现在电动汽车排放过程中所需的资源和时间更少。从结果可以看出,第3个实现的性能优于第2个实现,因此我们在之前提出的解决方案中使用了第3个实现。

  

图9 比较两种不同实现的CPU、内存和网络使用情况

  

图10 两种不同实现之间的性能比较

  

6 基于区块链的物联网解决方案的比较

我们将我们的解决方案与其他基于区块链的物联网解决方案进行了比较。表1显示了一些主要特性的比较结果。由于解决方案的使用场景完全不同,因此本文没有对不同解决方案的性能进行比较。

  

  

表1 基于区块链的物联网解决方案的比较

  

由于我们使用以太坊作为底层区块链系统,我们的解决方案在构造状态机(支持智能合约)的灵活性上超过了使用比特币作为底层区块链系统的解决方案。虽然Blockstack也支持各种状态机,但是没有证据表明它的状态机构造机制比Ethereum的智能合约更方便。Seyoung等人提出的自动用电调节系统,虽然使用了以太坊区块链,但其系统中没有涉及到价值传递机制,因此在解决方案中并没有充分利用以太坊的优势

  

7 结论和未来的工作

本文提出了一种基于Ethereum区块链的物联网解决方案,介绍了一种基于该方案实现的电池交换系统,并通过实验测试了系统的性能指标,并与其他基于区块链的物联网解决方案进行了比较。我们使用Ethereum(一个支持智能合约的区块链系统)来解决传统集中式物联网架构带来的问题。通过采用富瘦客户机体系结构,解决了物联网设备资源有限与集中式体系结构的矛盾。此外,我们的解决方案的使用并不局限于电池交换应用,其他物联网应用,如传感器数据交易系统或其他数字化属性也可能受益于我们提出的架构。

  

在未来的研究中,我们希望建立一个更实用的电池交换系统,与实际的车辆系统,而不是树莓派,并包括多个站点,以模拟实际使用场景。

  

致谢

本文由南京大学软件工程系2016本科生徐光耀翻译转述。

相关文章