区块链相关论文研读1- 关于边缘计算

原文链接: https://zhuanlan.zhihu.com/p/85211534

 

今天跟大家分享一篇关于区块链的技术论文,该论文被发表在顶刊IEEE transactions on parallel and distributed systems(TPDS)中,时间为2019年4月,有一位作者是IEEE的fellow。论文题目为Making Big Data Open in Edges: A Resource-Efficient Blockchain-Based Approach。

这段时间在学习和研究区块链,在大量阅读最新的高质量论文。所以,本人打算写一系列论文阅读总结的文章,提炼出论文中的要点和重点,跟大家分享。今天是第一篇。

论文问题描述:

  • 边缘计算的数据共享时,抵赖/数据篡改
  • 在基于区块链的方案中,边缘节点存在存储空间小/算力差的问题

贡献:

  • Proof of Collaboration (共识)
  • Blockchain transaction filtering/ offloading (减少存储)
  • Express Transaction (new types of blockchain transaction)(加快transaction在节点之间认证和传输的总时间)
  • Hollow Block (减少网络负载)

下面根据上面所提到的四个贡献点一一解释。

贡献点1:Proof-of-Collaboration(PoC)

挖矿公式

  • CC:当前节点所拥有的币数
  • P:当前节点距离上一次成功挖矿的时间
  • target:目标难度值

如果读者熟悉比特币中的工作量证明PoW或者点点币PeerCoin中的PoS算法,就会发现上面的挖矿公式似曾相识。如果把上式中的CC和P去掉,基本就是PoW了,如果P看作是用户的持币时间或者说币龄,基本就是PeerCoin中的PoS了。

上面不等式中对P的约束

因为只有当前节点当P在[L,R]范围之内才能挖矿,所以,通过设置P的范围来调节可以参加挖矿的矿工的比例,从而控制挖矿难度。Θ是一个超参数,人为设置,论文中说通常设置为0.75,通过它来调节挖矿工人的比例。增加Θ,P的可用范围变小,可挖矿的工人比例减少,反之增加。(问题:如果在P大于R之后还没有挖到矿,是不是意味着永远都挖不到了呢?)

暂时不清楚上面中n表示什么意思?它跟上面第二个不等式中的n是同一个吗?为什么?

这个共识算法的优点是:

  • 矿工所耗费的电力资源比使用PoW小很多,具体的对比公式为:

区块链相关论文研读1- 关于边缘计算_第1张图片

其中(5)式子表示PoW计算资源的期望。第(6)式子是本文所提出的PoC计算资源的期望,是前者的(1/(CC*P))倍。

贡献点2:Blockchain transaction filtering/ offloading (减少存储)

这个贡献点所解决的问题是什么呢?在一般的区块链(比如比特币)中存储了所有的交易数据,而老数据在当前的边缘计算的应用场景下是不是特别有用呢?是不是都有必要存储这些老数据呢?特别是在边缘节点存储空间一般是紧缺的的情况下,把区块链中的所有数据存储下来是否划算呢?能不能把旧的“没用”的数据从区块链主链中“卸载”呢?论文针对这个问题提出了一个解决方法。

区块链中的一个交易(Transaction)有多个输入和多个输出,如果一个transaction的所有输出都被其它transaction的输入引用了,那么该transaction就是无用交易(Futile transaction),如果一个block中所有的transaction都是无用交易,那么该block就是无用块(Futile block)。下图中曲线所圈的是取用交易/块。

 

区块链相关论文研读1- 关于边缘计算_第2张图片

对于一个无用交易,在进行交易认证的时候是不会回溯到它的,因此可以把它们从区块链中卸载,保存到利益相关者的云中作为备份。因为此时它们存在的意义只剩下一个了,那就是作为历史记录而存在。

贡献点3:Express Transaction (new types of blockchain transaction)

问题描述:在节点对其它节点发送来的交易数据的操作是,先认证该交易,通过之后再传给其它节点。这两个步骤在时间上是串联的,全网成功认证该交易数据的时间为下面公式所示。1和3表示全网中最长的路径,2表示第i个节点对block的认证时间,4表示第j个节点传输一个块所用的时间。总的时间是网络中最长的链路中所有节点认证时间之和加上transaction在最长链路传输的时间之和。

区块链相关论文研读1- 关于边缘计算_第3张图片

区块链相关论文研读1- 关于边缘计算_第4张图片

为了加快transaction在节点之间认证和传输的总时间,论文提出了express transaction,express可翻译为快递,有快速递送的意思。总体思路为,一个节点收到transaction数据之后,先传给其它节点,再认证。那如何防止作恶者发出无效交易呢?发送transaction之前,先交押金,如果交易有效,随后就退还押金,否则就没收押金。具体流程是什么呢?

区块链相关论文研读1- 关于边缘计算_第5张图片

E-TX(express transaction)的流程:

  1. 如果Alice想发一个ETX,为了管理押金,写一个智能合约,而且该智能合约只响应Alice的交易。
  2. 构建一个ETX,该transaction的第1、2个输出分别为给智能合约的押金和任何给Alice本人的CC。其它输入或者输出由用户自定义。当其它用户收到该ETX时,先转发,再认证。如果该ETX有效,就会被打包进区块,最终存入区块链中。
  3. 最后,Alice发一个普通的transaction,目的是索回押金。所以其输入指向之前ETX的第二个输出,并且设置智能合约作为唯一的输出。
  4. 让智能合约退还押金。
  5. 如果ETX有效,退回押金,否则没收押金。

贡献点4:Hollow Block (减少网络负载)

Hollow可翻译为空心的,空的,Hollow Block解决的问题是什么呢?在一个矿工挖矿成功之后,其它节点所收到的block中的transaction数据与该节点所缓存的transaction数据存在冗余。其它节点本地就缓存了transaction数据,为什么还要把它们打包进区块中再发送过来了?这加大了网络负担。

论文的做法是,不把交易的数据打包进区块,而是每一个交易的hash值,同时把merkle树变成两层的“merkle树”。其根是所有叶子的hash值,叶子节点是所有交易数据的hash值。另一个节点收到区块之后,根据时间戳排序所收到区块叶子节点的hash值,同样计算本地所缓存的transaction的hash并构造一个同样的两层merkle tree,如果两棵树的根节点一样,说明交易数据没问题。如果某些transaction数据没在本地缓存中,从其它节点下载。

都看到这里了,给一个赞呗 ==

 

区块链相关论文研读1- 关于边缘计算_第6张图片

你可能感兴趣的:(区块链,科技前沿,顶会顶刊)