深入浅出区块链
陈浩
元界CTO
立即订阅
16618 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 帮你从0到1深入学习区块链技术
免费
第一章 浅说区块链基础 (8讲)
第1讲 | 到底什么才是区块链?
第2讲 | 区块链到底是怎么运行的?
第3讲 | 浅说区块链共识机制
第4讲 | 区块链的应用类型
第5讲 | 如何理解数字货币?它与区块链又是什么样的关系?
第6讲 | 理解区块链之前,先上手体验一把数字货币
第7讲 | 区块链的常见误区
第8讲 | 最主流区块链项目有哪些?
第二章 深入区块链技术 (15讲)
第9讲 | 深入区块链技术(一):技术基础
第10讲 | 深入区块链技术(二):P2P网络
第11讲 | 深入区块链技术(三):共识算法与分布式一致性算法
第12讲 | 深入区块链技术(四):PoW共识
第13讲 | 深入区块链技术(五):PoS共识机制
第14讲 | 深入区块链技术(六):DPoS共识机制
第15讲 | 深入区块链技术(七):哈希与加密算法
第16讲 | 深入区块链技术(八): UTXO与普通账户模型
第17讲 | 去中心化与区块链交易性能
第18讲 | 智能合约与以太坊
第19讲 | 上手搭建一条自己的智能合约
第20讲 | 区块链项目详解:比特股BTS
第21讲 | 引人瞩目的区块链项目:EOS、IOTA、Cardano
第22讲 | 国内区块链项目技术一览
第23讲 | 联盟链和它的困境
第三章 数字货币与数字资产 (5讲)
第24讲 | 比特币专题(一)历史与货币
第25讲 | 比特币专题(二):扩容之争、IFO与链上治理
第26讲 | 数字货币和数字资产
第27讲 | 弄懂数字货币交易平台(一)
第28讲 | 弄懂数字货币交易平台(二)
第四章 区块链与当下互联网 (5讲)
第29讲 | 互联网身份与区块链数字身份
第30讲 | 区块链即服务BaaS
第31讲 | 数字货币钱包服务
第32讲 | 区块链与供应链(一)
第33讲 | 区块链与供应链(二)
第五章 如何从业区块链 (3讲)
第34讲 | 从业区块链需要了解什么?
第35讲 | 搭建你的迷你区块链(设计篇 )
第36讲 | 搭建你的迷你区块链(实践篇)
尾声 (2讲)
尾声篇 | 授人以鱼,不如授人以渔
新书首发 |《区块链第一课:深入浅出技术与应用》
深入浅出区块链
登录|注册

第9讲 | 深入区块链技术(一):技术基础

陈浩 2018-04-13
在“浅说区块链基础”的部分中,我概括介绍了区块链的入门知识以及区块链的应用领域,在“深入区块链技术”部分的第一篇中,我将带你一起总览下区块链的技术概要,本篇提到的所有技术内容,我们都会在后续文章中进行详细的讲解。

区块链的技术定义

简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。
或许以上概念过于抽象,我来举个例子,你就好理解了。
你可以想象有 100 台计算机分布在世界各地,这 100 台机器之间的网络是广域网,并且,这 100 台机器的拥有者相不信任,那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:
节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;
每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;
基于少数服从多数的原则,整体节点维护的数据本身可以客观反映交换历史。
通常我们在分布式系统领域也见到过上述的要求,比如第 2 条就阐述了分布式系统基本要求:一致性要求;基于少数服从多数原则是为了容忍网络分区;区块链就是解决上述问题的技术方案。
我们结合以往讲过的内容,和将要讲的内容,先提炼一下区块链在技术上的 7 个特征,你先记住,我们后续会慢慢道来:
区块链的存储基于分布式数据库;
数据库是区块链的数据载体,区块链是交易的业务逻辑载体;
区块链按时间序列化区块数据,整个网络有一个最终确定状态;
区块链只对添加有效,对其他操作无效;
交易基于非对称加密的公私钥验证;
区块链网络要求拜占庭将军容错;
共识算法能够“解决”双花问题。

区块链的类型

我们在讨论区块链时,通常指的是公有区块链。除此之外,还存在另外一种区块链:联盟链。
我们在前面的文章介绍过它。所谓联盟链,就是这个区块链具有准入许可,不像公链,任何人都可以随时进入。准入许可也就意味着候选节点进入区块链时需要得到已经在网络中的节点许可,所以联盟链也叫做许可链。
早期文章里可能还会涉及私有区块链的定义,其实我认为私有区块链更像是一个捏造的概念,如果是完全私有的分布式数据库,技术人员往往会有更好的选择。
如今云计算日趋成熟,大规模的分布式存储已经不是难题,不必在区块链这种低并发、低吞吐量的系统中折磨自己。
所以我们所说的区块链通常指的是公链。除了公链和联盟链的概念,还有一种区块链概念,叫作侧链。
侧链是一种双向挂钩技术,将主链中的代币锁定到侧链中使用。所以可以将主链看作主干道,侧链看作与主链相对独立的一条分支道,作为主链功能的低耦合拓展。

区块链的核心技术组成

无论是公链还是联盟链,至少需要四个模块组成:P2P 网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《深入浅出区块链》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(20)

  • 泡泡
    陈老师好,有个问题请教下。就是在记账的过程中,分布式节点会更新全网的同一个账本,这个账本随着整个网络交易量的增大会量级倍增,这样的话,对于每个节点而言,需要的存储空间会变大。目前区块链对这块是怎么处理的?有没有其他方法?谢谢!

    作者回复: 以太坊上有状态分片,比特币可以做区块截断。对于普通用户来说,使用spv就可以了,只需要存储区块头信息

    2018-04-14
    7
  • 神盾局局长
    区块链实现主流是什么编程语言?

    作者回复: c++和go两种语言为主

    2018-05-16
    4
  • Ricky
    这篇讲的真的非常好,区块链虽然是新概念,但是所依赖的技术一点也不新:P2P网络协议➕数字加密算法➕数据库存储➕共识机制。

    作者回复: 谢谢呢

    2018-08-18
    2
  • walnut
    我一直有个疑问,如果全世界的应用都在以太网上进行dapp开发?然后每一笔交易有需要同步全网。那单机的硬盘容量够吗?1个T都不够吧?
    2018-06-21
    2
  • Abu
    「初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求 Peer 节点的地址数据以及区块数据。」
    请问新加入的节点是如何找到已经存在的节点的呢?是否这里面还是有一个中心化的节点(比如一个大家都知道的域名、网站等等)保存着整个网络中当前有哪些peer节点呢?

    作者回复: 你好,这个在不同区块链上的策略不一样,但是大约都会hard code一些节点信息(通常是一组,域名加端口),所以即使初次启动,也可以通过DNS解析获得一些常在线的Peer以供初次启动。例如比特币的核心开发者会公布一些他们的常在线节点,其他公链的项目方也会官方维护一些种子节点,这个在我们元界的主网也有做,官方维护百多个节点确保全球流畅同步。
    一旦链上p2p网络,那么就可以从其他peer获得更多的peer地址了。也就是文中的开始请求peer节点的地址数据

    2019-06-15
    1
  • 艾草
    陈老师,你好。关于公链,私链,联盟链对应的共识算法有什么不同,既然区块链是一个提供拜占庭容错的分布式数据库,公链的共识算法包括pbft算法吗?

    作者回复: 有的项目使用了变种,这个没有严格定义的。我倾向于不能包括,至少核心算法不能是pbft,pbft的消息传播复杂度是O(n^2),一个新区块20个节点要传播400次,网络带宽吃不消的。

    2019-02-27
    1
  • 大猫
    陈老师,请问下用Java实现区块链技术,有哪些弊端,目前团队对Java比较熟。

    作者回复: 没有弊端,NXT就是Java的。生态可能没有cxx和go丰富而已。

    2018-06-17
    1
  • 梓航(﹏)
    老师,既然记账是生成区块,那么当比特币发行完以后,就不会有新区块生成了呀,这时候要怎么记账啊?

    作者回复: 一百年以后的事情。。。现在还没想到,也许到时候的价格,交易费都足以支撑旷工挖矿了

    2018-05-25
    1
  • teletime
    DPOS采用21个节点,还是去中心化么?中心化的信任安全性劣势是不是又存在了?

    作者回复: BM特色的去中心化,仁者见仁啦。
    DPOS的核心是投票,属于事后处理,而不是预防

    2018-04-15
    1
  • 不了峰
    「初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求 Peer 节点的地址数据以及区块数据。」
    请问什么事是 Peer 节点。

    作者回复: peer节点就是对等节点的意思,是指网络中其他平等的节点。

    2018-04-14
    1
  • 开发者-亮
    公钥到地址为啥要hash一次呢?不能直接用公钥当地址吗

    作者回复: 为了提高安全性,直接暴露公钥始终存在风险。

    2018-04-14
    1
  • 403
    像最近阿里百度推出的区块链应用,是没有token机制的吗?

    作者回复: 没有。其实就是经典分布式系统的变种。

    2018-04-13
    1
  • 辣么大
    老师,请问能介绍一下PoC(Proof of Concept)的概念么?
    2019-12-10
  • 小老鼠
    区块链用数据库吗?不是都记在block结点上吗?
    2019-12-09
  • 龐校長
    低并发低吞吐量

    作者回复: 从主流区块链来看,是这样的。

    2018-09-30
  • 逆水鱼
    请问,现在有四个局域网,而局域网间尽可进行文件级的数据传输,那么可以利用区块链技术解决传输过程中数据防篡改、安全一致吗?如果能,网络是不通的问题怎么解决区块链共识?如果不能,能说明下原因吗?谢谢

    作者回复: 能,可以参考IPFS协议哦。

    2018-09-05
  • 龐校長
    共识机制,是保证分布一致性。

    区块链的共识机制,则是加入了经济学算法后的结果。

    在区块链领域,多采用 PoW 工作量证明算法、PoS 权益证明算法,以及 DPoS 代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。
    2018-05-20
  • 龐校長
    区块链的核心技术组成
    无论是公链还是联盟链,至少需要四个模块组成:P2P 网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。
    2018-05-20
  • long.mr
    陈老师,加密算法中的 地址 公钥 私钥之间的逻辑是怎样的,我在使用区块链的api时 好像只需要提供一个地址就好了,并不要提供私钥哈~~

    作者回复: 私钥是驻留在钱包本地的,使用钱包需要生成私钥或者导入已经存在的私钥

    2018-05-05
  • 四正
    请问,底层使用nosql数据库时,其本身自带的分布式机制跟区块链的分布式机制有什么关系?另外,是把完整的账本存在一个集中式的nosql数据库集群里吗?那区块链的各个节点不需要存?

    作者回复: 1。算法类似,都必须满足分布式系统的理论要求。实现不同,关键在于是否拜占庭容错
    2。不是,所有节点独立冗余

    2018-04-16
收起评论
20
返回
顶部