APP下载

区块链在集卡物流信息链中的应用与研究

2018-10-20王华

数码设计 2018年7期
关键词:集卡哈希加密

王华

摘要:毫无疑问,区块链技术是当下互联网技术的一个风口,这个创新技术是一个计算机技术上的奇迹。那么,究竟什么是区块链呢?区块链技术除了在数字货币上的应用之外,在其它行业领域,是否也能发挥作用,本文将对此展开初步的探索与研究。

关键字:区块链,互联网,物流

中图分类号:TP309 文献标识码:A 文章编号:1672-9129(2018)07-0131-02

Abstract: There is no doubt that blockchain technology is an outlet for current Internet technology. This innovative technology is a computer technology miracle. So what exactly is a blockchain? In addition to the application of blockchain technology in digital currency, whether it can also play a role in other industry sectors, this article will begin preliminary exploration and research.

Keywords: Blockchain, Internet, Logistics

1 区块链技术的定义

最早伴随着区块链技术一起出现的加密数字货币——比特币中是这样定义区块链的:区块链,就是以比特币或其它加密货币按时间顺序公开地记录交易的数字账本。狭义的来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。

更通俗的说,它是一个公开的数据库,新的数据存储在被称之为区块的容器中,并被添加到一个不可变的链中(因此被称为区块链),之前添加的数据也在该链中。对于比特币或其它加密货币来说,这些数据就是一组组交易,不过,也可以是其它任何类型的数据。

2 区块链技术的特征

2.1 去中心化:由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的。

2.2 开放性:系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,整个系统信息高度透明。

2.3 自治性:区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据。

2.4 信息不可篡改:一旦信息经过验证并添加至区块链,就会永久的存储起来。

2.5 匿名性:由于节点之间的交换遵循固定的算法,其数据交互是无需信任的,因此交易对手无须通过公开身份的方式让对方自己产生信任。

3 区块链技术在集卡物流信息链中的应用

物流行业往往涉及到诸多实体,包括货主、货代、承运人、供应商等等,这些实体之间存在大量复杂的协作和沟通。传统模式下,不同实体各自保存各自的物流信息,严重缺乏透明度,造成了较高的时间成本和金钱成本,而且一旦出现问题难以追查和处理。

通过区块链各方可以获得一个透明可靠的统一信息平台,可以实时查看状态,降低物流成本,追溯物品的生产和运送整个过程,从而提高物流链管理的效率。当发生纠纷时,举证和追查也变得更加清晰和容易。

所以,物流领域是区块链一个很有前景的应用方向。因此,在这篇文章中,我试着用不到50行的python代码构造一个简单的区块链,仅仅作为区块链技术应用在集卡物流链上的一种探索与研究,我把它叫做TruckCoin。

為了确保整个区块链的完整性,每个区块都会有一个自识别的哈希值。如在比特币中,每个区块的哈希是该块的索引、时间戳、数据和前一个区块的哈希值等数据的加密哈希值。这样就有了区块的结构了,不过我们需要创建的是一个区块链,以此需要把区块添加到一个实际的链中。如之前提到过的,每个区块都需要前一个区块的信息。比较特殊的是区块链中的第一个区块,这个区块,也称之为创世区块,在很多情况下,它是手工添加的,或通过独特的逻辑添加的。

我们将创建一个函数来简单地返回一个创世区块解决这个问题。这个区块的索引为 0 ,其包含一些任意的数据值,其“前一哈希值”参数也是任意值。在集卡物流链中,这通常意味着添加了一部新车,因此这个区块的数据,我们暂且简单的就写“添加新车”(当然也可以写入其它更有意义的初始化数据)。

现在我们可以创建创世区块了,我们需要一个函数来生成该区块链中的后继区块。该函数将获取链中的前一个区块作为参数,为要生成的区块创建数据,并用相应的数据返回新的区块。新的区块的哈希值来自于之前的区块,这样每个新的区块都提升了该区块链的完整性。如果我们不这样做,外部参与者就很容易“改变过去”,把我们的链替换为他们的新链了。这个哈希链起到了加密的证明作用,并有助于确保一旦一个区块被添加到链中,就不能被替换或移除。

每一个区块里的内容包括了当前集卡的作业数据、时间戳、索引以及前一个区块链的哈希值,并且会存储这些数据加密后的哈希。

接下来我们创建自己的区块链。在这里,这个区块链是一个简单的 Python 列表。其第一个的元素是我们的创世区块,我们会添加后继区块。因为 TruckCoin 是一个极小的区块链,可以想到,TruckCoin区块链正常工作了。如果想要在主控台查看更多的信息,可以继续修改源代码,比如输出每个区块的时间戳或数据。要使 TruckCoin达到现今的产品级的区块链的高度,还需要添加更多的功能,如服务器层,以在多台机器上跟踪链的改变,并通过工作量证明算法(POW)来限制给定时间周期内可以添加的区块数量(具体的技术细节,可以查看最初的比特币白皮书),但是本文作为区块链技术应用在集卡物流链上的初步探索,并不打算深入研究这些。

4 结论

虽然这个极小的区块链看上去很简单,但是基本的区块链技术原理都已实现,在此基础上,再为其添加服务器层的功能,就可以让它实现分布式存储,甚至更进一步的实现去中心化。而一旦这种大数据级别的成熟的区块链技术得以在集卡物流领域得以应用的话,必将为目前的物流信息链带来极大的改变,实时、透明、高效、互信的物流信息平台必将出现,这也是集卡物流这种传统行业与互联网+技术结合创新后的产业升级之路。

参考文献:

[1]Eric Matthes,Python编程从入门到实践,人民邮电出版社,2016.7

[2]刘长龙,Python高效开发实战,电子工业出版社,2016.10

[3]Mark Lutz,Programming Python,中国电力出版社,2015.1

猜你喜欢

集卡哈希加密
“红蚂蚁”驮起一个“家”
哈希值处理 功能全面更易用
Windows哈希值处理不犯难
文件哈希值处理一条龙
集卡引导系统在轨道吊自动化堆场的应用优化
保护数据按需创建多种加密磁盘
谷歌禁止加密货币应用程序
加密与解密
基于激光扫描测距技术的岸桥下集卡自动定位系统
巧用哈希数值传递文件