区块链基础知识



title: 区块链基础知识
date: 2019-12-31 21:18:44
tags: 区块链
categorys: 区块链学习



由于毕设要做关于区块链的题目,也挺烦兴趣。就在最近借了基本书,来补一下基础知识。

选的书

  1. 区块链技术原理及底层架构 北京航空航天大学出版社 陈东敏,郭峰,广红。
  2. 区块链 重塑新金融 清华大学出版社 赵增奎 宋俊典 等
  3. Node.js区块链开发 机械工业出版社 朱志文

区块链技术原理及底层架构

? 区块链起源于比特币,2008年11月1日,一位自称中本聪(Satoshi Nakamoto)的人发表了《比特币:一种点对点的电子现金系统》一文 [4] ,阐述了基于P2P网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。两个月后理论步入实践,2009年1月3日第一个序号为0的创世区块诞生。几天后2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着区块链的诞生 [5] 。

? 近年来,世界对比特币的态度起起落落,但作为比特币底层技术之一的区块链技术日益受到重视。在比特币形成过程中,区块是一个一个的存储单元,记录了一定时间内各个区块节点全部的交流信息。各个区块之间通过随机散列(也称哈希算法)实现链接,后一个区块包含前一个区块的哈希值,随着信息交流的扩大,一个区块与一个区块相继接续,形成的结果就叫区块链

摘自百度百科

目前已知的区块链技术应用大致分为三类:

  1. 公共区块链
  2. 联盟区块链
  3. 私有区块链

区块链的架构

  • 根据《自动化学报》的《区块链技术发展现状与展望》。分为六层:数据层,网络层,公示层,激励层,合约层和应用层。
  • 书中总结为四层: 数据层,网络通信层,共识验证层,业务应用层。

区块链的特点:

  • 去中心化
  • 时序数据
  • 集体维护
  • 可编程
  • 安全可信
  • 匿名性

区块链的工作流程

  • 第一步: 发送结点将新的数据记录向全网进行广播
  • 第二步: 接收节点对收到的数据记录信息进行校验,比如记录信息是否合法,通过检验后,数据记录将被纳入一个区块中
  • 第三步: 全网所有接收节点对区块执行共识算法
  • 第四步: 区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接收该区块,二表示接收的方法就是将该区块的随机散列值视为最新的区块散列值,新区块的制造将以该区块链为基础继续进行延长。

区块链的核心技术

  • 核心技术 1: 区块 + 链
  • 核心技术 2:开源的、去中心化的协议
  • 核心技术 3: 非对称加密算法
  • 核心技术 4 : 脚本
  • 核心技术5 : 共识算法

区块链的关键概念

  • Hash算法
  • 非对称加密
  • RSA
  • ECC
  • 多重签名

职能合约

  • 数据透明
  • 不可篡改
  • 永久运行

共识机制

  • Raft协议
  • Proof of Work,PoW机制
  • Proof of Work + Proof of Stake, Pow+Pos机制
  • Proof of Stack,PoS机制
  • Delegated Proof of Stake,DPoS机制

原文地址:https://www.cnblogs.com/miria-486/p/12129286.html

时间: 2024-08-02 01:48:28

区块链基础知识的相关文章

1.2 区块链基础知识

1.2.1  区块链相关术语 区块链板块主要更新一些专业技术.相关算法 及 技术实现. 其中一些的相关基础知识就不再做赘述了.  但是 我给大家搜集整理了一下  相关术语,想入门但对这个方向还是不是很了解的小伙伴,可以看一下下面的这个: <区块链行业字典> 1.2.2  区块链始祖--比特币技术 来自中本聪的比特币白皮书:<一种点对点的电子现金系统>中文版 1.2.3  区块链特性 去中心化:因为它是分布式存储的,所以不存在中心点,也可以说各个节点都是中心点,生活中应用就是不需要第

区块链基础语言(五)——Go语言结构

一.第一个Go程序 我们第一个Go程序以最简单的Hello world作为开始.所有Go语言程序文件的文件名都以“.go”结尾,该程序可以命名为:helloWorld.go. 二.程序结构分析 Go语言程序一般由关键字.包.常量.变量.运算符.符号.类型和函数组成.在这个程序仅涉及到关键字.包.符号和函数,以下对这些内容做简要介绍.这些内容的详细介绍以及常量.变量.运算符.类型等知识点在后面章节逐一展开. 2.1 关键字 关键字只能在特定的语法结构中使用,不能用于自定义名字.在Go语言程序里,有

区块链基础语言(六)——Go语言数据类型

一.类型分类 数据类型分为基本类型和复合类型.基本类型包含:布尔型.数值型(整数型.浮点型.复数型).字符串型.函数型.函数型在函数章节再介绍. 复合类型包含:指针.数组.切片.字典.结构体.通道.接口.复合类型在后面章节再逐一介绍. 二.基本类型 在计算机信息技术中,字节是计量存储容量的一种计量单位,通常情况一字节有八位二进制数.而每个类型的值至少占一个字节的内存空间.在Go语言中,当一个变量或者新值被创建时,如果没有为其明确指定初始值,则Go语言会自动针对此类型取默认值,此默认值就是零值.

区块链基础语言(七)——Go语言变量

一.变量名 1.1 命名规则 为提升代码可读性和可维护性,多采用统一的.可读性高的命名方式.Go语言变量名由一个或多个字母.数字.下划线组成的序列,但第一个字符必须是字母或下划线,不能是数字,且区分大小写.例如:1a不能作为变量名,myname和myName是不同的变量名. 1.2 命名风格 命名风格有多种,常见的有驼峰式命名和下划线命名,而Go语言拥护驼峰命名法,排斥下划线法.驼峰命名法分为两种: ? 大驼峰式命名:用大写字母分隔语义,首写字母大写,例如HelloWorld: ? 小驼峰式命名

区块链基础语言(四)——Go语言工程管理

一.工作区‍ 在<Go语言开发环境搭建>中已经讲述了GOPATH的设置.GOPATH就是自定义的工作区目录,该目录包含3个子目录: src目录 存放源代码(比如以.go..c..h..s结尾的源代码文件) pkg目录 存放编译后生成的文件,即由go install命令构建安装后的代码包(包含Go库源码文件)的“.a”归档文件 bin目录 存放编译后生成的可执行文件,即通过go install命令完成安装后,保存由Go命令源码文件生成的可执行文件. 加到GOPATH,但此时需要用分隔符分隔.Wi

从零开始创建自己的区块链应用(JAVA版)

阅读对象 本文阅读对象,主要是希望和即将从事区块链开发的项目架构师,开发工程师,项目设计或产品设计师.要求阅读者具备一定的"区块链"基础知识.概念和以及相关的技术知识. 如果你只需要对区块链应用做一个更深更直观的了解,通过本文的例子更清晰了解区块链是怎么回事,大概是怎么开发出来的,怎么使用,那么知道一些区块链相关知识即可. 如果你是一个想从事这方面工作的人,尤其是从事开发和架构的技术人员,那么需要的技术知识就相当的多了,无法一一列举,大概一个高级网络开发工程师和中级以上的架构师水平,是

从概念到底层技术,一文看懂区块链架构设计

转自:http://www.8btc.com/ebook-blockchain https://blog.csdn.net/lucky_greenegg/article/details/52821924 前言 区块链作为一种架构设计的实现,与基础语言或平台等差别较大.区块链是加密货币背后的技术,是当下与VR虚拟现实等比肩的热门技术之一,本身不是新技术,类似Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现. 无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链产

认识一下区块链

兴趣所致入门摸一下炽手可热区块链领域,整理一下概念. 我从一个哈希函数的概念入手f(x) = y一个接受输入值的函数,哈希函数需要输入数据/数字/文件等输出一个通常为16进制的哈希值 哈希函数不可逆,无法通过输出确定输入,除非遭受暴力攻击(尝试所有可能的输入) 这就关乎到下面BlockChain的加密算法了 区块链概念 一种去中心化的分布式账本数据库,数据存储的每个节点都同步赋值整个账本 可帮助多个节点达成共识去记录和token相关的事情 可帮助所有人无门槛构建属于自己的小经济系统 区块链特性

区块链DAPP 开发入门 代码实现 场景应用

第一章 智能合约概述 智能合约是运行在区块链公链上的一种代码. 可以将区块链公链理解成操作系统,智能合约虚拟机则是编程语言编译之后的代码运行环境. 1. 区块链 1.1 区块链基础知识 区块链通常被理解为超级账本,账户与账户直接可以通过交易来完成转账,但这种转账区别于传统银行. (1)这是一个完全去中心化的金融系统.因为整个系统中没有这样的中心化部门来管理账户信息.使用者只需要根据一种[非对称加密算法]来生成一个密钥对,其公钥作为账户地址,也就是常说的[区块链钱包地址],这个地址可以在网络中传播