第一章 区块链技术入门

1.1区块链前世今生
1.1.1 密码朋克(Cypherpunk)
邮件组: 密码 数学 计算机技术 等
wiki解密创始人: 阿桑奇
BT下载作者     : 布莱姆-科恩
万维网创始人  : 蒂姆伯纳斯-李
智能合约概念的提出者: 尼克 萨博
Facebook创始人之一: 肖恩帕克
比特币的创始人: 中本聪  (比特币白皮书: 一个点对点的电子现金系统-去中心化)
1.1.2区块链: 一系列技术的集合
作用:存储信息。任何需要保存的信息都可以写入区块链,也可以从里面读取,就像一个数据库。
比特币系统里面的数据是以一个个的区块来存储的,并且通过hash的方式,把一个个区块链接起来形成一个区块的链条。
特点:
  • 无中心化 :没有管理员 无需添加额外审核
  • 分布式数据库
  • 能耗大,非常浪费资源
1.1.3 应用场景
资产: ICO 数字资产发行、支付、交易、结算
记账:股权交易、供应链金融、商业积分
不可篡改(区块链不可篡改的特点): 溯源、重酬、医疗证明、存在性证明
点对点特点: 共享经济 、 物联网 
隐私:匿名交易
1.2区块链前景
任何人都可以架设服务器,加入区块链网络成为其中一个节点。可以向任何一个节点,写入/当前数据,因为最后所有数据都会同步到区块链网络中保持一致。
1.3比特币是什么
1.3.1 比特币
比特币:数字货币 每10分钟记账一次
货币: 货币是可以承载价值的一般等价物
一般等价物: 任何可以作为具有交易价值的物品
金属货币—>银票—〉法币  ——》一串数字(虚拟货币)
数字货币: 共识 具有共识的虚拟货币
1.3.2 特点
信任性:财产只受自己控制 (私密钥匙)
无通胀性:不会因为发行过多而贬值  
比特币的总量不变性:2100万个 
无假钞 :
流通性: 流通性好,全球无缝流通。免去中间商和中心化直接点对点交易
去中心化记账系统:
中央服务器存储所有数据 !=》 存在比特币网络每一个节点里
1.4比特币原理
1.4.1 账本如何验证
Hash 
哈希函数: Hash(原始信息) = 摘要信息
Hash就是 计算机可以对任意内容,计算出一个长度相同的特征值。
区块链的长度:256位 ,原始信息不同对应的Hash值一定不可能相同!
解析: 原始信息 通过Hash操作之后,对任何的原始信息,得到一个简短的摘要信息
Hash特点:
  • 同样的原始信息用同一个哈希函数总能得到相同的摘要信息
  • 原始信息任何微小的变化都会哈希出面目全非的 摘要信息
  • 从摘要信息无法逆向推算出原始信息
  • 区块与Hash是一一对应的,每个区块的Hash都是针对 区块头 计算的
摘要信息保存起来形成了区块
区块
区块链由一个个区块block组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。
ex:区块头( 序号 、时间戳、Nonce值、Hash值、当前区块体的hash,上一个区块的Hash值等...) +区块体(交易记录)
Nonce值:记录Hash重算的次数。第100000个区块的NOce值是 274148111,即计算了2.74亿次,才得到一个有效的Hash值。
区块链计算公式:
           hash = SHA256(区块头)
hash值 由区块头唯一决定,SHA256是区块链的Hash算法
ps:若当前区块的内容变了,或者上一个区块的hash变了,一定会引起当前区块的Hash改变。
 重大意义: 如果有人修改了一个区块,该区块的hash值就变了,为了让后面的区块能继续链接到它,就必须同时修改后面所有的区块,否则被改掉的区块就脱离整个区块链。
    基于这类联动机制,区块链保证了自身的可靠性,数据一旦写入就无法被篡改。
两个账本的合并:把第一个账本的Hash值作为原始信息的一部分,与第二个账本的原始信息和在一起进行Hash运算操作。
对比第二个Hash值是否一致的验证。对上了说明第二个账本的信息和第一个摘要的信息都是正确的。
第二个账本:形容又一个 区块 (( 序号 、时间戳、Hash值) +交易记录)
区块链:每一个节点在核对数据的时候,只需要核对最后一个区块的摘要信息。信息能够核对上,说明整个区块链的账本是正确的。完成高效的账本验证。
1.4.2 所有权问题
账号: 地址表示
1.4.2.1 转账记录:
{ “付款地址”:“xxxxx”
“收款地址” :“yyyyy”
“金额” : “2 btc"
}
1.4.2.2 密码 —>私钥 
一个地址对应一个私钥
谁拥有这个私钥 ,谁就能用于支付。私钥泄露 比特币就会丢失。 
无法重新获取,账号和密码不能互相推导。
1.4.4.3 非对称加密技术(交易签名)
————不泄露私钥的情况下,证明  拥有某个地址的私钥
  • 对交易进行hash得到交易的摘要
  • 用私钥对摘要进行签名
1.4.4.4 签名过程:
  • 对原始信息进行Hash计算 得到摘要信息
用摘要信息和 私钥 进行 签名操作 sign  ——得到签名信息
付款节点:
循环广播交易内容:   交易的 原始信息、交易的签名 信息、交易的金额
  • 交易的节点 分发给 周围的节点,让周围的节点一起验证信息 ,整个广播循环操作
  • 相邻节点收到广播后,验证通过后,再次与之相邻的节点进行广播,进行验证操作。
与相邻的节点进行广播验证后:
验证签名的信息是否是付款方 用私钥对原始信息 签名产生的 
1.4.4.5 验证
验证运算 : 
原始交易 信息的摘要 一致 说明 是地址私钥所有者发出的 
验证通过 并写入账本  并再次广播
1.4.4.6 签名及验证
签名 和 验证 是逆运算
付款的地址 是 公钥 
签名的过程 是对摘要进行加密的过程: 通过摘要和私钥 得到签名信息
验证的过程 是解密的过程 :付款方地址和签名信息进行解密,  得到交易的摘要
ps: 账本 不包含任何个人信息 
1.4.3 为什么记账(挖矿)
记账 :Hash打包过程
记账 需要消耗资源,记账操作完成会获得系统12.5 btc的奖励
挖矿——工作量证明
1个比特币 相当于 4w+ 人民币 ,一次记账相当于能奖励 50W+ rmb
1.4.3.1 规则
  • 一段时间内 只可以有一个人可以记账成功 (10分钟左右)
  • 通过解决密码学难题(即工作量证明)竞争获得唯一记账权
  • 其他节点 复制记账结果
  • 使用一个常量 除以/难度系数 = 目标值 ; target = targetMax / difficulty。只有小于目标值饿Hash才是有效值 (难度系数越调越高目标值越来越小,导致采矿越来越难)
  • 难度系数动态调节机制; 即是如果每两周调节一次,发现生成速度比法定速度快10%则难度系数增加10% ,反之亦然
为了保证节点之间的同步,所以区块链的添加速度不能太快。    
1.4.3.2 工作量证明
Hash(上一个hash值,交易记录集) = 新的Hash值
提高难度:
Hash(上一个hash值,交易记录集,随机数) = 0000..开头新的Hash值【直到找到一个以若干个0开头hash值】
率先找到一个符合条件的hash值,就能获得一个唯一的记账权
交易记录集
  • 收集广播中还没有被记录账本的交易
  • 交易的有效性验证
  • 添加一笔给自己转账的交易(挖矿奖励12.5btc)
hash值是 16进制 字符串
得到一个0  的概率 是 1/16 
得到两个0  的概率 是 16*16 
得到 18个0 的概率 是 16的 18次方的 hash运算
1.4.4 以什么为基准--共识机制
思考: 两个节点同时完成工作量证明,使用谁的区块?
节点工作量只有在其他的节点认同其有效的 
1.4.4.1 区块链的分叉
上面提到的问题,如果两方同时向区块链写入数据,双方都链接着前一个区块,就形成分叉,这时采用哪个区块?
答:新节点总是采用最长的那条区块链。若分叉,参考哪个分支在分叉点后面,先达到6个新区块(“六次确认”。新区块的生成速度由计算能力决定,拥有大多数计算能力的那条分支,就是被选中的区块链比特链,没被选中的作为备选链。
1.4.4.2 共识机制
采用累计工作量最大的区块链 是主链 或是说难度最大的区块链
机制:
保证 区块链 比特币在最大的链上进行工作 
1.5 比特币其他
  • 比特币P2P网络
  • 区块结构Merkle树
  • 比特币UTXO及交易脚本(未发费的交易输出)
  • 比特币白皮书

转载于:https://www.cnblogs.com/cold-ice/p/9053723.html

区块链技术核心概念与原理相关推荐

  1. 区块链笔记 - 《区块链技术核心概念与原理讲解》

    说明:笔记内容来源于慕课网<区块链技术核心概念与原理讲解>视频课程.如有侵权,请联系删除. 目录 1.区块链前世今生 2.区块链前景 3.比特币是什么 4.比特币原理 4.1 账本如何验证 ...

  2. 区块链技术核心概念与原理讲解-Tiny熊

    转载自简书ceido:https://www.jianshu.com/u/fcdf49ef65bb (1)区块链前世今生 密码朋克(Cypherpunk):是一个邮件组,里面有许多大牛. 区块链不是单 ...

  3. 区块链入门与去中心化应用实战 之一 第3章 区块链技术核心原理实现

    第3章 区块链技术核心原理实现 建立项目,确定区块结构 实现区块类结构-添加交易 实现创建区块 实现工作量证明 添加节点通信功能 交易接口实现 挖矿接口实现 实现注册节点 实现共识机制

  4. 区块链技术研究综述:原理、进展与应用

    来源:区块链技术研究综述:原理.进展与应用     期刊:通信学报. #blockchain 相当于对区块链先进行一个系统的了解吧 区块链的层次化技术结构. #未解决的问题 上述文 献虽 然归纳得较为 ...

  5. 区块链学习 | 区块链的核心概念

    想要学习区块链的相关知识,区块链的核心概念--区块.哈希算法.公钥和私钥.时间戳等是必须要弄懂的.区块链由多个相连的区块构成,所以我们先从了解区块的概念开始! 一.区块 区块的结构图 先看上面的区块的 ...

  6. BlockChain:区块链技术基础概念综合理解——个人总结

    BlockChain:区块链技术基础概念综合理解--个人总结 目录 区块链的进阶与意义 1.区块链技术的进阶 2.区块链技术三大意义-传递价值.建立可信用环境.提高效率和降低成本 1.传递价值 2.建 ...

  7. BlockChain:区块链技术周边概念(Relevant Concepts of BlockChain)简介、入门、使用之详细攻略

    BlockChain:区块链技术周边概念(Relevant Concepts of BlockChain)简介.入门.使用之详细攻略 目录 设计思路 Relevant Concepts of Bloc ...

  8. 区块链技术的概念及作用

    区块链的概念 区块链(blockchain)是一种分布式数据库. 区块链的作用 区块链降低了经济系统运行的不确定性.区块链在交易中实现的功能包括: 1.身份管理 区块链可以管理市场行为人的身份,在用户 ...

  9. 区块链 技术 基本概念

    1.区块链 区块链(Blockchain)最早在 2008 年被提出,本质上是一 个去中心化的分布式账本(Distributed Ledger)技术. 交易(Transaction):指使区块链分布式 ...

最新文章

  1. 电脑怎样限制装软件 怎么限制软件运行
  2. 每日一皮:当我在重构时,总是有惊喜出现.......
  3. XenServer中LVM的性能
  4. git 命令使用技巧
  5. Vue组件多次点击报错Avoided redundant navigation to current location: “/profile“.
  6. 范醒哲:5G时代是时候全面解决TCP的效率问题了
  7. 初中生问题:求任意凸多边形的交叉面积
  8. python学习环境+开发环境的选择和配置
  9. 我的iOS学习历程 - UISegmentedControl
  10. 阿里CTO张建锋:明年双11将大规模应用含光AI芯片
  11. php 分类排序,php将地区分类排序的算法
  12. 刷题-字符串-Java
  13. Windows下安装配置ant
  14. C语言 JSON 解析库 - MJSON使用介绍
  15. 【JZOJ3347】树的难题
  16. spring加载classpath与classpath*的区别别
  17. CentOS使用NTFS-3G加载NTFS硬盘
  18. python捕获特定类型异常的保留字_python异常处理结构中用来捕获特定类型异常的保留字是_以下选项中Python用于异常处理结构中用来捕获特定类型的异常的保留字是......
  19. 快递首富顺丰王卫的下一站:对抗阿里
  20. 如何通过计算机侵入学校网络,如何进行局域网入侵

热门文章

  1. 服务器 日志打印 中文变乱码
  2. 2010年春节夫妻团游云南(昆明 大理 丽江
  3. 发布基于jQuery的灯箱广告插件momoSlideShow
  4. Jquery 客户端生成验证码
  5. 网站架构之用户的自留地,个人空间及其管理后台的架构。
  6. 泛圈科技:YottaChain芝麻云服务器打响区块链之战
  7. C++ SGI STL
  8. 感悟人生 - 佛家经典语录
  9. html页面标题闪光字体,HTML最简单的文字闪烁代码
  10. 点击按钮给网页换皮肤简单js实现