区块链学习——区块链技术理念与工作流程

标签: 区块链
64人阅读 评论(0) 收藏 举报
分类:

在上篇关于区块链的文章中,我已经为大家简单地介绍了区块链的相关概念与简介,博客链接—区块链的相关概念与简介,本篇我将对区块链技术中的技术理念与技术栈做一个简单的介绍。

区块链的技术理念

通过区块链的概念我们知道,区块链在本质上来说就是一种记账方法,当然它并不是通过人来记账的,而是通过一种软件,我暂且称它为区块链客户端。他们运行于不同的设备上,彼此之间独立工作。通常我们把运行中的客户端成为“节点”。所有的节点都在一个互通的网络中,在网络中,一旦有什么交易发生,消息就会马上广播传遍给每个节点。在区块链软件的结构中,这中互相通信的功能成为“网络路由”。

在这个网络中,每个节点都维持着自己的账本,账本记录着网络中每一笔账务。具体是什么样的账务呢?这得看具体是什么样的功能网络。区块链技术属于一种技术方法,可以用来实现不同的业务功能,例如小到日常记账,大到各种复杂的商业合约等等。那么网络中的记账需要保持一致,所用的方法就是大家遵守一个规则,通过规则选出记账的节点。那么这种规则就成为“共识算法”。

在有些系统中,会考虑到通过规则选出的节点这个过程中所付出的劳动,毕竟这个节点需要通过不断得通过“工作证明”来取得记账权,还是挺辛苦的。于是会设计一种激励机制,负责打包数据以及广播的那个节点可以获得系统的奖励。那么大家都会很积极地去争取那种奖励。有些区块链系统会设计一种带竞争的机制,让各个节点去抢夺,谁能抢到这个机会就能获得数据打包的权利并且获得这笔奖励,这种情况下我们会形象地将这个竞争的过程称为“挖矿”。

那么,话又说回来了,我们将一个个运行客户端成为节点,那到底怎么标记不同的使用者呢?也是通过用户注册吗?其实不然,在区块链系统中,是通过一种密码算法来实现的,具体来说是通过一种叫公开秘钥算法的机制来实现的。我们知道对于一种密码算法来说,无论算法过程是什么样的,都会有一个秘钥,而公开秘钥算法拥有一对秘钥,是彼此配合使用的,可以相互用来加密和解密的。其中一种叫公钥,另一种叫私钥,公钥可以公开给别人,私钥要自己保存好。在区块链中,公钥是用来用户识别身份的。

那么两种秘钥是如何配合工作的?我来简单说明一下:用公钥加密的数据必须使用对应的私钥来解密,而使用私钥加密的(通常称为“签名”)的数据必须用对应的攻牙来解密。举个例子,张三要发给李四一张支票,那么怎么传送过去呢?直接发送过去,那么支票中的数据必然会被全网的其他的节点都知晓,这个处于安全性考虑肯定是不允许的。于是张三在支票上用李四的公钥加了密,然后再签上自己的名字(使用自己的私钥签名),这样的话,即使其他人拿到这张支票也没用,因为只有李四拥有自己的私钥来能解开这张支票来使用。这种功能设计在区块链系统中称为“脚本系统”。

总结:现在我们知道了,区块链的技术理念其实就是大家共同来参与记账,通过一种规则(共识算法)不断地选出账务打包者,其他节点接受验证,并且每个用户都有一对秘钥表示自己,通过脚本系统的功能实现在公共网络中定向发送有价值的数据。

区块链的工作流程

区块链的应用有很多种,第一个应用区块链技术的软件就是比特币,到现在为止,出现了很多机遇区块链技术的衍生系统,比如闪电网络、公正通、以太坊、超级账本项目等。但是无论设么类型的应用,它们的工作方式或者说工作流程都是相似的,本质上他们都是同一种技术结构的产物。我们接下来说说区块链的工作流程。

我们先来看一个转账交易的流程。转账交易本质上就是发送一笔数据,这个数据可以表示为资产,也可以表示为订单或者其他形式的数据,我们看一下下面的图示:


在图中,我们可以看到,整个数据的发送过程还是比较简单的,数据发送出去后,会被打包进区块,然后广播出去给所有节点确认,确认没有问题后就写入给的本地区块链账本中,当网络中的大多数节点都确认写入后,确认没问题后就写入到各自的本地区块账本中,当网络中大部分的节点都确认写入后,这个转账交易就算完成了。

这个工作流程是具有代表性的,其他各种系统都是在这个基础上进行衍生和扩展的,如有些会增加身份认证功能,以确保只有符合身份的验证的用户才能发送数据,有些扩展交易数据的表达能力,不但能用表示一般的交易转账,还能表示更复杂的商业逻辑,各种应用很多,但是万变不离其中。

说一千道一万,整个区块链网络,就是大家一起共同来维护一份公立账本。注意,这个账本只是逻辑上的概念,每个节点各自都是独立维护自己账本数据的,而所谓的公共账本,就是说各自的账本要保持一致,保持一致的部分就是公共账本。区块链技术其实就是围绕如何保持数据的一致,如何让公共账本的数据不能被篡改来展开的,为了解决这些问题,区块链拥有一套自己技术栈,我下篇博客会详细阐述区块链的技术栈。

查看评论

从零开始学区块链开发

课程简介 圆方圆区块链系列课程 * 基础篇 课程大纲 圆方圆区块链系列课程 * 基础篇 01.什么是“区块链” 02.神奇的哈希 03.增量式更新 04.去中心化 05.矿工挖什么,怎么挖? 06.共识机制 07.比特币交易基础 08.公钥和私钥 09.地址是账户名吗 10.地址里一分钱都没有
  • 2018年03月14日 07:23

区块链技术详解

对目前区块链知识进行一次体系化的讲解,使得初学者能迅速抓住区块链技术的核心思想,对区块链应用和智能合约有一个快速的、由浅入深的了解。
  • 2016年11月21日 13:30

区块链技术起源及应用

点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文“区块链”技术是目前最受关注的创新方向之一,特别在金融领域,在不引入第三方中介前提下,“区块链”技术因其提供的不可篡改、可追溯、分布式容...
  • O4dC8OjO7ZL6
  • O4dC8OjO7ZL6
  • 2018-01-05 00:00:00
  • 1283

吐血推荐:区块链技术学习者终极指南!

来源:艾伯特地址:http://www.aibbt.com/a/16016.html什么是加密经济学(cryptoeconomics)?以太坊社区开发者Vlad Zamfir解释道:“这是一门独立的学...
  • HowardWood
  • HowardWood
  • 2018-02-24 16:00:04
  • 352

如何学习区块链技术

https://www.zhihu.com/question/51047975?sort=createdhttps://www.cnblogs.com/zhuweiheng/p/8206188.htm...
  • gredn
  • gredn
  • 2018-02-09 16:41:53
  • 527

区块链技术学习笔记

上周末参加了一个区块链技术培训班,大致搞明白了以下问题:1、比特币为什么会衍生出挖矿、矿机这套产业链?为什么那么多人炒币?2、公有链、联盟莲、私有链的区别在此做个简单分享。1、比特币这种公有区块链的技...
  • russell_tao
  • russell_tao
  • 2017-07-04 09:49:01
  • 1979

区块链技术总结学习大全(5份资料)

  • 2018年01月28日 03:16
  • 12.14MB
  • 下载

一步一步学区块链(2)工具和技术的介绍

有了第一篇的区块链概念的大致了解,我们可以开始真正的学习区块链之旅。 要说区块链技术那么必须说以太坊,区块链技术通过上一篇的了解可以知道,它是支撑比特币的一个底层技术架构,随后被提取和抽象。以太坊将区...
  • jwter87
  • jwter87
  • 2016-11-25 15:25:04
  • 4452

区块链技术教程,如何从零开始学习以太坊及区块链

很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源。一、    以太坊和区块链的关系     从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从...
  • macair123
  • macair123
  • 2018-02-22 16:47:36
  • 2753

想学区块链技术?来这!

2017年,区块链技术可谓是最热的宠儿。在国务院日前印发《“十三五”国家信息化规划》中,区块链技术和人工智能、虚拟现实、大数据、无人驾驶交通工具、基因编辑等新多项高新技术创新被定义为战略性前沿技术超前...
  • FL63Zv9Zou86950w
  • FL63Zv9Zou86950w
  • 2017-09-21 00:00:00
  • 1248
    个人资料
    持之以恒
    等级:
    访问量: 3599
    积分: 585
    排名: 8万+
    文章存档