区块链_什么是区块链!区块链是做什么的?我们能用区块链做什么? - CSDN
区块链 订阅
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。2019年1月10日,国家互联网信息办公室发布《区块链信息服务管理规定》 [1]  。2019年10月24日,在中央政治局第十八次集体学习时,习近平总书记强调,“把区块链作为核心技术自主创新的重要突破口”“加快推动区块链技术和产业创新发展”。“区块链”已走进大众视野,成为社会的关注焦点。2019年12月2日,该词入选《咬文嚼字》2019年十大流行语。 [2] 展开全文
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。2019年1月10日,国家互联网信息办公室发布《区块链信息服务管理规定》 [1]  。2019年10月24日,在中央政治局第十八次集体学习时,习近平总书记强调,“把区块链作为核心技术自主创新的重要突破口”“加快推动区块链技术和产业创新发展”。“区块链”已走进大众视野,成为社会的关注焦点。2019年12月2日,该词入选《咬文嚼字》2019年十大流行语。 [2]
信息
外文名
Blockchain
领    域
金融,物联网,保险,公益领域等
特    点
数字资产的另外一种权益
类    型
公有链,联合链,私有链等
中文名
区块链
目    的
用于验证其信息的有效性(防伪)
诞生时间
2008年 [3]
区块链起源
区块链起源于比特币,2008年11月1日,一位自称中本聪(Satoshi Nakamoto)的人发表了《比特币:一种点对点的电子现金系统》一文 [4]  ,阐述了基于P2P网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。两个月后理论步入实践,2009年1月3日第一个序号为0的创世区块诞生。几天后2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着区块链的诞生 [5]  。近年来,世界对比特币的态度起起落落,但作为比特币底层技术之一的区块链技术日益受到重视。在比特币形成过程中,区块是一个一个的存储单元,记录了一定时间内各个区块节点全部的交流信息。各个区块之间通过随机散列(也称哈希算法)实现链接,后一个区块包含前一个区块的哈希值,随着信息交流的扩大,一个区块与一个区块相继接续,形成的结果就叫区块链 [6]  。
收起全文
  • 区块链技术原理精讲

    2019-12-16 15:40:05
    针对区块链技术原理做详细介绍. 按照比特币,以太坊,联盟链+Fabric的演进历程,依次详细介绍每一代区块链所使用的核心技术,对应的主要部分的结构原理分析,以及相应共识的工作原理.并针对常听到的一些区块链基本问题做...
  • 区块链技术通俗讲解

    2020-03-11 14:35:30
    大多数区块链书籍或者教程都是将区块链中的技术特点独立来讲,比如加密、p2p、共识、分布式存储等,这些技术并不少全新的技术, 区块链之所以新,是因为对这些老技术的完美融合,如何形成闭环才是真正的区块链...
  • 区块链价值、区块链应用场景、区块链从何而来、比特币是什么、比特币运行原理、什么是以太坊、什么是EOS
  • 区块链应用案例

    2019-07-18 11:06:55
    区块链已火遍全球,很多人都想要能够清晰的了解什么是区块链以及区块链的价值在哪里,本课程将从入门开始,为你讲解区块链技术核心概念与原理以及能够做些什么,对我们能够产生什么影响。
  • 区块链简介

    2017-11-17 17:07:16
    本文从概念、发展历史、特点、结构、应用等5个方面简单介绍了区块链

    区块链简介

    区块链(blockchain)作为比特币的底层技术受到了越来越多的关注,其去中心化的分布式数据库存储结构有着广阔的应用场景。本文从一下五个方面介绍一下区块链技术:

    1. 区块链的概念
    2. 区块链的发展历史
    3. 区块链的特点
    4. 区块链的结构
    5. 区块链的应用

    1. 区块链的概念

    狭义上讲,区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学的方式保证其不可篡改、不可伪造的去中心化共享总账(Decentralized Shared Ledger),能够安全存储简单的、有先后关系、 能在系统内验证的数据。[1]

    简单的讲,区块链就是一个去中心化的分布式数据库,分布式环境中的每一个节点都不能保证可信。数据库中存储的是以时间先后顺序排列的数据区块,每一个区块中保存的是若干条交易记录,运用密码学的方法生成区块以保证其中数据不可篡改、不可伪造、可以验证;以共识算法使全网所有节点(理论上是所有节点)完成对区块的认可。

    广义上讲,区块链技术是利用加密链式区块结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化基础架构和分布式计算范式。[2]

    2. 区块链的发展历史

    区块链技术脱胎于比特币,在中本聪2008年发表的《比特币:一种点对点的电子现金系统中》一文中,区块(Block)和链(Chain)作为比特币系统的核心技术被提出来。区块链发展至今可分为3个阶段[3]:

    第一阶段:区块链1.0 —— 数字货币
    最具有代表意义的就是比特币了,其以区块链作为底层技术,是区块俩最初始的应用。
    第二阶段:区块链2.0 —— 数字资产和智能合约
    代表产品有2014年7月的Ethereum(以太坊),其将智能合约理念推进到了极致,还有2015年3月的Factom(公正通)以及国内的太一系统等。
    第三阶段:区块链3.0 —— DAO、DAC → 区块链大社会
    DAO、DAC指区块链自治组织、区块链自治公司。这一阶段是区块链技术广泛应用于人们生活和生产的各个方面,区块链被人们广泛接受,比如区块链应用于能源互联网的能源区块链,区块链应用于医疗事业的医疗区块链等等

    3. 区块链的特点

    1. 去中心化

    区块链是一种分布式数据存储结构,没有中心节点,所有节点都保存全部的相同的区块信息,完全实现去中心化。对于特殊的应用场景,可以适当地采用弱中心化的管理节点,即中心节点不影响整个区块链结构的运行,比如弱中心化的监管机制;若从安全角度来说,弱中心化结构中的中心节点要满足对于区块链的安全不构成威胁,对用户隐私不构成威胁等。

    2. 不可篡改性

    一方面,区块链中存储的交易信息每一条都有相对应的Hash值,由每一条记录的Hash值作为叶子节点生成二叉Merkle树,Merkle树的根节点(Hash值)保存在本区块的块头部分,区块头部除了当前区块的Merkle树的根节点,还要保存时间戳以及前一个区块的标识符(Hash指针)形成一条链式结构。因此,要想篡改区块链中的一条记录,不仅要修改本区块的Hash值,还要修改后续所有区块的Hash值,或者生成一条新的区块链结构,使得新的链比原来的链更长。实际上,这是很难实现的。一般,一个区块后面有6个新的区块生成时,即可认为该区块不可篡改,可以将该区块加入到区块链的结构中了。

    3. 不可伪造性

    区块链保存的交易数据中不仅含有Hash值,还有交易双方的签名以及验证方的签名。签名具有不可伪造性,因此具有不可伪造性。

    4. 可验证性

    可验证性指的是数据来源的可验证。每一笔交易中电子货币的产生和输入、输出都是可以验证的。区块链结构中不会凭空增加电子货币。以比特币为例,每一笔交易的输入都是前一笔交易的输出,每一笔交易的输出又是下一笔交易的输入,即交易的可追溯性。除了来源的可验证外,还有交易金额的可验证,即验证金额的正确性,确保交易过程中的每一笔资金都是可靠的。目前,为了保证用户的隐私,很多电子货币通过混币、环签名、零知识证明等技术在数据可验证的情况下,尽可能地切断金额的可追溯性。

    5. 匿名性

    区块链中的匿名性实际上是一种伪匿名性。区块链中使用假名技术来切断账号和真实身份的联系。比如,对用户公钥进行一系列的Hash运算,得到的固定长度的Hash值作为对应的电子账号。实际上,随着使用次数的增加,通过数据分析可以分析出账号的很多交易行为,比如经常和那些账号做交易,交易金额多少等,甚至可以和现实中的真实身份相联系。

    4. 区块链的结构

    (1) 层次结构

    比特币系统将区块链分成6层结构:数据层、网络层、共识层、合约层、激励层、应用层。其架构图如下:

    区块链6层架构图

    文献[4] 中将区块链分成3层:网络层、交易层、应用层。架构图如下:

    区块链3层架构图

    文献[5] 中的北航链将区块链分成6层:存储层、基础区块链层、缓存层、API层、链上代码层、应用层。其架构图如下:

    区块链6层架构图

    (2) 数据结构

    区块链中的数据结构根据不同的应用会有所不同,但基本上都是由区块头(块头)和区块体(块身)组成。区块体保存的是若干条记录以及由每条记录的Hash值构成的二叉Merkle树。区块头一般包括版本号、前一区块的Hash值(Hash指针)、随机数、目标Hash(本区块的Hash值)、Merkle根,有时还会有用于PoW的计算困难门限值Difficulty等。根据不同的应用,块头和块身的数据项也会有所不同。根据需求,可以建立单链结果,还可以建立双链结构。下面是一个单链结构的简单的区块数据结构图[3]:

    数据结构

    5. 区块链的应用

    区块链由于其结构特点有着广阔的应用前景。最早,区块链作为比特币的核心技术被提出来。随着区块链的发展,尤其是与智能合约的结合,区块链技术的应用早已不再仅仅局限于数字货币等金融领域。
    区块链除了应用于金融领域(如Bitcoin, Monero, Zcash)外,还可以应用于能源互联网(能源区块链)、医疗事业(医疗区块链)、学术界学术记录、供应链管理、共享单车、云存储等。

    参考文献

    [1] 袁勇, 王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, 42(4):481-494.
    [2] Beck R, Czepluch J S, Lollike N, et al. BLOCKCHAIN – THE GATEWAY TO TRUST-FREE CRYPTOGRAPHIC TRANSACTIONS[C]// Twenty-Fourth European Conference on Information Systems. 2016.
    [3] 朱建明, 付永贵. 区块链应用研究进展[J]. 科技导报, 2017, 35(13):70-76.
    [4] 祝烈煌,高峰,沈蒙,李艳东,郑宝昆,毛洪亮,吴震.区块链隐私保护研究综述[J/OL].计算机研究与发展,2017,(10):.
    [5] 蔡维德,郁莲,王荣,刘娜,邓恩艳.基于区块链的应用系统开发方法研究.软件学报,2017,28(6):1474-1487.

    展开全文
  • 摘要我在区块链学习的上一篇博文,链接:区块链学习——区块链技术理念与工作流程中,简单介绍了区块链的技术理念以及工作流程,本文我将继续介绍区块链技术栈。我们知道,区块链本身只是一个数据的记录格式,就像们...

    摘要

    我在区块链学习的上一篇博文,链接:区块链学习——区块链技术理念与工作流程中,简单介绍了区块链的技术理念以及工作流程,本文我将继续介绍区块链技术栈。

    我们知道,区块链本身只是一个数据的记录格式,就像们平时使用Excel表格、Word文档一样,按照一定的格式将我们的数据存储在电脑上。与传统记录不同的是,区块链将产生的数据按照一定的时间间隔,分成一个个的数据块记录,然后再根据数据块的先后关系串联起来,也就是所谓的区块链了。按照这种规则,沿着时间线不断增加新的区块,记录下发生的每一笔操作。

    这种数据记录的方式很新颖,在这种记录方式下,数据很难被篡改或者删除,有朋友可能会说,这有什么不好修改或者删除的,比如我在电脑上保存的Excel数据,再怎么复杂我也能修改啊!如果区块链的数据格式只是应用在单机环境或者一个中心化的服务器上,那确实是,毕竟自己对自己的数据拥有完全支配的权利。然而,事实上并不是如此。

    事实上,区块链是一整套技术组合的代表,在这一组技术的配合下,才能显示区块链技术的优点。无论是什么样的区块链系统,不管是比特币、莱特币、以太坊还是其他的,核心结构和工作原理都是相同的。我们来看看最基本的技术组合有哪些吧。


    如上图所示,这是区块链系统结构的基本组成,各种系统本质上都是在这个经典结构之上直接实现或者扩展实现。这些零部件装配在一起,组成了一个区块链软件,运行起来后就成为一个节点,多个这样的节点在不同的计算机上运行起来,就组成了一个网络。在这个网络中没个节点都是平等的,大家相互为对方提供服务,这种网络称为点对点的“对等网络”。下面我们来依次解释一下

    1.区块链账本

    如上所述,区块链账本它表示一种特有的数据记录形式。区块链就是“区块+链”,所谓的区块就是指数据块的意思,每个数据块之间通过某个标志连接起来的,从而形成一条链,我们看一下示意图:


    如图所示,一个区块一个区块地衔接,区块之间通过某种方式串联起来,就比特币来说,大约是每10分钟产生一个区块,区块中主要包含了交易事务数据以及区块的摘要信息。我们来看看比特币中区块链数据的组成示意图:


    通过上图可以看到比特币中区块链账本的数据组成以及关系,并且可以看到区块链数据在逻辑上分成了区块头和区块体,每个区块头中通过梅克尔根关联了区块中众多的交易事务,而每个区块之间通过区块头哈希值(区块头哈希值就是一个区块的身份证号)串联起来。这是一种链条格式,链条最大的特点就是一环扣一环,很难从之间去破坏。比如有人篡改了中间的2号区块,那么久的同时把2号区块后序的所有区块都要更改掉,这个难度就很大了。在区块链系统中,一个节点产生的数据或者更改的数据要发送到网络中的其他节点接受验证,而其他节点是不会通过验证一个被篡改的数据的,因为跟自己的本地区块链账本数据匹配不起来,这也是区块链数据不可篡改的一个很重要的技术设计。

    这个格式还有个很巧妙的地方,如果数据总是由一个人来记录的,那自然也没什么,但是如果放到网络中,大家共同来记录这个数据,那就有意思了,每个区块数据由谁来记录或者打包,有一个规则。比如说掷骰子,大家约定谁能连续3次掷出三次6点,那就让他记录下一个区块的数据,为了补偿他的劳动投入,奖励给他一些收益。比特币正是通过这种方式不断发行新的比特币出来,奖励给打包记录区块数据的那个人的比特币就是新发型的比特币。

    2.共识机制

    所谓共识,就是指大家达成一致的意思。在区块链系统中,每个节点必须要做的事情就是让自己账本和其他节点的账本保持一致。如果在传统的软件系统中,这几乎不是问题,因为有一个中心服务器存在,也就是所谓的主库,其他库向它看齐就行。在实际生活中,很多事情人们也是按照这种思路来的。但是区块链是一个分布式的对等网络结构,在该结构中没有哪个节点是“老大”,一切都要商量着来。在区块链系统中,如何让每个节点按照规则保持数据一致是一个很核心的问题,这个问题的解决方案就是制定一套共识算法。

    共识算法其实就是一个规则,每个节点都要按照这个规则去确认自己的数据,并且我们要从所有的节点中选举出一个最具有代表性的节点,那么如何筛选呢?其实就是设置一组条件,就像我们筛选运动员、尖子生一样,给一组指标让大家来完成,谁完成得更好,谁就有机会被选上。在区块链系统中,存在着多种这样的筛选方案,比如PoW(proof of work工作证明)、PoS(Proof of stake权益证明)、DPoS(Delegate proof of stake委托权益证明)、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)等等。区块链系统就是通过这些删选算法或者共识算法使得网络中各个节点的账本数据达成一致。

    3.密码算法

    密码算法的应用在区块链系统中很巧妙,应用点也很多,我在这里不详细介绍密码的原理,就从几个很关键的应用来介绍一下。

    首先我们回顾下区块链账本格式。通过上述讲解我们知道,区块链账本就是一个链接起来的一个个区块。到底是通过什么技术来链接的呢?学过数据结构的同学都知道,数据结构中有一种变量叫指针(Java中没有指针概念)它是可以用来指向某个数据地址的。区块之间的连接,往往不是靠数据地址来关联的,而是靠一种叫做哈希值的数据来关联,什么是哈希值?这是通过密码算法中的哈希算法计算得出的。哈希算法可以通过一段数据计算得出一段摘要字符串,这种摘要字符串与原始数据是唯一对应的。什么意思呢?如果对原始数据进行修改,哪怕只是一点点的修改,那么计算出来的哈希值都会发生完全的变化。区块链账本对每个区块都会计算出一个哈希值,称为区块哈希。通过区块哈希来串联区块。这有一个很好的作用就是,如果有人篡改了中间的某一个区块数据,那么后面的区块就都要进行修改,这个时候并不是简单地修改一下后面区块地址指向就能结束的。由于后面的区块是通过区块哈希来指向的,只要前面的区块发生改动,这个区块哈希就无效了,就指不到正确的区块了。

    当然密码算法在区块链中的应用远不止这些,比如通过密码算法来创建账户地址、签名交易事务等等,这些应用在后面会介绍。

    4.脚本系统

    脚本系统在区块链中是一个相对抽象的概念,也是一个及其重要的功能,可以说是区块系统之所以能形成一个价值的网络,依靠的就是脚本系统。它就像一个发动机一样,驱动着区块链系统不断地进行各种数据的收发。所谓脚本,就是指一组程序规则。在区块链中有些程序的规则是固定的,比如在比特币系统中,只能进行比特币的发送与接收,这个与发送与接收的过程就是通过实现在比特币中的一组脚本程序来完成的。而有些系统是允许用户自行编写一组程序规则的,编写好后可以部署到区块链账本中,这就可以扩展区块链系统的功能,比如以太坊就是通过实现一套可以自定义功能的脚本系统,进而实现了只能合约的功能。

    脚本系统使得在区块链中可以实现各种各样的业务功能。本来大家只是通过区块链来财务记账,通过脚本系统,大家可以使用区块来记录各种各样的数据,比如订单、众筹账户、物流信息、供应链信息等,这些数据一旦可以记录到区块链上,那么区块链的优点就能充分发挥出来。有关脚本系统的具体使用和开发,我后面会讲解。

    5.网络路由

    这个功能模块比较简单。区块链系统是一个分布式的网络,这些网络中的节点如何来彼此进行通信呢?依靠的就是网络路由功能。在分布式的网路结构中,不存在一个指定的服务器,大家没办法通过一个服务器来直接交换彼此的身份信息,就只能依靠彼此联系并传播信息。在区块链系统中,这个功能一般会定义成一种协议,称为“节点发现协议”。

    除了要发现节点外,更重要的一个功能就是同步数据。节点要保持自己账本数据是最新的,就必须时时更新自己的数据。从哪更新呢?既然没有服务器下载下来,那就通过邻近的节点了。通过向邻近节点发送数据请求来获得最新的数据,节点彼此都充当服务者和被服务者,通过这种方式,网路中的每个节点都会在某一个时刻达成数据上的一致。

    网络路由可以说是区块链系统的触角,通过大量的触角将每个节点连入网络,从而形成一个功能强大的区块链共识网络。



    展开全文
  • 我知道很多搞技术的朋友都觉得区块链技术可能不是很难,但实际落地却不多,而且有些人说区块链概念太热了,实际上我觉得是因为他们还没有真正理解区块链的商业价值,只有真正明白区块链的基本技术,才有可能理解...

    今天我还是给大家讲一下区块链的基本原理。我知道很多搞技术的朋友都觉得区块链技术可能不是很难,但实际落地却不多,而且有些人说区块链概念太热了,实际上我觉得是因为他们还没有真正理解区块链的商业价值,只有真正明白区块链的基本技术,才有可能理解区块链的颠覆意义。

    多账本记一样的账

    大家看,这张图上有6个帐本,张三有30元,李四有50元,每一个帐本的帐都是一模一样的,这就是区块链的第一个概念:多个帐本记着同一个帐,而且每个帐本都是一样,可以相互校验。

    hash值的计算,校验数据的一致性

    哈希就是把一个字符串,映射成一个相对固定长度的摘要值 64位16进制。

    比如,hash( 张三给李四100元钱):b2f1dbcea1110674575d43b3f2c4d469b2e45764e9e93b084e9c6517eb6ba41a

    比如,hash( 张三给李四101元钱):9a31b1169e79ab8339573cf310d56bed646e755f585a9e91c7760c87b3e45dd0

    我们可以把区块链比喻成打牌,比如张三、李四、王五、赵六他们四个人在打牌。第0局每个人都发放100元,第0局,高度0区块他们的校验码hash值是hash0。第1局,高度1区块就是张三输给李四30元,大家可以看到张三的余额是100减30等于70,李四100加30等于130,所有这些交易及余额的变动就形成了hash1。

    第2局,高度2交易就是李四输给赵六30元,王五输给赵六20元,然后他们的余额也分别变动为100、80、150,他们的hash值就是hash2。同样到第3局,张三输给李四70元,这是一笔交易,他们的余额也变成0、150,这些交易和余额的变动就是hash3。

    前面这张表只有一个节点,现在我们可以看有两个节点的图:节点A和节点B。节点A的高度是小写的hash0,和节点B的hash0是一致的,节点A的hash1和节点B的hash1也是一致的。依此类推,两个hash2一致,两个hash3也一致,那么说明这两个节点的所有的交易和余额的数据都是一致的。如果有十个节点,那这十个节点也都是一致的。

    我们可以用一个time33来解释一下hash值是怎么计算的。计算123 的hash值的话,初始的hash值是0,那么第一个“1”的hash值就是33×0+1等于1,“12”的hash值就是1×33+2等于35,“123”的hash值就是35×33+3等于1158,所以在不同的节点,如果都是“123”这个字符串的话,算出来的hash值就都是1158,同样的数据他们的hash值就是一致的。

    张三给李四100元有一个hash值,张三给李四101元则是完全不同的hash值,所以两段数据中只要有微小的差别,他们的hash值就是完全不一致的,hash值可以校验两段数据是否一致。

    区块链的原理

    这里有高度0、高度1和高度2三个高度的区块。第一个高度0,它的交易数据和余额数据是小写的hash0,先生成一个大写的HASH0。大写的HASH0到高度1里面和小写的hash1的数据串联以后,再形成一个大写的HASH1,那么大写的HASH1则包含了高度1里面的交易数据以及前面所有区块数据的哈希值。

    第二个高度的区块又包含了大写的HASH1和小写的hash2的hash值,就形成了一个大写的HASH2,那么如果十个节点的服务器的HASH2都一致的话,这就说明他们的数据都是一样的。

    私钥签名,公钥验证

    私钥是什么呢?私钥其实就是一个随机数或一个坐标。比如2的6次方有64个数字,你若选其中的37作为你的坐标。如果把它想象成一块地的话,你把你的金子藏在37号地,要挖多少块地才能找到金子呢?如果我们的区块链比特币它私钥的数字是2的256次方,相当于宇宙的原子数,你随机找一个坐标把金子放上去,其他人几乎是不可能找到得。

    在这里私钥经过椭圆曲线加密和两次hash后,会生成公钥地址,就是区块链上记录你钱或资产的帐户。我们也可以把私钥比喻成信箱的钥匙或密码,张三给李四转帐30元就用张三的私钥进行签名。大家可以看到,你改这个签名的字符串或者是改收款人或金额都是没有办法做到的,因为这个签名必须是用张三的私钥签名,才能被记账节点验证通过。

    然后张三会把他对交易的签名发送给记帐节点去验证。如果十台服务器有七台验证通过以后,这个转帐就会成功,张三的余额就少了30,余额变为70,李四的余额就会增加30,变成130。

    持有比特币最多的地址上有18.9万个比特币,相当于15多亿的人民币。那在公网上有这么多黑客攻击都没有破解他的私钥去把这个地址上的币给盗走,所以我们看出来比特币的安全性还是经受了实践的考验的。

    梅克尔树的校验作用

    大家可以看一下这一个区块里面有四笔交易,两两hash以后,再两两hash就变成了根hash值。

    大家看这个图,把前面的TX0,TX1,TX2交易全部隐藏,只剩下TX3。这里我们把TX3的hash值加上TX2的hash值可以形成hash23,然后hash01+hash23可以算出根hash值,这说明我只要知道我自己的数据,我也能算出这个数据是不是有被篡改,有没有在这个区块里面。

    我用一个加法来代替hash来看交易是否在这个区块里面。5+6等于11,11+12等于23,23+25等于48,35+48等于83,那么我只要绿色的和红色的这些数据我就可以证明我的交易是否在83这个头hash下面,就可以证明我没有被篡改,存在这个区块链中。

    这个图就是私链或者联盟链的一些节点。尤其是联盟链,四个节点中只要有三个正常运行就能够维持,七个节点有五个能正常运行就能继续做区块链共识。

    我们给海平线“海票惠”部署的节点都是放在海航云内网里面,但是用户只要获取部分数据,就可以通过merkle树来验证数据是否被篡改,并且可以把部分需要分享的数据拿出来给第三方,去证明这些数据是谁和谁签的合同,然后这个数据有时间锉,这也是没有办法篡改的。然后我们会把私链跟hash值写到比特币上,这样就更加没有办法篡改了。

    或者我们把各个私链的头hash值串起来搞一条联盟链,将他们的头hash全部放在一条链上,这样也是一个很方便的方法。既能保护每一条私链的隐私,又能够保证他们的数据无法被篡改。

    智能合约的运行过程

    这是一个智能合约,就是一方面把股权或票据放到交易所,另一方面把数字货币也放到交易所。如果两个条件都能够匹配,那么就是一手交钱一手交货,自动执行。

    这是海票惠的票据撮合平台。首先第一步,融资方和贷款方都会在平台上注册,那么都会开一个银行托管帐户,有票的一方把票据在区块链上平台上挂出,购票的一方就把钱存入银行的托管帐户。

    比如一家企业把一张一百万的商业承兑汇票挂在区块链平台上,然后另外一家保理公司存入98万元的钱,他会收到98万元的代币,卖家设定一定利率挂牌卖出。买家用代币可以买区块链上的票据,撮合成交以后,相当于订立了合同,这买家的钱就从买家的帐户转到卖家的帐户中冻结起来,然后卖家会在ECDS把票转给买家,买家看ECDS 确认票收到以后就会让银行放款,买家就能收到钱。

    融资方录入票据

    融资方录入票据

    这个是票据登陆,录入,如果能够和央行ECDS直联,只要输入编号就可以把票据的信息写到区块链上。

    融资方获得数字票据

    融资方获得数字票据

    票据录入以后,就可以挂牌,以一定的利率挂牌。

    融资方筛选票据

    投资方筛选票据

    其他公司或保理公司觉得利率不错,又有资金,那么就可以在区块链上摘牌,这样就形成了一个合同关系,然后就开始交割。

    投资方等待票据回款

    投资方等待票据回款

    投资方查询操作记录

    投资方查询操作记录

    入金

    入金


    录入票据

    录入票据

    挂牌转让

    挂牌转让


    摘牌投资

    摘牌投资

    大家可以看前面几张图,入金、票据登记、挂牌、摘牌都写在区块链上,都是不可篡改的。

    为什么那么多核心企业都非常急切的要做票据服务平台呢?关键就是那些与核心企业关联的中小企业都有强烈的融资需求。供应链金融数据写在区块链上不可篡改,就会形成非常宝贵的信用资料,方便融资,也方便企业提高自己的信用,对于信用差的企业,他们就会被淘汰。

    明白了原理是第一步,后面要理解为什么区块链对整个经济和社会的颠覆意义是深远的,这个可能不是一两句话能够说明白的。在三年前我已经完全认识到区块链的技术就和互联网技术一样,能够有巨大的经济价值、社会价值,我们就义无反顾的投入到区块链的研发当中去,所以目前在这个行业内也能够保持一定的领先地位。




    引用:复杂美CEO吴思进的演讲(原标题:【钛坦白】33复杂美CEO吴思进:追本溯源,带你读懂区块链最基本的技术原理)



    展开全文
  • 理解区块链

    2017-05-16 22:51:38
    1、区块链的诞生 互联网上的贸易,几乎都需要借助可资信赖的第三方信用机构来处理电子支付信息。这类系统仍然内生性地受制于“基于信用的模式”。区块链技术是构建比特币区块链网络与交易信息加密传输的基础技术。它...

    本文基本上是收集的内容汇总,略微全面一点

    1、区块链的诞生

    互联网上的贸易,几乎都需要借助可资信赖的第三方信用机构来处理电子支付信息。这类系统仍然内生性地受制于“基于信用的模式”。区块链技术是构建比特币区块链网络与交易信息加密传输的基础技术。它基于密码学原理而不基于信用,使得任何达成一致的方直接支,从而不需要第三方中介的参与。

    定义:

    区块链是一个分布式账本,一种通过去中心化去信任的方式集体维护一个可靠数据库的技术方案。

    从数据的角度来看:区块链是一种几乎不可能被更改的分布式数据库。这里的“分布式”不仅体现为数据的分布式存储,也体现为数据的分布式记录(即由系统参与者共同维护)。

    从技术的角度来看:区块链并不是一种单一的技术,而是多种技术整合的结果。这些技术以新的结构组合在一起,形成了一种新的数据记录、存储和表达的方式。


    区块链目前还处在早期阶段,一些嗅到商机的大企业,技术牛人都对此开展了研究。初期阶段,想想有木有好兴奋....


    2、区块链技术的特征

    2.1、开放,共识

    任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点间基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。

    2.2、去中心,去信任

    区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过数字签名技术进行验证,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其它节点。

    2.3、交易透明,双方匿名

    区块链的运行规则是公开透明的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。

    2.4、不可篡改,可追溯

    单个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这几乎不可能发生。区块链中的每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。


    3、区块链中的关键技术原理

    区块链的整个架构如下图所示

    3.1、数字签名

    数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的。二是数字签名能确定消息的完整性。

    工作原理

    发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私钥对摘要进行加密,加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。


    3.2、SHA256

    一种求Hash值的加密算法。

    工作原理

    将任何一串数据输入到SHA256将得到一个256位的Hash值(散列值)。其特点:相同的数据输入将得到相同的结果。输入数据只要稍有变化(比如一个1变成了0)则将得到一个千差万别的结果,且结果无法事先预知。正向计算(由数据计算其对应的Hash值)十分容易。逆向计算(俗称“破解”,即由Hash值计算出其对应的数据)极其困难,在当前科技条件下被视作不可能。


    3.3、Merkle Tree

    一种哈希二叉树,使用它可以快速校验大规模数据的完整性。在比特币网络中,Merkle 树被用来归纳一个区块中的所有交易信息,最终生成这个区块所有交易信息的一个统一的哈希值,区块中任何一笔交易信息的改变都会使得使得Merkle 树改变。

    作原理

    网上大都称为Merkle Hash Tree,这是因为 它所构造的Merkle Tree的所有节点都是Hash值。Merkle Tree具有以下特点:

    1. 它是一种树,可以是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点;

    2. Merkle树的叶子节点上的value,是由你指定的,这主要看你的设计了,如Merkle Hash Tree会将数据的Hash值作为叶子节点的值;

    3 非叶子节点的value是根据它下面所有的叶子节点值,然后按照一定的算法计算而得出的。如Merkle Hash Tree的非叶子节点value的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行hash计算所得出的hash value。


    3.4、时间戳服务器

    大多用来进行比对以及验证处理,时间戳服务器是一款基于PKI(公钥密码基础设施)技术的时间戳权威系统,对外提供精确可信的时间戳服务。它采用精确的时间源、高强度高标准的安全机制,以确认系统处理数据在某一时间的存在性和相关操作的相对时间顺序,为信息系统中的时间防抵赖提供基础服务。


    4、区块链的第一个成功应用


    比特币是区块链技术的第一个应用,它的生态圈如下:


    任何机器都可以运行一个完整的比特币节点,一个完整的比特币节点包括如下功

    1.包,允许用户块链网络上进行交
    2.整区块链,记录了所有交易历史,通过特殊的结构保证历史交易的安全性,并且用来验证新交易的合法
    3.工,通过记录交易及解密数学题来生成新区块,如果成功可以赚取奖
    4.由功能,把其它节点传送过来的交易数据等信息再传送给更多的节


    第1步:所有者A利用他的私钥对前一次交易(比特货来源)和下一位所有者B签署一个字签名,并将这个签名附加在这枚货币的末尾,制作成交易单

    要点:B作为接收方地址

    第2步:A将交易单广播至全网,比特币就发送给了B,每个节点都将收到的交易信息纳入一个区块中

    要点:B而言,该枚比特币会即时显示在比特币钱包中,但直到区确认成功后才可用。目前一笔比特币从支付到最终确认成功,得6区块认之后才能真正确认到帐。

    第3步:每个节点通过解一道数学难题,从而去获得创建新区块权利,并争取得到比特币的奖励(新比特币会在此过程中产生)

    要点:点反复尝试寻找个数值,使将该数值、区块链中最后一区块Hash及交单三部分送入SHA256法后能计算出散列值X256)满足一定条件(比如前20位均为0),即找到数学难题的解。由此可见,答案并不唯一

    第4步:当一个节点找到解时,它就向全网广播该区块记录的所有盖时间戳交易,并由全网其他节点核对

    要点:戳用来证实特定区块必然于某特定时间是的确存在的。比特币网络采取从5个以上节点获取时间,然后取中间值的方式作为时间戳。

    第5步:全网其他节点核对该区块记账的正确,没有错误后他们将在该合法区块之后竞争下一个区块,这样就形成了一个合法记账的区块链。

    要点:每个区块的创建时间大约在10分钟。随着全网算力的不断变化,每个区块的产生时间会随算力增强而缩短、随算力减弱而延长。其原理是根据最近产生的2016年区块的时间差(约两周时间),自动调整每个区块的生成难度(比如减少或增加目标值中0的个数),使得每个区块的生成时间是10分钟。




    5、主要的数据结构

    区块链以区块为单位组织数据。全网所有的交易记录都以交易单的形式存储在全网唯一的区块链中。


    区块是一种记录交易的数据结构。每个区块由区块头和区块主体组成,区块主体只负责记录前一段时间内的所有交易信息,区块链的大部分功能都由区块头实现。


    1.号,标示软件及协议的相关版本信
    2.父区块哈希值,引用的区块链中父区块头的哈希值,通过这个值每个区块才首尾相连组成了区块链,并且这个值对区块链的安全性起到了至关重要的作
    3.Merkle根,这个值是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值,主要用于检验一笔交易是否在这个区块中存
    4.时间戳,记录该区块产生的时间,精确到
    5.难度值,该区块相关数学题的难度目
    6.随机数(Nonce)记录解密该区块相关数学题的答案的


    在当前区块加入区块链后,所有矿工就立即开始下一个区块的生成工作。

    1.把在本地内存中的交易信息记录到区块主体中
    2.在区块主体中生成此区块中所有交易信息的 Merkle 树,把 Merkle 树根的值保存在区块头中
    3.把上一个刚刚生成的区块的区块头的数据通过 SHA256 算法生成一个 哈希值填入到当前区块的父哈希值中
    4.把当前时间保存在时间戳字段中
    5.难度值字段会根据之前一段时间区块的平均生成时间进行调整以应对整个网络不断变化的整体计算总量,如果计算总量增长了,则系统会调高数学题的难度值,使得预期完成下一个区块的时间依然在一定时间内


    6、核心问题

    6.1工作量证明

    区块头包含一个随机数,使得区块的随机散列值出现了所需的0个数。节点通过反复尝试来找到这个随机数,这样就构建了一个工作量证明机制。工作量证明机制的本质是CPU票,“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如果想要修出现的区块,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。


    6.2分叉

    同一时间段内全网不止一个节点能计算出随机数,即会有多个节点在网络中广播它们各自打包好的临时区块(都是合法的)。

    某一节点若收到多个针对同一前续区块的后续临时区块,则该节点会在本地区块链上建立分支,多个临时区块对应多个分支。该僵局的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作其他分支将会被网络彻底抛弃


    6.3双花

    双花,即二重支付,指攻击者几乎同时将同一笔钱用作不同交易。

    每当节点在把新收到的交易单加入区块之前,会顺着交易的发起方的公钥向前遍历检查,检查当前交易所用的币是否确实属于当前交易发起方,此检查可遍历到该币的最初诞生点(即产生它的那块区块源)。虽然多份交易单可以任意序的广播,但是它们最终被加入区块时必定呈现一定的顺序。区块之间以Hash值作为时间戳则区块,这决定了任意一笔交易资金来源都可以被确定的回溯。

    7、应用场景

    从需求端来看,金融、医疗、公证、通信、供应链、域名、投票等领域都开始意识到区块链的重要性并开始尝试将技术与现实社会对接。

    从投资端来看,区块链的投资资金供给逐步上升,风投的投资热情也不断高涨,投资密度越来越大,供给端的资金供给有望推动技术的进一步发展。

    从市场应用来看区块链能成为一种市场工具,帮助社会削减平台成本,让中间机构成为过去;区块链将促使公司现有业务模式重心的转移,有望加速公司的发展。


    8、资料来源

    http://www.doc88.com/p-3843131640343.html   区块链技术发展现状和展望

    其他网页收集



    展开全文
  •   “区块链”的概念可以说是异常火爆,好像互联网金融峰会上没人谈一谈区块链技术就out了,BAT以及各大银行还有什么金融机构都在开始自己的区块链研究工作,就连IBM最近也成立了自己的区块链研究实验室,但其实...
  • 区块链的基本概念和工作原理1、基本概念区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链...
  • 以太坊区块链实战培训课程【以太坊区块链技术&山寨币&转账实战教学】 使用 Ethereum 区块链技术进行区块链应用开发。 使用 Weui 技术作为移动端H5框架,适配Android,Ios,微信浏览器。 使用 Spring Boot 作为...
  • 区块链是比特币的核心与基础架构,是一个去中心化的账本系统。今天这篇文章,将会重点介绍我们经常提到的挖矿,也就是工作量证明。理解工作量证明机制,将为我们进一步理解比特币区块链的共识机制奠定基础。工作量...
  • 区块链七大应用场景

    2019-09-05 18:47:25
    这应该是区块链最简单的应用场景,就是信息互通有无。 1、传统的信息共享的痛点 要么是统一由一个中心进行信息发布和分发,要么是彼此之间定时批量对账(典型的每天一次),对于有时效性要求的信息共享,难以达到...
  • 试试蹭一波区块链的热度,欢迎关注,转载请评论或私信咨询。以下图片均来自百度,侵删。 最近区块链的概念被炒得火的不行,但我们实验室,或者说科研学术界却好像还不温不火,没有外面市场炒得那么火热。但是话又...
  • 区块链到底是什么东西呢?又看不到也摸不到,根本没法猜测,那么区块链技术能够运用在什么地方呢?我国区块链技术到底效果是怎么样,是不是和国外有一定的区别呢,其实啊也和行业内的大佬进行探讨。 什么是区块链...
  • 中国麻将:世界上最早的区块链项目 最近区块链这个玩意又被市场搞的很是火热,相信大部分人都不太清楚这玩意到底是怎么样的一个概念,它来了,它来了,它到底是啥~ 国家都开始发文支持了,下面是一个通俗易懂的例子...
  • hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易...
  • 区块链是目前一个比较热门的新概念,蕴含了技术与金融两层概念。从技术角度来看,这是一个牺牲一致性效率且保证最终一致性的的分布式的数据库,当然这是比较片面的。从经济学的角度来看,这种容错能力很强的点对点...
  • 通过此篇博客,自己对“区块链”技术有了大致的了解,此篇博文讲的特别透彻,在此表示感谢~前言  最近区块链比较火,区块链是什么鬼,怎么以前没听过,不过说个东西你一定听过-比特币,以前区块链用在比特币上,...
  • 区块链技术的核心是沿时间轴记录数据与合约,并且只能读取和写入,不能修改和删除。在应用层面,区块链的安全、透明、高效3大优势,使其特别有助于规范互联网金融的发展,以及促进物联网和共享经济的普及与创新;在...
1 2 3 4 5 ... 20
收藏数 122,794
精华内容 49,117
关键字:

区块链