区块链研究计划

一、对区块链的初步认识

(一)什么是区块链?

狭义来讲, 区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构, 并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账(Decentralized shared ledger), 能够安全存储简单的、 有先后关系的、 能在系统内验证的数据。 广义的区块链技术则是利用加密链式区块结构来验证与存储数据、 利用分布式节点共识算法来生成和更新数据、 利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化基础架构与分布式计算范式。(参考文献:袁勇, 王飞跃 . 区块链技术发展现状与展望. 自动化学报, 2016, 42(4): 481-494.)

(二)区块结构

每个数据区块一般包含区块头(Header)和区块体(Body)两部分。 区块头封装了当前版本号、 前一区块地址、 当前区块的目标哈希值、 当前区块PoW共识过程的解随机数(Nonce)、 Merkle根(Merkle-root)以及时间戳等信息 。区块体则包括当前区块的交易数量以及经过验证的、 区块创建过程中生成的所有交易记录.。这些记录通过Merkle树的哈希过程生成唯一的Merkle根并记入区块头。(参考文献:袁勇, 王飞跃 . 区块链技术发展现状与展望. 自动化学报, 2016, 42(4): 481-494.)

(三)区块链特性

  1. 去中心化:去中心化既去中心化的分布式结构,整个网络无中心化硬件或机构,没有中心核心系统。
  2. 去信任化:指该系统将以往的“信任人”转化为“信任机器”,既区块链用技术规则加持信用,实现的信任不源于第三方的背书而是所有参与者对共识机制的认同。
  3. 可追溯性:既区块链采用了时间戳技术,给数据增加时间维度,记录交易的先后顺序,使得数据具有可追溯性,便于监管和追踪。
  4. 集体维护性:指系统中的数据有所有具有维护功能的参与节点集体维护,任何人都可以参与,同时任一个节点的过失也不会影响整个系统的运作,保证整个系统稳定运行。
  5. 安全性:首先非对称加密技术对数据进行加密保证数据的安全性;其次,共识算法形成的强大算力来抵御外部攻击保证区块链数据不可篡改和不可伪造;最后,时间戳技术保证数据可追溯和完整性及不可篡改等。
  6. 开放性:区块链是开放的,除了账户和交易各方的私密信息外,区块链的数据对所有人开放。
  7. 匿名性:节点与节点之间无需公开身份,信息传递可以匿名进行,极大保护了用户的隐私。(参考文献:王元地, 李莉粒, 胡谍 . 区块链研究综述[J].中国矿业大学学报(社会科学版),2018(3):74-86.)
  • 区块链的基础架构
  1. 数据层:包含数据区块和相关的非对称加密和时间戳等技术,主要目的是达到数据的去中心化分布式存储、校验区块数据的存在性和完整性、保证数据的可追溯性、及不可篡改性;
  2. 网络层:包括分布式组网机制、数据传播机制和数据验证机制,网络层构建了网络环境、搭建了交易通道、制定了节点奖励;
  3. 共识层:包括网络节点的各类共识算法,主要有工作量证明机制(PoW共识机制),权益证明机制(PoS共识机制)、授权股份证明机制(DPoS共识机制)等,能够在决策权高度分散的去中心化系统中是的各节点高效地针对区块数据的有效性达成共识这是区块链的核心技术之一。
  4. 激励层:激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制,例如比特币的区块链采用了“挖矿”机制,激励参与者不断提供算力来获得奖励
  5. 合约层:主要包括各类脚本、算法和智能合约,是建立在区块链虚拟机上的商业逻辑和算法,是实现区块链系统灵活编程和操作数据的基础。
  6. 应用层:是区块链的各种应用场景和实例,主要包括可编程货币、可编程金融、和可编程社会。(参考文献:王元地, 李莉粒, 胡谍 . 区块链研究综述[J].中国矿业大学学报(社会科学版),2018(3):74-86.)
  • 区块链的应用前景
  1. 金融服务
  2. 教育就业
  3. 供应链管理
  4. 医疗健康
  5. 文化娱乐
  6. 电信行业

(参考文献:王珍珍   ,陈婷  .区块链真的可以颠覆世界吗——内涵、应用场景、改革与挑战[J].中国科技论坛,2018)

  • 区块链面临的问题
  1. 新技术的风险问题
  2. 安全问题
  3. 资源浪费问题
  4. 数据库空间存储问题
  5. 效率问题
  6. 存在中心化现象问题

 (参考文献:王元地, 李莉粒, 胡谍 . 区块链研究综述[J].中国矿业大学学报(社会科学版),2018(3):74-86.)

  • 研究方向

对于区块链底层(数据层、网络层、共识层)安全问题的研究。

区块链的基础架构包括6层,但是但是数据层、网络层、共识层是区块链的必要层,包含了大量的加密算法,网络协议,共识机制等,因此通过对于底层的研究可以更为清晰的理解区块链的运作原理。C++是一种通用程序设计语言,支持多重编程模式(例如面向对象程序设计、泛型程序设计),大多数的区块链的底层开发都用的c++。在大学期间的学习中,对c++的掌握运用比较好,因此可以更好地深入区块链底层研究。对底层的研究需要掌握相关的算法的思想,需要过硬的理解能力,以及思考、分析问题的能力,在大学期间算法分析与设计这门课的学习中积累了算法的学习方法,锻炼了分析问题、解决问题的能力,也有助于对区块链底层的研究。其次,想要了解相区块链关的网络协议,对于计算机网络的学习也是必不可少的,大学期间的计算机网络掌握的比较好,也有助于对区块链底层相关网络协议的理解。

安全性威胁是区块链迄今为止所面临的最重要的问题。

1、其中,基于PoW共识过程的区块链主要面临的是51%攻击问题,既节点通过掌握全网超过51%的算力就有能力成功篡改和伪造区块链数据。为了解决该问题,引用基于PoS共识过程。但基于PoS共识过程同时也引入了区块分叉时的N@S(nothing at stake)攻击问题。研究者进一步提出通过构造同时依赖高算力和高内存的PoW共识算法来部分解决51%攻击问题。

2、区块链的非对称加密机制也将随着数学、密码学和计算技术的发展而变得脆弱。以目前天河二号的算力来说,产生比特币SHA256哈希算法的一个碰撞大约需要248年,但随着量子计算机等新计算技术的发展,未来非对称加密算法具有一定的破解可能性,这也是区块链技术面临的潜在威胁。为了抵抗量子攻击,应该研究能够抵抗量子攻击的密码算法。

3、区块链的隐私保护也存在安全性风险。区块链系统内各节点并非完全匿名,而是通过类似电子邮件地址的地址标识(例如比特币公钥)来实现数据传输。虽然地址标识并未直接与真实世界的人物身份相关联,但区块链数据是完全公开透明的,随着各类反匿名身份甄别技术的发展,实现部分重点目标的定位和识别认识有可能的。应对措施:确保私钥的随机性、使用冷钱包、对钱包进行备份,建立合理的安全机制对秘钥进行保管。当秘钥泄露时,应当对秘钥进行修改。

研究过程:充分阅读相关文献,深入理解每一层的相关的算法、协议等,掌握底层的运作机理。并且学习其在处理安全性问题方面的提出的处理方法,思考自己有没有改进的方法。

在对区块链的底层有了充分了解后,上手编程实现区块链小Demo,在此基础上可以加深对区块链的理解,并继续研究底层的安全性问题。

 

你可能感兴趣的:(区块链研究计划)