主页 > imtoken官网下载安装 > 区块链原理设计与应用-理论
区块链原理设计与应用-理论
问题一:什么是区块链?
比特币定义:区块链是一种用于记录比特币交易账户历史的数据结构。中本聪
维基百科:区块链类比是一种分布式数据库技术。 通过维护数据块的链式结构,可以维护持续增长和不可篡改的数据记录。
区块链的基本原理:
1.交易(transaction)如添加交易记录
2. 一段时间内的区块(block)交易和状态结果
3. Chain(链)Log 记录整个账本的状态变化
账本只能添加,不能删除
账本的底层结构是一个线性链表。
向账本添加新数据的过程?
要添加新数据,必须将其放入新块中。 这种快速(快速交易)是否合法可以通过计算哈希值来快速检查。
任何维护节点都可以提出新的合法区块,但必须经过一定的共识机制才能对最终选定的区块达成一致。
区块链如何运作?
以比特币为例:
1、比特币客户端发起一笔交易,广播到比特币网络并等待确认。网络中的节点会将收到的一些交易记录打包等待确认,以及
前一个区块头的hash值等信息形成一个候选块,试图找到一个nonce串(随机串)放入该块中,使得候选块的hash结果满足
一定条件下。 查找此 nonce 字符串需要一定的时间来进行计算尝试。
2. 节点计算出满足条件的nonce串,则认为是“合法的”比特币定义,然后在网络上广播,其他节点接收候选区块进行验证。 满足条件后,他们认可合法的新区块并将其添加到自己的区块中。
3. 当大多数节点将区块添加到它们的区块链结构中时,该区块被网络接受并且区块中的交易被确认。
任何人都可以加入比特币网络,恶意操作和篡改呢?
由于比特币网络中的大部分节点都在正常工作,并且默认只识别看到的最长链结构,只要网络中不超过一半的节点串通作恶,
那么最长的链就有很大概率成为最终的合法链。 随着时间的推移,这个概率会越来越大。 当然,如果大多数节点真的联合起来作恶,那得不偿失,得不偿失。
区块链进化?
智能合约
比特币、以太坊、超级账本
基于区块链的分布式账本的特点:
1.保持增长链
2.去中心化(多中心化)
3.隐私应用密码学
分类:
参与方:公有链、私有链、联盟链
用途及场景:币链、产权链、众筹链、万能链
大多数区块链实施:
网络层、共识层、智能合约、应用层等结构
联盟链会参考权限管理机制。
区块链关键问题和挑战?
1.不可否认和隐私保护,密码学
2.分布式共识、共识机制算法PoW、PBFT
3.交易性能,Fabric(每秒数百次)
4.可扩展性,放宽每个节点参与完整处理的限制
5、安全防护
6. 数据库和存储系统
七、整合运营
比特币和区块链的区别?
从应用的角度来看,比特币只是一种基于区块链技术的金融应用。 区块链还可以带来更通用的计算能力和商业价值。
区块链有什么优势?
区块链擅长的是在多方之间达成合约,并保证合约的顺利执行。
创建一个基本的网络基础设施以实现相互信任。
技术特点:
1.分布式容错
2.不可篡改
3.隐私保护
4. 值得信赖
5.降低成本
6. 增强的安全性
问:区块链解决什么问题?
网络之间的信任。
问题二:区块链的应用场景有哪些?
在不引入第三方中介机构的前提下比特币定义,区块链可以为去中心化、不可篡改、安全可靠提供保障。
因此,所有直接或间接依赖第三方担保机构的活动都可能受益于区块链技术。
区块链为产权确认申请提供包括所有权和时间戳在内的数字证据
可编程智能合约使注册在区块链上的资产能够获得现实世界中难以提供的流动性。 并且可以保证合约规则的透明性和不变性。
场景:
金融服务、信用信息和所有权管理、资源共享、物联网
云存储、医疗、通信和社交、投票、预测、视频游戏
分布式系统核心问题
一致性问题
一致性定义:对于分布式系统中的多个服务节点,给定一系列操作,在约定一致的保证下,视图使它们对处理结果达成一致
“某种程度”的认可。
问题与挑战
1、节点间通信不可靠、延迟、乱序内容错误等。
2.处理时间不一致
3、同步调用简化了设计,降低了可扩展性
解决思路:将可能导致不一致的并行操作序列化。
consensus 和 consensus 和有什么不一样?
一致性通常是指分布式系统中多个副本对外呈现的数据状态。
共识描述了分布式系统中多个节点就某个状态达成共识的过程。
共识算法
共识算法解决的是对一个提案(Proposal)达成共识的过程。
系统中多个节点最关键的是对多个事件的顺序达成共识,即排序。
常用算法:PBFT、PoW
解决拜占庭错误的算法:Paxos、Raft
共识遇到的问题和挑战?
故障错误,拜占庭错误。
CAP原则
定义:分布式计算系统不可能同时保证以下三个特性:一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)
在设计中往往需要弱化对某一特性的保证。
一致性(C):任何操作都应该是原子的,之前事件的结果可以在以后的时间看到。 请注意,这是指货币一致性;
可用性(A):在限定时间内,任何非故障节点都可以响应请求;
分区容忍度(P):网络可能被分区,即无法保证节点间的通信。
通常保证P
酸原则
Atomicity(原子性)、Consistency(一致性)、Isolation(隔离)、Duration(持久性)
基础原则
与酸
基本可用性、软状态、最终一致性
Paxos算法和Raft算法
密码学和安全技术
密码学和区块链基础知识:
哈希算法、数字摘要、加密算法、数字签名、数字证书、PKI体系、默克尔树、布隆过滤器、同态加密等。
用于解决区块链中信息的机密性、完整性、认证性和不可抵赖性
哈希定义
哈希(hash或hash)算法是一种很基础也很重要的计算机算法,它可以将任意长度的二进制明文串映射成较短的
(通常是固定长度的)二进制字符串(Hash值),不同的明文很难映射到同一个Hash值
优秀的Hash算法实现函数:
1、快进
2.逆向难度
3.输入敏感
4. 避免冲突
常见的哈希算法:
MD5和SHA系列算法
目前MD5和SHA1已经破解,一般建议至少使用SHA2-256或更安全的算法。
数字摘要是哈希算法最重要的用途。
哈希保护
哈希算法不是加密算法,不能用于保护信息。
盐算法
加解密算法
对称加密算法
算法:DES、3DES、AES、IDEA
优缺点:加解密效率和加密强度都很高,缺点是需要所有参与者提前持有密钥。
应用场景:对称加密算法适用于大量数据的加解密过程; 不能用于签名场景; 并且往往需要提前分发密钥。
非对称加密算法
公钥、私钥
优缺点:非对称加密算法的优点是公钥和私钥分离,也可以使用不安全的通道。 缺点是处理速度(尤其是密钥生成和解密过程)比较慢。
加密强度不如对称加密算法
算法:RSA、ElGamal
混合加密机制
消息认证码和数字签名
利用消息认证码和数字签名技术,通过对消息的摘要进行加密,可以防止消息被篡改和身份验证。
数字证书
功能:解决公钥伪造问题。 实现公钥的安全分发。
利用:
加密数字证书:保护用于加密信息的公钥
签名验证数字证书:保护用于解密签名以进行身份验证的公钥。
两种类型的公钥可以同时放在同一个证书中。
证书一般由证书颁发机构(Cerfification Authority,CA)颁发和认可。
证书信任链
PKI系统
在非对称加密中,公钥可以通过证书机制来保护。
PKI体系的核心是解决与证书生命周期相关的认证和管理问题。
基本组件:
CA(核心组件,主要完成证书信息的维护)、RA、证书数据库
证书颁发
证书吊销
默克尔树
默克尔(Merkel)树,也叫哈希树,是一种典型的二叉树。
Merkle树逐层记录哈希值,赋予它一些独特的属性。例如,底层数据的任何变化
, 会传递给它的父节点和子节点,沿着路径逐层传递到树根,这意味着树根的值实际上代表了所有底层数据的“数字摘要”。
应用场景:
1.快速比较大量数据
2.快速定位修改
3. 零知识证明
布隆过滤器
Bloom filter是一种基于Hash的高效搜索结构,可以快速返回到“一个元素是否在一个集合中”的问题。
应用场景:信息检索(Hbase)、缓存分解、垃圾邮件规则、注册管理等。
有假阳性,但绝对没有假阴性。
同态加密
词汇表
POW工作量证明(Proof of Work):比特币,一种基于算力寻找nonce字符串的共识机制
挖矿:计算新区块的过程
比特币案例
以太坊案例
Hyperledger - 企业分布式账本
由针对不同目的和场景的子项目组成:
Fabric、Sawtooth、Iroha、Blockchain Explorer、Cello、Indy、Composer、Burrow
Fabric:包括Fabric、Fabric CA、Fabric SDK(包括Node.js、Python和Java语言)和fabric-api等。
目标是区块链的基础核心平台,支持PBFT等新型共识机制,支持权限管理。