第76章 一种点对点的电子现金系统下
作者:汪泽      更新:2021-04-10 20:45      字数:2008
  5.网络
  运行这个网络的步骤如下:
  1)新交易给所有节点广播。
  2)每个节点将新交易放到一个区块。
  3)每个节点开始为这个区块寻找相应难度的工作量证明。
  4)当一个节点找到了这个工作量证明,把这个区块广播给所有节点。
  5)如果区块里所有的交易是有效的并且是没有被花费的,节点就会接受这个区块。
  6)节点把这个区块的哈希作为上一个哈希,并开始进行工作以竞争创建下一个区块。
  节点总是认为最长的链是正确的,并且不断的工作去延长它。
  如果两个节点同时广播下一个区块,一些节点可能接受其中一个,也可能是另一个。
  这种情况下,他们在最先收到的区块上工作,但是也会保存另外一个分支以防它会变得更长。
  当下一个工作量被找到并且一个分支变得更长时,这种情况就会被打破,在另外一个分支上工作的节点将会切换到这个长的链上。
  新交易广播不一定要广播到所有节点。
  只要他们能到达很多节点,这个交易很快就会进入下一个块。
  区块广播也能接受消息丢失。
  如果一个节点没有收到区块,当它收到下一个块时会发现自己少了一个区块,它就会请求来获得少的这个区块。
  6.激励
  按照惯例,区块的第一个交易是一个特别的交易,这个交易会发行新币并且所有者是这个区块的创建者。
  这为节点支持网络引入了激励机制,并且这提供了一个初始发行货币进入流通的方式,因为没有一个中央机构去发行他们。
  不断增加新货币的过程类似于黄金矿工消耗资源来增加黄金的流通。
  在这里,消耗的事cpu的时间和电费。
  激励还包括提供交易手续费。
  如果交易中输出值比输入值小,这个差值就是交易手续费,它被加入到这个区块激励值里。
  一旦预定数量的币全部进入流通,激励就全部转为交易手续费,完全没有通货膨胀。
  激励有助于鼓励节点保持诚实。
  如果一个贪婪的攻击者掌握了比所有诚实节点还要大的算力,他将面临一个选择,是通过偷回他支付的钱来咋骗别人,还是用这个算力产生新的币。
  他应该会发现遵守规则更有好处,这个规则可以让他比其他人组合得到更多的新币,比破坏这个系统得到的更多,而且财产合法。
  7.回收磁盘空间
  一旦一个币最新的交易被足够多的区块埋没,它之前的花费的交易就可以丢掉来节省空间。
  为了促成这个而不破坏区块的哈希,用这些交易生成一个默克尔树,仅仅根包含在区块的哈希里。
  那么旧区块可以通过去除树的一些分支进行压缩。
  有些内部的哈希就不用保存了。
  一个区块头大概80字节。如果我们假设每十分钟产生一个区块,一年就是80字节*6*24*365=4.2兆字节。
  2008年出售的电脑典型的配置是2gb内存,根据摩尔定律预测,每年增加1.2g,即使区块头全部放在内存里,存储也不是个问题。
  8.简化支付验证
  即使不运行全网络节点,验证支付也是可能的。
  用户仅需要保存最长工作量证明链的区块头的拷贝,他通过查询网络节点直到确信它有最长的链来获取区块头,并且可以得到默克尔分支,分支连接了交易和这个打了时间戳的区块。
  他本身不能验证交易,但是通过连接到链上的一个地方,他可以看到网络节点已经接受了它,后面的区块进一步确定网络接受了它。
  因此,如果诚实节点控制着网络,验证就是可靠的,如果网络被攻击者控制,验证就是很弱的。
  虽然网络节点本身可以验证交易,但这种简化验证的方法会被攻击者编造的交易欺骗,因为攻击者可能持续控制网络。
  防止这种情况的一种策略是接收网络节点的告警,当他们检测到无效块的时候,提示用户软件下载整个区块,并且提醒确认交易的一致性。
  频繁接收支付的企业可能仍然想运行他们自己的节点,为了更独立的安全性和更快的验证。
  9.组合和分割价值
  虽然可以单独处理币,为转账的每一分都单独交易是很不方便的。
  为了能是价值分割和组合,交易包含多个输入和多个输出。正常的会有一个单独从以前交易来的大额输入或多个小额输入组合在一起,最多两个输出:
  一个用来支付,一个用来找零,有零钱的话会返还给发送者。
  应该注意的是,一个交易依赖几个交易,这些交易依赖更多的交易,看起来很分散,但在这里不是一个问题。
  从不需要提取一个交易全部历史的独立的拷贝。
  10.隐私
  传统的银行通过限制向有关方和信任的第三方提供信息来达到一个保护隐私的目的。
  向公众广播所有交易的必须性将这个方法排除了。
  通过打破信息在其他地方的流动性仍然可以保护隐私:通过保持公钥匿名性。
  公众可以看到一个人给其他人转钱了,但是没有信息可以把交易和某人联系起来。
  这类似于证券交易所公布的信息水平,交易时间和个人的交易规模是公开的,但不告诉当事人是谁。
  作为一个附加的防火墙,每次交易都使用一个新的密钥对,防止和一个共同的所有者联系起来。
  对于多输入交易来说,这个联系无法避免,所有的输入必须表明由同一个人所有。
  风险是如果表明了某一个密钥的所有者,这种联系将表明其他的交易也属于同一个人。
  喜欢海州少年请大家收藏:()海州少年18书包更新速度最快。