目录

一、内容导读

二、知识点

区块链

分布式账本

密码学

数字签名

双花攻击

数据结构

三、区块链技术为什么会产生

1、账本不能丢失或损坏

2、账本不能被篡改

3、证明你是你

4、同一样一份货币资产,能且仅能花费 1 次,不能花费 2 次或多次


一、内容导读

万物皆有象,一千个人眼中有一千个哈姆雷特,对于区块链来说,不同的人对区块链的理解也会不同。

我们主要是从技术人员的角度去思考为什么比特币发明者中本聪要使用这项技术,这样可以让我们更好的理解区块链技术的基本原理。

二、知识点

  • 区块链

  • 分布式账本

  • 密码学

  • 数字签名

  • 双花攻击

  • 数据结构

三、区块链技术为什么会产生

区块链技术的产生有偶然性,也有其必然性。2008年,世界正处于次贷金融危机之中,

2008年11月1日,一位自称中本聪的人在网络中发表了一篇论文,这篇论文也是后来鼎鼎有名的比特币白皮书 《比特币:一种点对点的电子现金系统》,这篇论文给人们描绘了一种全新的数字货币系统比特币,具体内容文末可下载。

我们知道,基本货币人民币,美元,欧元等货币是由国家背书才能够被民众所接受的,在日常生活中流通。但是比特币是没有任何国家或机构为其背书的,因此如果要想被大众接受,中本聪面临的问题就是如何利用技术手段给其发布的比特币进行背书。

从技术人员的角度看,要实现一个比特币或者一个电子现金系统,实际上就是要实现一个账本,技术上主要需要解决以下几个问题:

  • 账本不能丢失或损坏

  • 账本不能被篡改

  • 证明你是你

  • 同一样一份货币资产,能且仅能花费1次

1、账本不能丢失或损坏

如何保证账本不能丢失或者损坏呢?正常很容易想到的是多个人共同记账并保存多份,也就是分布式账本,这样就不用担心账本丢失或损坏的问题。

2、账本不能被篡改

多人记账的分布式账本同时也带来一个好处,就是账本不那么容易被篡改了,任何人想要修改的都是本地账本,在其他账本保存方不同意的情况下,改不了整体的账本,也就是说他的修改别人不认可。

3、证明你是你

分布式账本是一个匿名的虚拟化网络,由于货币的命感性,为了让人放心的加入到网络中一起使用数字货币,就需要证明你是你。

也就是说 A 账户只有 A 才有权利对其进行管理,A可以选择充值 / 转账或其他交易,但是在做这些交易的时候, A 必须证明这个账户是他的。

这不是个新问题,使用密码学的数字签名就可以解决,设计对应数字签名主要注意 2 点:

(1)A 签名过的交易,其他人可以验证

(2)其他人不能通过 A 的交易或者其他任何方式防造出 A 的签名交易

4、同一样一份货币资产,能且仅能花费 1 次,不能花费 2 次或多次

数字货币的基本安全性通过密码学和分布式账本保证,相比于纸币其好处是不会存在假币,当然也存在一定风险。

交易的时候,当纸币从 A 给到 B 时,整个交易结束。但数字货币不同, 比如 A 转账 5 个比特币给 B,当这比交易在网络中执行但还未确认完成时, A 可以选择再转账 5 个比特币给 C,对于系统来说,这两笔交易都是合法的因此会被传播到整个网络中,这个问题就是数字货币面临的 【双花攻击】 或者 【多花攻击】。

中本聪解决双花攻击的问题很简单,就是设计一个强时序性的数据结构。他把若干交易打包成一个块 block,对于双花攻击里面的两笔交易,打包到同一个块时会被检验出不合法,最终只有一笔交易会被打包到块,打包到块中的交易就是系统确认过的。

系统将先新产生的块挂到之前产生的块的后面,这样整体就形成了一个链表的数据结构。因此比特币数字货币系统就是在网络中不停的收集交易打包成块,然后挂在之前的块上。中本聪并未给这种结构命名,后来大家把它统一叫做 【blockchain】区块链。

通过前面的介绍,相信大家已经明白区块链的由来了, chain of blocks 只是一种数据结构,我们现在所说的区块链是虚拟数字货币背后技术的总称,它包括密码学、网络、数据结构、算法等各种技术。

【区块链实战】什么是区块链,为什么会产生区块链技术相关推荐

  1. 技术解析+代码实战,带你入门华为云政务区块链平台

    摘要:政务区块链平台是行业区块链平台的初步实践,未来在区块链技术的发展下,还会打造面向其他领域的链管平台,构建多方协同的分布式账本,让区块链应用更便捷高效的为产业服务. 本文分享自华为云社区<技 ...

  2. 关于合著《区块链实战》的 3 组关键词 | ArcBlock 博客

    作者: 陈俊(ArcBlock 副总裁) 2020 年 1 月 19 日,农历庚子春节前夕,当我将与 ArcBlock 区块基石创始人冒志鸿合著的<区块链实战:从技术创新到商业模式>初稿交 ...

  3. 区块链实战(一)实现简单的区块与区块链交易

    区块链实战 字节 字段 说明 4 版本 区块版本号,表示本区块遵守的验证规则 32 父区块头哈希值 前一区块的Merkle树根的哈希值,同样采取SHA256计算 32 Merkle根 该区块中交易的M ...

  4. 新书《区块链实战》中信出版:破除迷思 推动技术落地 | ArcBlock 新闻

    PR@arcblock.io ArcBlock区块基石 来自专辑 ArcBlock DevCon 由 ArcBlock 区块基石创始人兼 CEO 冒志鸿与副总裁陈俊合著的<区块链实战:从技术创新 ...

  5. 以太坊和区块链实战技术分析详解

    想知道更多关于区块链技术知识,请百度[链客区块链技术问答社区] 链客,有问必答!!以太坊和区块链 一.    以太坊和区块链的关系      从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技 ...

  6. 【区块链实战】区块链在哪些行业得到了应用

    目录 一.简介 二.知识点 区块链应用场景 数字金融:微众 FISCO BCOS 北京互联网法院: 天平链 食品安全: 京东智臻链 三.应用实例 1.微众 FISCO BCOS 2.北京互联网法院 天 ...

  7. 【区块链实战】什么是DAPP,区块链开发如何进行技术选型

    目录 一.简介 二.知识点 DAPP 公链 联盟链 区块链开发涉及的角色 Solidity 三.技术选型 1.DApp 架构分析 2.公链与联盟链 一.简介 区块链技术现在已经进入一个高速发展时期,作 ...

  8. FISCO-BCOS应用实战:区块链实战应用开发分享

    政务通--区块链助力政府办公 1.项目简介 ​ 区块链具有不可篡改性以及可追溯性,因此对于一些重要信息区块链更能够保障信息的安全.基于区块链的这两大特点,本篇将介绍如何将区块链应用于政府办公,实现协同 ...

  9. BTA 2018 区块链核心技术专场:12 位专家全方位剖析区块链核心技术原理与业务实践

    2018 年 3 月 31 日,由 CSDN.火星财经主办,中关村区块链产业联盟.柏链道捷.区块链大本营.TokenSky 联合主办的 2018 区块链技术及应用峰会(BTA)<2018 区块链 ...

  10. 【转】区块链是什么,如何简单易懂地介绍区块链?

    作者:知乎用户 链接:https://www.zhihu.com/question/37290469 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 友情提醒:比特币 ...

最新文章

  1. vue 项目配置sass
  2. seo笔记——搜索显示
  3. 用html写消费记录页面,支付流水记录.html
  4. Python从入门到入土-Python3 File(文件) 方法
  5. python 英语词频统计软件_Python数据挖掘——文本分析
  6. mysql 数据库授权(给某个用户授权某个数据库)
  7. c语言 数据结构 list、queue、tree抽象数据类型的定义与实现 详尽代码和注释
  8. mysql数据库简单指令_Mysql数据库一些简单命令
  9. java io 高级,JavaSE - [10] 高级部分之IO流
  10. 《OpenGL超级宝典第五版》Windows + VS2019配置
  11. sqlyog企业版 v8.32注册码
  12. AI--调用百度OCR文字识别API进行图片文字识别
  13. NGUI Sprite的各种Type(Simple、Sliced、Tiled、Filed、Advanced)
  14. 拨号时显示无法连接服务器失败,拨号网络常见的错误提示解释及解决方法大全...
  15. 关于h5使用高德地图,没有获取经纬度
  16. 教你亲手制作一个虚拟数字人,超全步骤详解
  17. 由于找不到vcruntime140_1.dll无法继续执行代码,vcruntime140_1.dll丢失如何修复
  18. 剑侠三最新的服务器,《剑网三》新资讯:为何其它三个服务器拒绝与四合一合服?...
  19. 二手交易网站,校园二手交易系统,校园二手交易系统毕业设计
  20. Paintbrush for mac(绘图工具)

热门文章

  1. phpstudy运行时显示3306端口被占用
  2. Monitor(管程)是什么意思?Java中Monitor(管程)的介绍
  3. 免费视频格式转换软件,6大免费视频转换器推荐
  4. Xcode 12 GM发行说明,快来看看SwiftUI和Swift都更新哪些新技术吧
  5. 通讯录查询系统的设计与实现
  6. 如何在SpringBootOAuth服务器中实现双因素认证?第二部分:Under the Hood
  7. 信息竞赛:DEV C++常用技巧
  8. k8s UAT改环境
  9. 浅谈数仓建模及其方法论
  10. Omics精进04|临床Gene Panel检测-实验生物信息学分析