区块链中的基本概念整理

  区块链本身是由多种技术集合而成,涉及了多方面的内容,而在其组合应用的过程中,同时也产生了很多新的概念。对于这些概念的整理和理解,有助于更加深刻的理解区块链的本质,也可以指导我们如何去伪存真,更好的发挥区块链的价值。

  ***这份材料需要并且会一直更新,将自己所了解的问题以及已有的解决方案进行整理。***

 底层技术

  根据所承担功能的不同,区块链可以划分为数据层、网络层、安全层、共识层、应用层,有时还会加上激励层。每一层都会对应不同的技术,包括分布式存储、网络通信、密码学、网络安全、共识机制、智能合约、经济模型等。

分布式存储

  分布式存储指的是区块链底层存储数据的工作,包括区块的存储、k-v数据库等。区块一般会以文件的形式存在文件系统上,数据通过k-v数据库来进行管理,比特币、以太坊等使用leveldb,fabric可选leveldb以及couchdb,相对而言,couchdb能够支持更为复杂的富查询,使用更加方便。

网络通信

  网络通信用来完成网络中交易转发、区块确认以及各节点之间的数据同步,通常采用p2p的方式,各个节点是对等的。fabric中使用Gossip。

密码学

  密码学是区块链用到的重要技术之一。最开始,比特币更多是对椭圆曲线公钥密码算法、Ripemd和SHA2数据摘要算法的应用。生成用户公私钥、地址用来标示用户在链上的唯一性,保证用户资产只能有用户使用;计算交易hash、区块hash,保证每笔交易、每个区块的唯一性...随着区块链的发展,链上隐私保护成为关注的热点,对称加密、密钥协商、新型密码学技术如环签名、同态加密、零知识证明等开始被广泛应用在隐私保护方案中,保护用户隐私数据。

底层平台 非对称算法 哈希算法
比特币 secp256k1 Ripemd、SHA2-256
以太坊 secp256k1 Keccak256、SHA3
Fabric ECDSAP256 SHA256、SHA384
CITA secp256k1 Keccak256、SHA3

网络安全

  网络安全是一个更大层面的内容。包括隐私保护、智能合约安全、甚至协议安全、系统安全等。现阶段,区块链网络安全方面存在诸多问题,隐私保护方案需要进一步完善,能够支持在被节点验证的情况下保护使用者隐私,如引入零知识证明、同态加密、私有账本等各种新兴密码学技术或者解决方案;智能合约的安全性也存在诸多问题,包括基本的代码漏洞等,现在已有诸多创业公司(PeckSheild、链安等)致力于提高智能合约安全性,推出智能合约安全监测工具;协议安全是指区块链协议本身是否安全,有无理论上的漏洞或者安全性问题;系统安全指的是一个区块链系统在建设过程中可能存在的问题,如代码实现、系统运行过程中的问题。

共识机制

  共识机制是区块链中最核心的内容,是保证区块链去中心、去信任特性的关键。常见的共识机制有工作量证明(POW)、权益证明(POS)、拜占庭容错(PBFT)、简化版拜占庭容错(RAFT)等,容错能力依次降低。

  POW可以容纳一半以下算力时任何错误的发生,但是对资源消耗高,共识时间慢,常用于比特币、以太坊等初期公链项目中;

  POS可以容纳一半以下权益时任何错误的发生,减少资源消耗,效率提高,但是权益越高权力越大,最终会向集中式发展,EOS项目使用,以太坊也正在逐渐转向POS;

  PBFT是联盟链普遍使用的共识算法,可以容纳约三分之一的错误(3f+1个节点时,容纳f个节点出错),效率相对更高,但是节点数量受限,规模不能过大;

  RAFT不能容纳拜占庭错误,基于联盟链参与方之间已有一定的信任基础,常用于联盟链中。

智能合约

  本质上看,智能合约就是在链上执行的业务逻辑。智能合约的概念在95时就已经由尼克萨博(Nick Szabo)提出,但是一直没有合适的执行环境。直到区块链出现,为智能合约提供了一个理想的运行环境。

  由于不同平台实现的语言不一样,支持的虚拟机不同,因此智能合约的实现语言也不一致。

  以太坊使用solidity,fabric可以使用go、java等。

经济模型

  经济模块是区块链中的重要部分,是保证整个系统成功、稳定、安全运行的重要基础,尤其是公链以及分布式应用。良好的经济模块可以促使各方都按照系统所设定的正常规则执行,提高作恶的难度,降低作恶的发生,同时奖励诚实的工作者,让系统朝着好的一方面发展。

posted on 2019-02-13 15:45 Faquir 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/Faquir/p/10296554.html

区块链中的基本概念整理相关推荐

  1. 吴军:AI应该变成通识教育,区块链不是炒概念

    来源:大数据文摘 作者:魏子敏.龙牧雪 本文共4100字,建议阅读6分钟. 本文为你分享吴军老师对AI相关话题的思考和见地. 2006年,当时的谷歌成立还不足10年.时任智能搜索部科学家的吴军,将其在 ...

  2. 吴军北京来信:人工智能应该变成通识教育,区块链不是炒概念

    大数据文摘作品 作者:魏子敏.龙牧雪 就像今天在每一所理工院校的图书馆,都能找到几台正在播放吴恩达深度学习课程的电脑,10年前,在每一栋理工院校的宿舍楼里,都能看到几本被放在枕边的<数学之美&g ...

  3. 百度超级链沙龙回顾 | IBM郭剑南:如何在区块链中使用数据库

    10月19日,百度超级链与金色财经在北京联合主办"区块链与数据库的融合碰撞"技术沙龙,IBM.众享比特.conflux.covenantSQL等行业内合作伙伴,共聚一堂,对各自在公 ...

  4. 区块链100讲:区块链中的随机数

    2019独角兽企业重金招聘Python工程师标准>>> 我们生活的环境充满了随机性.一直以来,运气,概率和命运这些概念都与随机性紧紧联系在一起.所有人类无法理解或无法预测的事物往往都 ...

  5. rsa签名算法实现_国密算法在链化未来区块链中的运用

    密码学是区块链的基础,区块链中大量采用了密码学算法,包括对称加密,非对称加密,单向散列算法,数字签名等技术. 为了实现密码学技术的自主可控,中国也定义了自己的国密标准,2020年央行颁布的<金融 ...

  6. 区块链中的密码学,使用ABE结合区块链

    ABE 密码学,以及与区块链结合的价值 背景 区块链技术具备篡改难度高.使用成本低.分布式的优点,本应成为各行各业的重要助力.但是由于链上参与方担心自己的核心数据外泄,不愿将自己的核心数据上链,这个原 ...

  7. 密码学 区块链中的应用专栏 【简介】

    密码学 & 区块链中的应用 By Blake chen ​ 专栏内容总览(Mindmap) ​ 目录及其组织结构 1 密码学 1.1 什么是密码学 1.2 密码学的发展阶段和简史 1.3 古典 ...

  8. sdk版本过低怎么办_区块链中的“块”是什么?区块链网络拥堵怎么办?-Gemini双子新约...

    区块链中的"块"是什么? 比特币是基于区块链的,这一点大家都知道.但是这个区块链是什么呢?更准确地说,区块链的各个组成部分是什么呢? 区块链是一个数据块.每个块可以看作是分类帐中的 ...

  9. 微软、苹果、谷歌、三星……这些区块链中的科技巨头原来已经做了这么多事!...

    作者 | Gareth Jenkinson 译者 | 火火酱 责编 | 徐威龙 出品 | 区块链大本营(blockchain_camp) 在过去几年中,全球最大的几家科技公司一直在共同努力,研究和集成 ...

最新文章

  1. java的startswith_java startsWith和endsWith的用法 | 学步园
  2. 三维重建面试0:*SLAM滤波方法的串联综述
  3. 实践案例丨GaussDB网络重传/丢包问题定位总结
  4. 通过命令行杀死某个进程或端口号
  5. mysql优化连接数防止访问量过高的方法
  6. “独裁者”Google:开发者别无他选!| 极客头条
  7. Flask 框架 是 Python 中最流行的 Web 框架之一
  8. toad库进行分箱操作
  9. 用eclipse创建Java项目(以一个初学者的角度全面教学)
  10. 基于LED或红外激光的可见光音频系统
  11. UWB定位系统在工厂中的重要作用
  12. 免费PDF拆分与合并工具
  13. U3D Distortion
  14. FEC【筷云早报】 2020年7月29日星期三
  15. 解决chrome浏览器手机调试模式下鼠标指针消失(量化范围设置无效情况)
  16. 怎样在word中画横线
  17. 你的格局决定你的结局(胜读十年书)
  18. 强哥的分享--如何使用Spring Boot做一个邮件系统
  19. java毕业设计的自助旅游导航系统mybatis+源码+调试部署+系统+数据库+lw
  20. 人工智能-线性代数之矩阵篇

热门文章

  1. jQuery中的slideUp()、slideDown()、hide()、show()
  2. 移植fatfs上电复位前两次不能正确打开文件解决方法
  3. matlab中fill函数的使用方法
  4. 计算机原理解读图,详细讲解仪器仪表测试系统,结构原理图拿走不谢
  5. mybatis返回map操作
  6. 【DP】[ZJOI2008][HYSBZ/BZOJ1037]生日聚会Party
  7. .NET字符串操作类StringHelper (C#版)
  8. UA MATH566 统计理论 QE练习题2.1
  9. CentOS 5 安装as86汇编器
  10. EasyUI datagrid控件的基本使用