本系列内容包含:基本概念及原理、密码学、共识算法、钱包及节点原理、挖矿原理及实现。

1. 概述

区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,或称之为公共账本,其每一个区块记录一段时间内产生的转账等一些其他信息。

与传统账本的区别是,无论有没有新的交易产生,有没有新的帐目产生,区块都会按照约定的时间去出块,这就是区块的产生。如果这段时间没有新的交易产生,那产生的就是我们所谓的空块。

同时,绝大多数区块链项目都会对区块加一个大小的限制,也就是说单个区块可以记录的最大信息的容量。

举个例子,比特币的区块大小是1M,所以BTC的每个区块中最多能记录大约3000笔的交易。如果矿工想打包更多的交易,那就不得不提高区块的上限。

2. 基本特点

第一个特点,匿名性。所有的数字货币都没有署名,大家可以看下下面这张图。

这是一张比特币的一个区块的交易信息,我们可以看左侧的都是转出的地址,以及对这个地址转出的金额。右侧是转入地址,以及这个地址接收到的比特币金额。

我们拿第1笔交易来看,这笔交易意思是:地址 bc1q…syad 转出了0.05718823个BTC,这些BTC分别转到了,右侧的两个地址,第一个地址 386U…8mg8 接收到了0.00005663个BTC;第二个地址 bc1q…mkuy 接收到了0.05706003个BTC。

大家可以看到,所有的记录信息中,只有地址和数量,不包含任何个人信息。也就是说从这个地址中无法找到地址所有者的任何信息,因此比特币也一直深受黑市和黑客们的欢迎。

数字资产的所有权,也就是地址对应的私钥,拥有了私钥就拥有了这个地址上的数字资产。反之,如果丢失了这个私钥,也就永远的无法找回这部分数字资产。

第二个特点,不可篡改。简单来说,就是说所有已经上链的交易不能被更改。

在生活中大家接触最多的是数据库,数据库最基本的操作是增删改查,其中删除和修改就是对数据库中已有记录的信息进行变更。为了避免数据损坏,防止数据库被恶意修改,运维经常需要对数据库进行一个备份。

而区块链的特点是其上面的数据是不可篡改的,这个不可篡改主要有两点来保证。

第一点,所有每个区块都通过区块头中的哈希,与前面的区块紧紧的绑定在一起。

在这样的设计下,单纯修改一个区块是没有意义的,因为所有区块都是连在一起的。假如第一个区块被修改了,那这个区块后面的所有区块都无法找到它的潜入区块。

因为把这个区块的一个交易修改以后,整个区块的哈希就改变了,要想后面的区块都连起来,就必须把后面所有的区块都重新再产生一遍,这是几乎不可能的。难度非常非常大,这个难度为什么大我们后面会展开来说。

第二点,所有的节点都保存了完整的区块数据。

如果仅仅更改其中一个节点,或者其中一部分节点的数据,也不能改变全网的状态。因为全网中还有其他更多的节点是不被控制的,任何人无法去修改这些节点的数据。

通过这两点,保证了链上数据的不可更改。

第三个特点,去中心化。去中心化就是没有中心,所有节点的功能都是一样的,都是平等的,里面的数据也是完全一样的。

即每个节点都有一个完整的账本,每个账本中都记录了从创始区块(高度为0的区块)到现在所有的信息。

而我们一般接触到的传统金融系统,是分级保管的,每级仅保管了本级以下的数据。例如,省级的分行不会保管其他省分行的数据。

假设北京的分行需要访问上海分行的数据,他必须向上级,例如总行,去申请数据访问的授权。

第四点,可追溯。可追溯的意思是,任何人可以很容易的查询每一笔交易的所有流向。因为每一个节点都有整个系统的全部数据,同时所有的交易和区块都是严格绑定在一起的

3. 非绝对性

需要注意的是,这四个特点也不是完全绝对的。

首先说匿名性和可追溯性之间就有一定的矛盾性。因为现在数字货币的交易基本是通过中心化的交易所或者场外的一些OTC交易来完成的。而目前绝大多数的交易所都需要对用户进行实名认证,这就导致了匿名性的失效。

比如著名的门头沟事件,经过其中一些受损失的投资人的努力,他们丢失的BTC已经找回来了一部分。

虽然刚开始门头沟丢失的BTC中间经过不断的转换地址,但最终汇总到了后面的几个地址。受损人通过不断查询,最后通过这些地址成功找到了当时攻击交易所的这个人,也追回了当时丢失的BTC,这也体现了区块链的可追溯性。

第二,不可篡改的不绝对性。区块链项目中讲的最多的是共识,如果所有节点对某一件事都达成了共识,那么这件事就可以实施,比如说修改已经确认的数据。

比较典型的一个例子是以太坊的The DAO事件,当年The DAO使用以太币来众筹,结果超过1200万个以太币被黑客盗取,以太坊创始人提出设想,通过硬分叉使得黑客利用漏洞转出交易的区块失效,以此找回丢失的以太币。

当时有约450万以太币参与投票,超过90%的以太坊算力支持硬分叉,因此以太坊硬分叉成功。这样分叉产生的新链是以太坊ETH,旧链是以太经典ETC。

最后再说一下去中心化。其实现在越来越多的区块链项目开始推出超级节点,社区参与治理的模式,而超级节点比普通节点具有更多的权利和功能。

比如EOS的超级节点,经过超级节点间的集体仲裁可以锁定,某个用户的账户。

其它链中的一些超级节点,一般会作为矿工的一部分,参与区块链的共识。而普通节点仅仅只能作为账本的保管者,保管和验证区块的有效性和完整性。

下期预告:区块链进阶原理

Comunion 区块链深度学习系列|区块链基本原理相关推荐

  1. Comunion 区块链深度学习系列|区块链的发展历程

    打开一切科学的钥匙都毫无异议地是问号,我们大部分的伟大发现都应当归功于如何?而生活的智慧大概就在于逢事都问个为什么? -- 巴尔扎克 之前写过一篇区块链新手学习要有系统性的文章,也有读者获取到了学习视 ...

  2. Comunion 区块链深度学习系列|哈希碰撞原理

    Comunion 是一个去中心化的(DAO) 组织协作网络,提供面向数字时代的全新商业基础设施和价值转化机制,致力于让劳动价值 像 资本一样自由流通.交易和积累. 本系列内容包含:基本概念及原理.密码 ...

  3. Comunion 区块链深度学习系列|区块链进阶原理:转账

    本系列内容包含:基本概念及原理.密码学.共识算法.钱包及节点原理.挖矿原理及实现. 转账流程 大家都知道,我们日常使用银行卡进行转账的时候,一般需要填入户名.对方的账号.转账金额以及一些转账附言,接着 ...

  4. 深度学习系列:深度学习在腾讯的平台化和应用实践

    深度学习系列:深度学习在腾讯的平台化和应用实践(一) 莫扎特 2015-01-04 6:05:13 大数据技术 评论(0) 深度学习是近年机器学习领域的重大突破,有着广泛的应用前景.随着Google公 ...

  5. 【深度学习系列】——神经网络的可视化解释

    这是深度学习系列的第三篇文章,欢迎关注原创公众号 [计算机视觉联盟],第一时间阅读我的原创!回复 [西瓜书手推笔记] 还可获取我的机器学习纯手推笔记! 深度学习系列 [深度学习系列]--深度学习简介 ...

  6. 【深度学习系列】——深度学习简介

    这是深度学习系列的第一篇文章,欢迎关注原创公众号 [计算机视觉联盟],第一时间阅读我的原创!回复 [西瓜书手推笔记] 还可获取我的机器学习纯手推笔记! 直达笔记地址:机器学习手推笔记(GitHub地址 ...

  7. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  8. python系列文章(基础,应用,后端,运维,自动化测试,爬虫,数据分析,可视化,机器学习,深度学习系列内容)

    python基础教程 python基础系列教程--Python的安装与测试:python解释器.PyDev编辑器.pycharm编译器 python基础系列教程--Python库的安装与卸载 pyth ...

  9. 点云深度学习系列博客(二): 点云配准网络PCRNet

    目录 一. 简介 二. 基础结构 三. 项目代码 四. 实验结果 总结 Reference 今天的点云深度学习系列博客为大家介绍一个用于点云配准的深度网络:PCRNet [1].凡是对点云相关应用有些 ...

最新文章

  1. SharePoint基础之六- SharePoint基础架构中涉及的ASP.NET架构
  2. 如何有效地提升 JavaScript 水平?
  3. mysql replace into用法详细说明
  4. Nginx基础入门之nginx基础配置项介绍(2)
  5. 论文浅尝 | 基于知识图谱 Embedding 的问答
  6. python基于tornade的高并发接口编程实战学习
  7. 中职计算机课程授课类型,中职计算机课程「任务引领型」教学方法初探
  8. 编程界的十大天神,都来拜一拜吧
  9. 苹果手机突然闪退的7个原因及修复方法
  10. Matlab+cpp矩量法代码演示
  11. The harder I work, the luckier I get. - Samuel Goldwyn
  12. HTML5+CSS期末大作业:运动体育网站设计主题——体育铅球(5页)带注册 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品...
  13. Android实现 刮刮乐效果
  14. filter hid_HID调试工具
  15. Xv6 I/O 与文件描述符
  16. listview 点击 item 字体变颜色
  17. java模拟cpu返回_Java CPU 占用高 模拟及排查
  18. 第十二届蓝桥杯--第二场--B-双阶乘
  19. java古典兔子问题(java50道经典编程题)
  20. 【windows配置】windows11家庭版添加本地安全策略(亲测有效)

热门文章

  1. 意大利1:1罗马尼亚 能抓住运气的人却被留在了意大利……
  2. opencv 检测 键盘_C++ 利用opencv识别飞车舞蹈按键
  3. 五种在家观看3D电影的解决方案
  4. 实战:如何打造一个好的标题进行引流?
  5. Java代码中的不等号
  6. java 8安装教程
  7. 修改Windows10主机名
  8. 人脸识别再曝安全漏洞,15分钟解锁19款安卓手机,只需打印机、A4纸和眼镜框即可...
  9. 勒索软件_改善市政勒索软件防御能力的3种习惯
  10. 办公室适宜摆放的植物有哪些