区块链入门相关知识思维导图

区块链、以太坊专题链接直达

区块链入门
精通以太坊-1~3章-思维导图
精通以太坊-4~6章-思维导图
精通以太坊-7~9章-思维导图
精通以太坊-10~14章-思维导图

区块链

主要学习对象是《白话区块链》,“以太坊官网”
由于刚开始接触,很多都是自己片面的理解,有待完善

更新:06-01

增加"区块链->技术栈"分支
增加"区块链->阶段架构"分支

更新:06-11

增加《白话区块链》阅读笔记
在这里插入图片描述

附:文本结构

区块链
	比特币
		中本聪发明的数字货币
		白皮书
			《比特币:一种点对点的电子现金系统》
				1、抛出问题
					如何不通过所谓权威的第三方机构(如银行),来建立一个可信的交易网络呢?
				2、交易
					描述了一种通过密码学技术进行交易验证的方式,其实是计算机密码学的其中一个应用,密码学可以说是比特币系统的骨骼,贯穿了各个环节
				3、时间戳服务器
					通过时间戳运算链接各个区块,也就是区块链概念的来源,同时也说明了比特币数据的存储方式
				4、工作量证明
					介绍了一种点对点网络中如何对各自的数据进行一致性确认的算法,工作量就是CPU算力消耗
				5、网络
					介绍了交易确认的过程,不依靠中心服务器,如何在一个个节点中确认一笔笔交易过程呢?
				6、激励
					消耗算力奖励比特币,还有交易手续费
				7、回收硬盘空间
					全量数据是很庞大的,只有全功能节点才需要保持全量数据,白皮书提出一种思路(删除过老的交易数据,但不破坏区块哈希头)
				8、简化的支付确认
					一些功能不需要大量数据,比如在比特币支付功能,只需要保留体积相对较小的区块哈希头即可
				9、价值的组合与分割
					介绍了如何组合和分割比特币,以实现不同面值的交易
				10、隐私
					暴露的只有一个ID(地址),谁也不知道这个ID代表的是谁
				11、计算
					从概率统计学计算了被攻击成功的概率
		用到的非对称加密算法
			ECC
				椭圆曲线算法
		地址生成路径
			随机数发生器生成一个私钥
				ECC生成公钥
					对公钥进行两次哈希(SHA256+RIPEMD160)
						比特币地址
	比特币的核心思想
	技术特点
		分布式存储
		匿名性
		自动网络共识
		价值传递
		可编程合约
		不可篡改
	技术栈
		区块链账本
			区块
				区块头
					哈希头(区块的ID)
					梅克尔根(与区块中众多的交易事务关联)
				区块体
			链
				每个区块包含:前一个区块头哈希(即上一个区块ID),由此相连
		共识算法
			筛选出最具代表性的节点
				指标
					PoW
						Proof of Work
							工作量证明
					PoS
						Proof of Stake
							权益证明
					DPoS
						Delegate Proof of Stake
							委托权益证明
					PBFT
						Practical Byzantine Fault Tolerance
							实用拜占庭容错算法
			使各个节点的账本保持一致
		网络路由
			节点发现协议
				发现邻居、介绍邻居、重启可寻找上次连接成功的邻居
			通过临近节点同步数据,保持最新
			也可提供给临近节点数据
		密码算法
			哈希头
				区块ID
				起链的指针作用
				防止数据篡改
			梅克尔根
				约束整个区块的事务,防篡改
			创建账户地址
				账户地址含有公钥信息,只有账户拥有者才能解密
			签名交易事务
				私钥签名
		脚本系统
			可以实现各种业务功能
				订单
				众筹账户
				物流信息
				供应链信息
	阶段架构
		1.0
			比特币、莱特币
				竞争
				打包
				广播
				奖励(发币)
			纯数字货币
			比特币+简单堆栈指令
		2.0
			以太坊代表的
				相比于1.0时代,最大特点是支持智能合约,智能合约运行在EVM上
			支持自定义智能合约的系统
			具有图灵完备性
			以太坊+合约编程语言
		3.0
			超级账本:Hyperledger
				分布式账本框架
				用户数据库
				智能合约引擎
				图形界面
				不发币,但可以通过智能合约开发发行数字货币
				函数库:go语言库
				......
			应用领域更广
			面向企业
			需要入会费
			会员分级
			组织内权限分层
	超级账本和以太坊的区别
		超级账本
			函数库丰富,支持go语言库
			直接在所有节点部署
			智能合约可以非常复杂
			基于Docker
			可以与外部系统交互
			计时终止
		以太坊
			少量库函数
			当成交易发布
			智能合约不能复杂,编译成字节码发布,需要全网同步
			基于EVM
			不可以与外部系统交互
			按gas记步终止运行
	分类
		按网络类型
			公有链
			私有链
			联盟链
		按部署环境
			主链
			测试链
		按对接类型
			单链
			侧链
			互联链
	挖矿
		生成新的区块hash头的过程
			新区块hash头的生成
				上一个区块的hash头
				当下的一批交易生成的hash值
					由默克树算法得到
						每个交易都为叶子结点
						按顺序排列
						俩俩归并
						直到归并为一个根结点
						最终只需记录这个根结点即可
				时间戳随机数
					挖矿就是寻找此随机数的过程
			Hash头需要达到目标难度值的要求
		抢夺区块打包权
		验证交易事务
		奖励发行新币
		广播新区块
	存在的问题
		分叉
			软分叉
				老版本能接纳新版本的分叉
			硬分叉
				新老版本互相不认可,产生了全新的分叉(另一个区块链应用)
			临时性分叉
				多个矿工同时打包了区块
					需要经过更多出块后,以最长的链为准
					由此产生了分割攻击
						将一批节点与主网分割出来,在局域网中出更多的块后,再加入到主网中,可能主网会因此被篡改成攻击者的版本
				解决
					以最长链为准
					因此建议一笔交易至少经过六个区块后才能确认是否成功
		51%攻击
			占据打包权
				修改自己的交易记录
				阻止区块确认部分或全部交易
				阻止其他矿工开采到区块
					
			改进
				需要新的更好的共识算法
		Spv轻钱包
			方便了使用
			但把主要检查工作交给了其他完整节点
		私钥丢失
			无解
			比特币系统有价值数十亿甚至更多的无主币
			保管
				备份
				助记词
				转账给其他私钥,将鸡蛋放在更多的篮子里
		重放攻击:交易延展性
			攻击者可用来阻止交易进入区块
		智能合约漏洞
			TheDAO事件
				一个智能合约的应用
				众筹项目
				该项目中的以太币被攻击者一一转移出去
				以此产生了硬分叉:ETH
					老版本叫:ETC
					新版本支持者认为攻击者违法
					老版本支持者认为区块链的数据不应被篡改(攻击发生了就发生了)
			Parity多重签名漏洞
				攻击者越权调用合约函数,将合约中的资产转入自己的账户
		网络拥堵
			十分钟出一个块,不超过1Mb
			但是在内存中排队的远不止1Mb
			因此很多事务是要排队很久的
			而费用越高越优先的规则,让普通用户难以承受
		容量爆炸
			不断增长的区块数据
			短短三年,以太坊就有200GB数据,在不远的将来,普通硬盘就负担不起全量数据了
			后果
				全节点会越来越少
				验证缓慢
			解决思路
				剔除老交易数据
				使用去中心化的自治存储系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值