https://www.bilibili.com/video/av45247943

假如有ABCD四个比特币交易者,其中A交易给B者10个比特币(BTC),而这条信息要广播给其他所有的交易者知道.

假设这种交易一直在进行,而区块链的一个"块"大概有4000条这样的交易信息.(账单),大概大小为1M.

这个账单呢会将它打包,打包为一个区块.(为什么要去打包,谁来打包?) ,因为区块链的去中心化,不能像国家银行那样有统一中心化管理,所以为了获得这个打包的权利,会有一道"算法题"出现,哪个交易者破解了该题,就获取了打包的权利,并且获取了比特币设计的奖励(即比特币),俗称"挖矿成功"了. 所以矿工(交易者)去挖矿(赚取BTC)的源头在于打包权利获取的系统奖励和交易者扣除的手续费.

1. 以谁为准?(网络延迟造成每个交易者收到的广播顺序可能不是相同的,以谁的为准去记录区块呢?)

中本聪提出工作量证明(挖矿),每一个参与的用户都要去做一个很难的数学题,这个很难的数学题你把它做出来了,就获得了打包的权利.

你进了打包了,就会获得手续费以及打包奖励.

2. 为何要记账?(凭什么你广播给我,我就要收着呢,凭什么我要用自己的计算资源(电脑,GPU,矿机)去记录一个与我无关的账目呢?)

记账有奖励:

(1)手续费的收益. A支付给B,10个比特币,10要额外花费一些支付用于给打包者手续费.

(2)打包的奖励. 根据中本聪的设计,打包会提供50个比特币的奖励,并每四年减半,也就是总的比特币的数量为:

50个×6(一个小时有6个10分钟,因为打包为10分钟一次)×24小时×365天×4年×(1+1/2+(1/2)二次幂+(1/2)三次幂+........(因为减半)) ≈ 2100万 个 比特币

3. 如何防伪?(防止篡改的区块交易信息)

4. 如何防止双重支付?

5. 如何进行保密?(信息都是公开的,别人会知道你有多少钱了吗?)

6. 要怎样的工作量证明?

之所以需要矿机或者上万台的专业挖矿机去计算这个算法问题,是因为这个问题与密码破解是有一样的难度的,我也在想这是不是也有可能是有一部分黑客在挖矿的过程中,

同时利用这样的矿机进行了密码暴力破解同时制造了比特币勒索病毒.

(李永乐):假设求解的问题为某字符串解释为sha256后,规定的其前面的二进制的数位为0000000111,要确定每位去碰撞到那个数值,概率均为1/2,那么难度总系数为(1/2)^n.

(中本聪):需要每10分钟出一个块,怎么去保证呢,就是调整李永乐说的调整n的难度.让接入区块链的计算能力与n实现与规定时间的均衡.

假设世界上有1万台矿机,每个矿机的运算能力在14T/s,(即1秒钟执行14T次哈希运算),1T是10的12次方,即1.4×10^13/s

10分钟出现一个区块(根据中本聪设计), 10分钟为 600秒

计算次数 1.4×10^13(每台矿机1秒的计算能力) × 600s(10分钟,区块出现世界) × 10^4 (1万台矿机) = 8×10^19次 (假设全世界1万台矿机,在这个10分钟里计算的次数)

根据设定10分钟内"打包权利的计算题"的难度n,来调整总计算量与求解出的时间配置.

了解区块链&比特币的更多相关文章

  1. 许式伟看 Facebook 发币(上): 区块链, 比特币与 Libra 币

    你好,我是七牛云许式伟. Facebook(脸书)于6月18日发布了其加密数字货币项目白皮书.该数字货币被命名为 Libra(天秤座),象征着平衡与公正.此前,BBC 报道说这个数字货币叫 Globa ...

  2. 大话区块链【Blockchain】

    最近这几天区块链又粉墨登场了,新闻媒体也一直在大量报道,宣称可能要在金融界掀起一番浪潮.甚至有人说很久之前中国就出现了区块链的产物——麻将.那么区块链到底是什么,麻将和区块链又有什么关系呢? 笔者这两 ...

  3. 区块链 - 默克尔树(Merkle Tree)

    章节 区块链 – 介绍 区块链 – 发展历史 区块链 – 比特币 区块链 – 应用发展阶段 区块链 – 非对称加密 区块链 – 哈希(Hash) 区块链 – 挖矿 区块链 – 链接区块 区块链 – 工 ...

  4. 区块链 - 哈希(Hash)

    章节 区块链 – 介绍 区块链 – 发展历史 区块链 – 比特币 区块链 – 应用发展阶段 区块链 – 非对称加密 区块链 – 哈希(Hash) 区块链 – 挖矿 区块链 – 链接区块 区块链 – 工 ...

  5. 区块链是伟大的,比特币则不然。《FinTech,金融科技时代的来临》。3星。

    本书讲技术给金融业带来的变革和可能的趋势.作者认为区块链是伟大的发明,因为他可以让金融交易免费且实时地进行.比特币则可能会被其他区块链技术取代.书中有至少一半的内容涉及到了区块链和比特币.总体评价3星 ...

  6. iFace安全专家揭秘:存放在区块链钱包中的比特币,其实已经早就不属于你……

    自MoreToken钱包跑路之后,2019年3月以来陆续多个钱包.交易所跑路,造成了大量用户账户被盗,仅MoreToken钱包用户损失总价值就达12.2亿人民币,用户损失惨重.为什么这么多钱包.交易所 ...

  7. 在区块链上表白——使用C#将一句话放入比特币的区块链上

    最近在看区块链和比特币的知识,顺便简单研究了一下BitCoin的脚本语言,发现OP_RETURN这个命令可以在后面放入自己想说的内容,很多侧链啊,公证之类就是利用了这个特性,可以把一句话,或者一个哈希 ...

  8. 如何将Bitcoin比特币区块链数据导入关系数据库

    在接触了比特币和区块链后,我一直有一个想法,就是把所有比特币的区块链数据放入到关系数据库(比如SQL Server)中,然后当成一个数据仓库,做做比特币交易数据的各种分析.想法已经很久了,但是一直没有 ...

  9. 区块链教程(二):比特币、区块链、以太坊、Hyperledger的关系

    不知道大家喜不喜欢音乐! 朋克音乐:诞生于七十年代中期,一种源于六十年代车库摇滚和前朋克摇滚的简单摇滚乐.它由一个简单悦耳的主旋律和三个和弦组成,经过演变,朋克已经逐渐脱离摇滚,成为一种独立的音乐,朋 ...

随机推荐

  1. input获得焦点时,如何让外边框不变蓝

    border 可应用于几乎所有有形的html元素,而outline 是针对链接.表单控件和ImageMap等元素设计. outline的效果将随元素的 focus 而自动出现,相应的随 blur 而自 ...

  2. Luogu4705 玩游戏 分治FFT

    传送门 \(\begin{align*} Ans_k &= \sum\limits_{i=1}^n\sum\limits_{j=1}^m (a_i + b_j)^k \\ &= \su ...

  3. 实时监听 JavaScript改变 input 值 input输入框内容 value 变化实时监听

    思路:通过setInterval()方法去定时对比新旧值 当时候JavaScript的onchange 和onpropertychange(注意ie版本) 监听输入框input时间,人为改变值是可以触 ...

  4. php后台实现页面跳转的方法-转载

    地址:http://blog.csdn.net/abandonship/article/details/6459104 其中方法三的js代码在tp框架使用存在故障,一个是需要把代码写在一起(可能也不需 ...

  5. css3可拖动的魔方3d

    css3可拖动的魔方3d 主要用到知识点: css3 3d转换 原生js鼠标拖动事件 display:grid 布局 实现的功能 3d魔方 可点击,可拖动 直接看效果 html: <div cl ...

  6. there is no route defined for key Agreement(react native bug记录)

    调试react native的项目有一个报错: there is no route defined for key XXXX 它发生在我调试TabNavigator选项卡路由器的时候,我把如下代码的A ...

  7. (比赛)C - 小Q系列故事——最佳裁判(水题)

    C - 小Q系列故事——最佳裁判 Time Limit:200MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Des ...

  8. MySQL Replication--双主结构优缺点

    双主架构图 双主架构实现原理当从库IO线程接受到主库传递来的二进制日志(Binlog)并将之保存为从库的中继日志(relay log),然后从库SQL线程将中继日志(relay log)的事件重做到从 ...

  9. python(time/random模块)

    一.Time模块 1.时间戳 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数 最早出现的UNIX操作系统考虑到计算机 ...

  10. 搭建MySQL MMM高可用

    搭建MMM: 1,安装 agent 节点执行 yum install -y mysql-mmm-agent 2, monitor 节点执行 yum install -y mysql-mmm-monit ...