一、区块链的起源,常用术语,概况介绍
二、Bitcoin的原理,关键源代码分析
三、对Bitcoin的改进,共识算法
四、Hyperledger的架构,部署,以及编程
五、Ethereum的概念,生态
六、基于Ethereum的开发实战
七、Bitcoin,Hyperledger与Ethereum的对比
一、什么是区块链
1.起源于Bitcoin
2.分布式账本
3.去中心化的存储
4.去除第三方,解决信任问题
1.起源
2008年,署名为“中本聪”的作者在讨论加密的邮件列表中,发表论文 A PeertoPeer eLectronic Cash System。2009年1月,Bitcoin诞生,代码开源
2.总量
Bitcoin的总量为固定的21000000个,大约在2140年之前全部挖完。每个Bitcoin都被分割成100000000份(每一份被称作一个satoshi)。截止2018年1月,约80%的Bitcoin将被挖完
3.交易
所有交易的记录都是公开可查的(https://blockchain.info/),但是交易者可保持匿名。交易一旦发生则不可撤销
4.目的:去除第三方
(1)去除第三方的好处
a.降低支付成本
b.减少支付方信息泄露
(2)如何去除第三方
a.将用户A和用户B的交易记录在网络中
b.让网络内的所有用户都能见证这笔交易,并且这笔交易可查
(3)区块链的结构
单向链表:单向链表由每笔交易信息组成,即:交易1—》交易2—》交易3—》....—》交易n
5.交易的过程
A想要给B发钱——》该交易被包含在一个区块中——》该交易被广播到全网——》其他节点检验该交易的有效性——》该区块被连接到区块链——》钱从A转移到B
二、Bitcoin需要解决的问题
1.谁负责生成区块?
a.如果能够成功找到符合条件的下一个区块,则可以获取一定数量(初始为50个,经过2次折半后当前数额为12.5个)的Bitcoin作为奖励
b.根据已有的信息,通过不停的尝试计算哈希值,直到满足当前难度
c.生成区块的过程,称作“挖矿”。挖矿者被称为“矿工”
2.分叉
a.当某个矿工发现符合条件的区块,则向其他节点广播,由其他节点校验其正确性
b.如果其他矿工在一定时间内发现了不同的解,向其他节点广播后,也可以通过校验。通过某种策略,区块链总是沿着最长的链条继续增长
“比特币就是对 #参与解决某个哈希难题# 的节点的奖励”
3.矿机
挖矿速度:矿机的挖矿速度用哈希/秒(H/s)来衡量,KH/s,MH/s,GH/s,TH/s
AMD GPU7970*7 :挖矿速度:~4900MH/S 消耗功率:~2100W
Antminer S9 bitcoin miner: 挖矿速度:13TH/s 功率:~1274W
4.Bitcoin带来的新问题(PoW vs PoS)
(1)PoW 工作证明模式(Proof of Work):所有矿工为找到下一个合法节点持续做无谓的计算资源消耗
》PoW也被成为挖矿,例如Bitcoin中不断尝试哈希值的过程,实质是话费较昂贵的计算资源
》在寻找下一个区块的过程中,奖励总是给第一个解决数学难题的矿工
》矿工为解决数学难题,不断改进矿机,增大算力,提高成为第一个找到下一个区块者的概率
(2)PoS 权益证明模式(Proof of Stake):持有货币最多的用户负责生成下一个节点
》在PoS模式中,根据代币的持有数量,产生下一个区块的创建者具有某种程度的确定性
》PoS系统并没有区块奖励。因此矿工只拿到交易费
》PoS模式的代币产生基本不需要消耗算力,效率比PoW高得多
5.Bitcoin的定义(首字母大写代表该P2P网络,首字母小写代表比特币本身)
》Bitcoin是一个维护基于密码学的,数字资产的公开分布式账本的P2P网络。
》该账本的正确性和安全性由矿工组成的子网保证,并由矿工负责审核和记录所有的交易,以获取bitcoin作为奖励
三、区块链设计的核心技术
1.分布式、P2P网络
》分布式环境中,需要解决节点之间的共识问题,公有区块链这个问题尤为突出
》P2P网络的通信协议,与中心化服务的Clinet/Server不同
2.密码学
》非对称式加密完成交易中的电子签名,身份识别等
》哈希算法、共识算法等完成信息校验,工作量证明
3.编程/工具
》涉及多种编程语言,如Bitcoin(C++),Hyperledger(go),Ethereum(C++/go/Rust),Corda(Java/Kotlin)
》涉及云计算,Docker,Linux等等
4.区块链与BitTorrent
(1)相似点
#Peer to Peer
》区块链和Torrent网络都依赖于点对点传输
》区块链和Torrent网络都是去中心化,无需中央服务器
#加密
》区块链和BitTorrent都会对将要分散出去的信息进行加密,以及通过哈希算法校验
#分布式
》区块链将交易信息分布式化,而Torrent网络则是将特定文件分布式化
(2)区别
#传输内容
》区块链传输交易信息,而BitTorrent传输文件
》电子加密货币是虚拟的,而文件是数据实体
#确定性
》区块链传输的交易信息动态生成,具有很强的不确定性
》BitTorrent传输的文件可复制,内容不会改变
#用途
》区块链用于记录,BitTorrent用于传输
5155

被折叠的 条评论
为什么被折叠?



