摘要:用简单明了的表述叙述出什么是区块链,并且用实际代码表示出区块链挖矿的具体实现方式。后又阐述出区块链的新特性并且概括出区块链在众多领域特别在网络安全和网络管理方面的应用前景。
关键词:去中心化,区块链,网络安全和网络管理
A preliminary study on theapplication of block chain in network management
Chenlu
(Chongqinguniversity of posts and telecommunications)
Abstract:Theblock chain is described in a simple and clear description, and the concreterealization method of block chain mining is expressed in the actual code. Afterthat, the new characteristics of blockchain are expounded and the applicationprospect of blockchain in many fields, especially in network security andnetwork management, is summarized.
Key words:Decentralization, blockchain,network security and network management
0 前 言*
区块链是时下最火最热的话题之一,区块链的核心技术不免引起了我的关注。2017年4月份,我开始了解这个词汇,并且在参加一个大数据比赛时专门做了关于区块链对于金融经济特别是对中国金融经济产生的影响,当时这个技术还很新,具体的实现方式还只能在国外的网站找,对于相关的论文也不是很多。区块链技术本身就是基于去中心化的对等网络,所以这篇报告着重区块链本身的技术和它关于网络管理的具体应用。
1.1 什么是区块链?
区块链,我们可以理解为一种值得信赖的第三方,是一种高速的透明的有效的网络交互设计模式。有一篇文章总计的很精准:区块链技术基于去中心化的对等网络,用开源软件把密码学原理、时序数据和共识机制相结合,来保障分布式数据库中各节点的连贯和持续,使信息能即时验证、可追溯、但难以篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。区块链的这种去中心化的对等网络的实现方式,带来的优点如下图1:
图1 区块链的两大主要优势
去中心化,通俗点来理解就是把基站或者服务器分散到每一台电脑上面,每个都可以作为主机来使用,这样的模式,需要的就是点对点的网络。区块的结构并不复杂,包含了一些字段,整体上看一个区块的结构类似于双向链表中的节点。可以先直观的感受比特币系统中第505156个区块的头信息。这种结构类似于网络管理ASN.1(虽然还是有很多不同)。
图2 区块链第505156个区块的头信息
这些字段相当一部分可以通过字面意思来理解,对于较为重要的字段进行一一列举。
. Number OfTransactions:此区块中所包含的交易数量,网页下方显示了846个交易的详细信息,也称为区块体。
. Difficulty:难度系数,为了控制区块产生的速度,难度系数代表当前区块产生的难度。
. Version:区块链的版本。
. Nonce:工作量,在当前难度系数下计算了1683386125次才生成了此区块。
. Hash:此区块的Hash签名,唯一且不可更改。
. Previous Block:前一个区块的Hash签名,有且只有一个。
. Next Block(s):后一个区块的Hash签名,可以有多个(区块链存在分叉的情况)。
. Merkle Root:默克尔树根,默克尔树是存储交易签名的数据结构,在Git中也有应用。
这些关键字段的正确维护是区块链实现的基础,也是区块链去中心化,解决双花和拜占庭将军问题的基本结构。有了关键的数据结构,还需要相辅相成的规则和算法才能运行起来。理清楚整个流程之后再回过头看区块结构就能一目了然了。
图3 区块链的区块内部及链接结构
可以看出,一个区块本身包括先前散列值、随机数和merkle根三块部分。关于这三部分,前面两个不过多阐述,merkle根指的是merkle树这种数据结构的根节点,这种树的结构可以是二叉树或者多叉树,它有个特点是叶子节点的是为该叶子节点的数据值或者数据值的hash,非叶子节点(兄弟节点)的值是其子节点的值的hash值。这里的markle根,在区块的头部,连接着后面的区块体。通过观察区块结构可以得出结论:
一个区块写入后Hash唯一且不可更改,除非把整个区块链中所有区块的Hash,Previous Block,Next Block(s)全部做相应更改。一个区块的内容更改后Hash随之更改。
1.2 区块链1.8.1版本挖矿实例
具体的操作步骤如下:
一、安装go-ethereum客户端:
图4 安装go-ethereum客户端
二、初始化:
新建文件genesis.json,内容:
图5 genesis.json内容
在终端使用以下命令进行初始化:
三、启动私链:
下面的命令将把日志输入到eth_output.log,并开启Geth javascriptconsole(后面简称web3 console)
参数 |
参数说明 |
Datadir |
设置当前区块链网络数据存放的位置 |
Console |
启动命令行模式,可以在geth里执行命令 |
Nodiscover |
关闭p2p网络的自动发现,不会被网上看到 |
Networkid |
网络标识,私有链取一个大于4的随意的值 |
四、新建帐户
下面的命令不做特殊说明,都是在web3 console里输入,可以用下面命令查看已有帐户:
创建帐户,下面123456是密码,执行2次,建立两个帐户用于后面的转帐:
会在datadir(当前文中为./chain)里生成keystore,每个帐户一个文件,内容示例如下:
图6 账户文件
五、挖矿
使用的命令查看coinbase的账户地址:
设置coinbase:
开始挖矿,默认使用第1个帐户挖矿:
这样的操作,就是大致的操作步骤,除此之外,还能进行停止挖矿,两用户之间转账等等操作(完全就是实现了比特币的操作过程)。更让我惊讶的是,还能使用JavaScript脚本来编写代码,虽然不能支持ES5之后的新特性,但是真的是很神奇了!
由于区块链的透明传输和只能按照时间轴读取和写入,不能修改和删除,在应用层面,区块链的安全、透明、高效3大优势,使其特别有助于规范互联网金融的发展,以及促进物联网和共享经济的普及与创新;在资本市场,采用分布式数据库和智能合约还可以大幅减少人工核对工作,为金融机构节省成本。目前,不管是区块链1.0还是2.0或者其他的版本,区块链的应用场景都十分广泛,有包括金融,网络安全,选举等等数十上百个行业的应用,区块链能为这些应用提供安全高效透明的传输方式和安全保障。而每一个应用,对应的都是基于区块链的独特网络管理的系统。虽说区块链本身的特殊的网络交互方式,已经称得上是一种良好的网络管理的方式,而且它的其他应用,也是利用了这一特点,但是其实反过来,利用区块链的思想,也能实现一种新型网络管理方式,这种在点对点的网络传输的基础上,将主机分散化的思想、将数据传输利用hash等数据加密的方式、以及每个区块的特殊的数据结构,可以构成以后一种新的网络管理的方式------去中心化的网络管理方式。
区块链技术在网络安全领域,影响也是相当巨大的。区块链技术融合了分布式架构、P2P网络协议、加密算法、数据验证、共识算法、身份认证、智能合约等技术,利用基于时间顺序的区块形成链进行数据存储,利用共识机制实现各节点之间数据的一致性,利用密码学体制保证数据的存储和传输安全,利用自动化的脚本建立智能合约而实现交易的自动判断和处理,解决了中心化模式存在的安全性低、可靠性差、成本高等问题。而除了这些特点,它本身的安全特性让人更多的关注使用区块链来提升网络的安全。区块链技术可以在管理和保护用户认证数据、提高网络数据安全、有效阻止DDoS攻击以及增强物联网安全等领域发挥作用。管理和保护用户认证数据:美国麻省理工大学推出的虚拟货币CertCoin最先采用了基于区块链的公钥基础设施,摒弃传统中心认证方式,采用公共密钥实现分布式节点之间的互相认证,从而防止网络单点故障。乌克兰公司Ukroboronprom与网络安全公司REMME合作,通过在区块链上管理用户认证相关数据,几乎完全阻断了黑客使用虚假认证消息获取用户身份的可能。提高网络数据安全性:全球最大规模的区块链公司Guardtime通过分布节点之间协商来提供区块链上数据的机密性和完整性,实现了爱沙尼亚100万份用户医疗数据的安全性保证。美国国防部高级研究计划局DARPA也开始采用该方式为军方敏感性数据提供安全保护。有效阻止DDoS攻击:区块链初创公司Nebulis目前正在开发基于区块链的分布式互联网域名系统,只允许授权用户来管理域名,其他公司诸如Blockstack和MaidSafe也开始使用分布式Web技术,替代原有第三方管理Web服务器和数据库的模式,从而阻止网络 DDoS攻击。增强物联网安全:通过智能合约模式,区块链一方面可以利用 P2P 网络中的网络设备节点对待接入设备进行鉴权;另一方面可以有效抵挡物联网DDoS攻击。在2016年爆发的Mirai僵尸网络DDos攻击事件中,大规模的物联网设备被入侵,致使大半美国网络瘫痪。在区块链系统中,当某个节点被入侵时,其他设备会检测到该设备异常,并且将其列为异常和不信任节点,从而将其排除。
不过到现在为止,从我知道区块链之后,虽然又发展了一年的,但是由于技术还尚未成熟,肯定还是存在很多潜在的漏洞,所以暂时还是在网络安全和网络管理方面进展不多,最多的就是提出这种方式,真正实践起来还有一段时间,目前就区块链1的版本在比特币上面真正使用起来较多。不过我相信,有着这样一种传输数据的模式和这种新型的数据结构,很快的区块链将在银行业、汽车、预测等等很多领域得到应用并且快速发展。
协作通信技术利用单天线终端相互共享天线可以虚拟MIMO结构,这为MIMO实用化提供了新的思路。本文以文献[1]设计的TDS-CC系统为基础,构造了虚拟MIMO系统,并对该系统在不同条件下进行了仿真分析,结果说明其在性能方面的优越性和良好应用前景。