zoukankan      html  css  js  c++  java
  • 【比特币挖矿摘抄】2018-08-22 笔记

    1.

     这就是比特币发行和运作的基本原理。矿工贡献算力进行大量计算来保持比特币网络的运行和稳定,而在计算过程中矿工可以得到新发行的比特币。虽然实际上发生了通胀,但我钱包里的钱没变少是不?而比特币一个巧妙的设计就是新发行的比特币是越来越少的,新增比特币的发行是衰减的,所以虽然比特币不是大多数人所认为的通缩货币,但它的通胀率确实是越来越低,最终趋向于零的,而比特币一旦发生了不可找回的丢失,它就会发生通缩。

    2. 

    举个栗子,假设有10个人,其中9个好人,1个坏人。9个好人每个人各有一个节点,而1个坏人偷偷注册了10个节点(因为这是在互联网上,注册节点的成本约等于0),这样总共有19个节点。如果按照最简单的轮流(或随机)进行记账,坏人有超过50%的概率可以获得记账权,如果剩下9个好人节点对记账有疑义了,因为坏人控制了10个节点,超过了总节点的一半,那他就可以强行把有问题的账记录下来并且让别人必须要接受这个账本。

    看到这里大家应该都明白了,因为在互联网上创造节点的成本约等于零,所以坏人(攻击者)可以用近乎于零的成本创造大量节点,就可以拥有整个系统的话语权(这也就是俗称的“女巫攻击”)。

    如果用轮流(或随机)进行记账的模式,核心的问题就是:创造节点的成本约等于零→赢得大量记账权的成本约等于零→攻击系统的成本约等于零。导致极易产生攻击!!!

    这个问题困扰了分布式账本发展多年...

    ...直到中本聪横空出世!

    中本聪的思路很简单,就是不能按照轮流(或随机)的模式进行记账,而是每一个节点必须要做一定的工作后才能赢得记账权,这也就是所谓的工作量证明(Proof of Work,简称PoW)。这样,攻击整个系统的成本,就会从基本为零的成本变为非常高的成本(因为要执行一定的工作)。

    3.
    比特币的机制会自动调节解题难度,从而保证区块与区块的出块间隔在10分钟左右,这也就是比特币的出块速度。
     
    4.

    整个过程中,主要依靠的是算力,算力越强,就可以在同等时间验算更多的解,从而可以更快的找到正确的解。这样,要攻击这个系统,就需要非常强的算力(一般来说认为需要整个系统51%以上的算力),从而使比特币的体系安全性非常高

    而为了鼓励大家进行记账,一方面赢得记账权节点,可以获得一次性的一定数量的比特币奖励,同时可以获得记账的交易手续费。这也就是俗称的挖矿

     5.
    矿池会集合许多矿工的计算能力来挖矿。当挖到block的时候,根据每个人的算力占总算力的比例来进行分红。所以你才会得到微量的比特币。
     
    6.
     
    -1.目前比特币全部账本信息能很好的保存在一台普通的电脑上,这也是Core他们坚持不扩容的原因之一。另外根据摩尔定律,就算小扩容其实影响不大。
    -2.仅仅降低交易费那么旷工没有动力,交易将更拥堵。当然这里有目前比较认可的取代方案POS。上面说的是挖矿是工作量证明即POW(Proof of Work),而POS的全称Proof of Stake,即股权证明。简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,有利于刺激全部用户参与,更去中心化。
    -3.比特币等加密货币是匿名的,虽然你能看到纪录,但是你不知道是谁,同样你可以有多个匿名账户,中心化的你确定你能保密部分信息?
    -4.不知道你这数据哪里来的,确实现在交易量少,原因很多,有支付场景弱,币价太高,大多数人持币待涨等多种因素。突然想到另一个因素,目前大量的币集中在交易所,很多交易所实际上是虚拟交易,当你要提币的时候才是真实交易,这样也大幅降低了真实交易量。
     
     
    7.
    挖矿的风险不仅于此,16年7月开始,比特币网络发行比特币数量就减半了,即每10分钟,每个区块只包含12.5个比特币,意味着相同算力挖出的比特币也会相应减少。但另一方面,币价也有上升可能。同时还伴随着断电、机器维护折旧等风险。
     
    8.
    在比特币的世界里,大约平均每10分钟会产生一个区块。所有的挖矿计算机都在尝试打包这个区块并提交,而第一个成功生成这个数据块的人,就可以得到一笔比特币报酬。最初,大约每10分钟就可以产生50个比特币的比特币报酬。但是该报酬每4年减半,现在每10分钟比特币网络就可以产生25个比特币。

     9.
    评论区有人问,这500元是哪儿来的?我这里也简答讲一下。

    1.比特币平均差不多每10分钟产生一个区块,这个区块能打包的交易数量是有限的,我们就算800笔吧。但是呢,旷工不会平白无故给你打包交易到并广播,所以需要收取手续费。而且,由于交易的人很多,先打包谁的交易也取决于手续费的高低。所以你可以看到,现在比特币火热了,手续费水涨船高

    2.我们都知道比特币总量2100万个,发币机制是逐年递减。当旷工第一个成功打包这个区块并广播,并且是最长的链的话,那么他还会获得奖励,目前只有12.5个比特币。最开始是50个,已经衰减2次了。这里当然还有小问题,比如为什么要最长链,怎么确定是最长链,哪些链会被抛弃?如果大家有兴趣再深入说说。

    以上就是旷工的奖励。2017/12/8更新。 
     
    10.
     

    比特币会一直增加下去,岂不是会严重通货膨胀

    比特币会一直增加下去,岂不是会严重通货膨胀

    中本聪说,这一点我也想到了。前面忘了说了,我给矿工组织的操作细则手册会说明,刚开始我们协议每生成一页账簿,奖励小组50个比特币,后面,每当 账簿增加21,000页,奖励就减半,例如当达到210,000页后,每生成一页账簿奖励25个比特币,420,000页后,每生成一页奖励12.5个, 依次类推,等账簿达到6,930,000页后,新生成账簿页就没有奖励了。此时比特币全量约为21,000,000个,这就是比特币的总量,所以不会无限 增加下去。

    没有奖励后,就没人做矿工了,岂不是没人帮忙确认交易了

    到时,矿工的收益会由挖矿所得变为收取手续费。例如,你在转账时可以指定其中1%作为手续费支付给生成账簿页的小组,各个小组会挑选手续费高的交易单优先确认。

    矿工如果越来越多,比特币生成速度会变快吗

    不会。中本聪解释,虽然可以任意加入和退出矿工组织,导致矿工人数变化,每个矿工也会拿到一个编码生成器,不过我已经在编码生成器中加入了调控机制,当前工作的编码生成器越多,每个机器的效率就越低,保证新账簿页生成速率不变。

    虽然每个人的代号是匿名的,但如果泄露了某个人的代号,账簿又是公开的,岂不是他的所有账目都查出来了

    确实是这样的。例如你要和某人交易,必然要要到他的代号才能填写交易单。因为收款人一栏要填入那人的代号。不过中本聪说可以提供无限制的保密印章,建议每一次交易用不同的保密印章,这样查账簿就追查不到同一个人的所有账目了。

    答疑完毕。

    11.
    越到后面,靠的都是交易之间的手续费维持。
     
    12.
    目前(UTC2017年8月20日)BTC大致的情况是从2016年11月起每确认一个区块确认者可以获得12.5个BTC;转账手续费是低于0.01BTC必须支付最少0.0001BTC的手续费,可以自选多付,目前最多是0.0005;实际使用场景。。呃
     
    到2044年,确认一个区块能得到的奖励就会降到0.09765625个,事实上到2032年每个区块的奖励就小于1个了(0.78125),真要等到2140年全挖完了矿工们能获得的收入就只有转账手续费了,
     
    13.
     交易有手续费,区块奖励减少会引起手续费的上涨。
     

    矿工收入=新区块奖励+交易手续费。

    所以,只要有人在用,比特币就挖不完。

    刚查了一下,新块奖励12.5,某块总手续费5.6,下次奖励减半二者就接近了。

    多次减半之后新块奖励将会低于0.0001BTC,小于任意一笔交易的手续费,多年之后将会减到0.00000001BTC,再减半=0.00000000BTC。

    新区块奖励=币初始发行

    交易手续费=币销毁重铸


     
     
  • 相关阅读:
    Uva 10779 collector's problem
    poj 2728 最优比率树(最小生成树问题)
    LA 3126 二分图匹配 最小路径覆盖
    poj 1149 最大流构图
    Step By Step(Java XML篇)
    Step By Step(Java 输入输出篇)
    Step By Step(Java 集合篇)
    Step By Step(Java 线程篇)
    Step By Step(Java 反射篇)
    Step By Step(Java 国际化篇)
  • 原文地址:https://www.cnblogs.com/x-poior/p/9351286.html
Copyright © 2011-2022 走看看