zoukankan      html  css  js  c++  java
  • 002/区块链核心概念与原理详解(Mooc)

    1。课程介绍

    (一)。区块链前世今生

    密码朋克--神秘组织(邮件组)

    2。区块链核心概念与原理

    (一)比特币是数字货币

    为什么叫区块链?

    因为比特币系统里面的数据是一个个的区块来存储,并且通过hash方式将一个个区块链接起来。这样就形成了一个区块的链条叫区块链。

       

    什么是比特币?

    一串数字可以用于货币交换叫数字货币或虚拟货币--比特币

    比特币就是一个虚拟货币,它的价值来源于大家的信任。在区块链中通常称为共识。(大家认为它有价值就认为它是货币)

    信任由何而来?

    【1】。财产只受自己控制。(比特币系统中,财产只受自己的私钥控制)

    【2】。无通胀 (不会因银行发行更多钞票而乏值)

    【3】。没有假钞(任何作弊的支付都无法得到比特币网络中其他矿工的确认,无法完成支付,就无假钞)

    【4】。流通性好 (点对点,省去中间环节)

    (二)。去中心化记账系统

     

    (三)。比特币原理

    【1】账本如何验证

    如下为一个原始账本,每人每台电脑上都存储一份,当有人修改记录时,账本不一致。需要少数服从多数原则一一比对。当用户量大的时候,麻烦。

    比特币如何进行账本验证--哈希函数

    Hash函数:hash(原始信息)=摘要信息

    上述信息形成一个区块:

    注:第二个账本比第一个账本推迟10min(比特币每10min更新)

    摘要信息=hash [(上一个区块摘要信息--hash值)+(交易记录) ] 

    【2】所有权问题

    账户所有权问题--比特币系统里是如何确定某个账户的比特币是属于谁的?

    【银行】

    【比特币系统】

    比特币系统是点对点的交易,如何保证在没有第三方的情况下来确定账户所有权。

    (1)。比特币是用一个地址来表示一个账号 (账本上不保存任何的个人信息)

    谁能够用该地址进行支付,谁就拥有该账户的所有权。

    (2)。一个地址会有一个对应的私钥。(私钥若丢失或泄露,则比特币数据会丢失。)

    谁拥有这个私钥,谁就可以用这个地址进行支付。

    比特币系统:账号 & 密码是没有关系的,不能用账号推算到密码,也不能反推。

    比特币地址和私钥它是一个非对称关系。(私钥是经过一系列hash计算而成。)

    如何在不进行泄露私钥的情况下,证明我们拥有某个地址的私钥?--非对称加密技术(交易签名)

    签名分二步:

    【1】。先对原始信息进行hash运算,得到摘要信息

    【2】。运用摘要信息与私钥进行签名运算,得到签名信息

    摘要信息  /  私钥信息  /  签名信息

    在进行签名运算后,付款节点会在整个网络里进行广播,广播内容包括:交易原始信息 和 交易的签名信息

    当各个节点通过验证后,会向附近的节点再次进行广播--验证通过。

    验证点:

    【1】。签名信息 :是否为付款方用私钥对原始的信息签名产生的。

    签名:是加密过程  

    验证:解密过程

    【3】为什么记账?(挖矿)

    A。记账: Hash打包过程  (把交易的记录,交易时间,序号等进行hash打包的过程)

    该hash打包过程是【消耗资源】的,那为什么各节点还要参与记账?

    因为在比特币设计里完成记账的节点是可以获得比特币系统里一部分比特币奖励。(该奖励也是比特币发行过程)

    记账有奖励,每次记账是新发行一定数量的比特币到记账的账户。(当前是12.5个比特币,1比特币=4万人民币以上)

    因该奖励。大家争相的去记账,因此,会出现记账不一致问题。所以要有一定规则约束大家记账。

    【4】以谁的账本为准?(共识机制)

    必须其他接点认同,打包的区块才能够入链,否则即使打包了,也入不了链。

    分叉解决方案:采用工作量最大的链作为主链。(工作量证明+最长链的选择)

    3。课程总结与实践

    视频地址:https://www.imooc.com/learn/988

  • 相关阅读:
    webservice呈现调用导致呈现当机.
    【ES6】Promise用法
    腾讯地图JavaScript API调用
    【微信小程序】微信开发者工具快捷键汇总
    【微信小程序】小程序模拟调用本地json接口数据
    【微信小程序】小程序系统API
    【git和GitHub】分布式版本控制Git和代码远程仓库GitHub
    【微信小程序】组件化开发
    【微信小程序】小程序开发注意事项
    【微信小程序】引入外部js 方法
  • 原文地址:https://www.cnblogs.com/kaixinyufeng/p/9252273.html
Copyright © 2011-2022 走看看