白皮书是区块链投资项目的必要知识,既是自己投资成功或者失败判断的依据,也是可以分享出来方便自己发现自己问题所在。而我的解读白皮书则是自己看白皮书过程中的一个思考、一个笔记、一个重点,甚至是我看的过程中的一个“闪念”,背后的逻辑、可行性不去做更多的判断。
而我自己选择项目解读的一个原则就是根据这个项目在当下的热度来看的“,一方面可以了解它之所以有热度的原因;另一方面也可以提高自己的判断力,同时我也自己开了一个微信公众号(丁昆朋YKPD),喜欢写作、英语、编程、区块链的朋友可以关注一下,共同成长。
点击https://www.bitcoincash.org进入官网:
金融机构处理电子支付有哪些问题呢?
一是完全不可逆交易实际上是不可能的,因为金融机构无法避免调解纠纷;
调解成本增加了交易成本,限制了最小的实际交易规模,并切断了小型临时交易的可能性,并且丧失了为不可逆服务进行不可逆付款的能力的成本更高。
二是商家必须警惕他们的客户,骚扰他们获取比他们原本需要的更多信息。一定比例的欺诈被认为是不可避免的。
如何实现“交易”呢?
我们将电子硬币定义为数字签名链。 每个所有者通过对先前交易的散列和下一个所有者的公钥进行数字签名并将这些现金添加到硬币的末尾来将硬币转移到下一个硬币, 收款人可以验证签名以验证所有权链。如下图所示:
如何解决双花问题呢?
我们需要一种方法让收款人知道以前的所有者没有签署任何先前的交易。出于这个目的,最早的交易是重要的交易,所以我们不关心以后的双重花费。确认没有交易的唯一方法是了解所有交易。在基于铸币的模型中,铸币厂知道所有交易,并决定首先到达。
为了在没有可信任方的情况下实现这一目标,必须公开宣布交易,并且我们需要一个系统让参与者就收到订单的单一历史达成一致。收款人需要证明在每次交易时,大多数节点同意它是第一次收到的。
“时间戳服务器”是什么意思?
我们提出的解决方案以时间戳服务器开始。 时间戳服务器的工作原理是将一个项目块的哈希值加时间戳并广泛发布哈希值。
例如在报纸或新闻组帖子中,时间戳证明当时数据必须存在。为了进入哈希, 每个时间戳在其散列中包含先前的时间戳,形成一个链,每个附加的时间戳加强它之前的时间戳。
“工作证明”是什么意思呢?
要在点对点的基础上实现分布式时间戳服务器,我们需要的是使用类似于Adam Back的Hashcash 的工作量证明系统,而不是报纸或新闻组帖子。 当进行散列时,工作量证明涉及扫描一个值。
例如使用SHA-256,散列以多个零位开始。所需的平均工作量是所需的零位数的指数,并且可以通过执行单个散列来验证。
对于我们的时间戳网络,我们通过递增块中的随机数来实现工作量证明,直到找到给出块的散列所需的零位的值。
一旦花费了CPU工作量使其满足工作量证明,就不能在不重做工作的情况下更改块。 由于后面的块被链接在其后,更改块的工作将包括重做之后的所有块。
工作量证明是如何解决确定多数决策中的表示的问题呢?
如果大多数是基于一个IP地址一票,那么任何能够分配许多IP的人都可能会破坏它。工作证明基本上是单CPU一票。多数决策由最长的链表示,其中投入的工作量最大。
如果大部分CPU功率由诚实节点控制,那么诚实链将增长最快并超过任何竞争链。要修改过去的块,攻击者必须重做块的工作证明以及之后的所有块,然后赶上并超越诚实节点的工作。我们稍后会说明,随着后续块的添加,攻击速度慢的追赶者的概率会呈指数级递减。
为了补偿随着时间推移而增加的硬件速度和对运行节点的不同兴趣,工作量证明难度由针对每小时平均块数的移动平均值确定。如果它们生成得太快,则难度会增加。
“运行”网络是如何实现的呢?
运行网络的步骤如下:
1、向所有节点广播新事务:
2、每个节点将新事务收集到块中:
3、每个节点都在为其块查找困难的工作证明:
4、当节点找到工作证明时,它将块广播到所有节点:
5、仅当节点中的所有事务都有效且尚未使用时,节点才接受该块:
6、节点通过创建块中的下一个块来表示它们对块的接受,使用接受块的散列作为前一个散列。
节点始终认为最长的链是正确的,并将继续努力扩展它。如果两个节点同时广播下一个块的不同版本,则一些节点可以首先接收一个或另一个节点。
在这种情况下,他们在他们收到的第一个工作,但保存另一个分支,以防它变得更长。当找到下一个工作证明并且一个分支变长时,这个结将被打破;然后,在另一个分支上工作的节点将切换到较长的节点。
新的交易广播不一定需要到达所有节点。 只要它们到达许多节点,它们就会很快进入一个块,块广播也容忍丢弃的消息。 如果一个节点没有收到一个块,它会在收到下一个块时请求它,并意识到它丢失了一个块。
参与人员如何获得“激励”呢?
按照惯例,块中的第一个事务是一个特殊事务,它启动块的创建者拥有的新硬币。这增加了节点支持网络的激励,并提供了一种初步将硬币分配到流通中的方法,因为没有中央授权来发布它们。稳定增加一定数量的新硬币类似于黄金矿工花费资源为循环增加黄金。
在我们的例子中,它耗费了CPU时间和电力。奖励也可以通过交易费来获得资金。如果交易的输出值小于其输入值,则差值是添加到包含交易的块的激励值的交易费用。一旦预定数量的硬币进入流通,激励就可以完全转换为交易费用并且完全没有通货膨胀。
激励措施可能有助于鼓励节点保持诚实。如果贪婪的攻击者能够比所有诚实的节点组装更多的CPU能力,他将不得不选择使用它来通过窃取他的付款来欺骗人们,或者使用它来生成新的硬币。
他应该发现遵守规则更有利可图,这些规则比其他人合并更多的新硬币,而不是破坏系统和他自己财富的有效性。
如何做到“回收磁盘空间”呢?
一旦硬币中的最新事务被埋在足够的块下,就可以丢弃之前用完的事务以节省磁盘空间。
为了在不破坏块的散列的情况下实现这一点,在梅克尔树中对事务进行散列,只有根包含在块的散列中。
然后可以通过截断树的分支来压缩旧块,内部哈希不需要存储。
没有事务的块头大约是80个字节。 如果我们假设每10分钟生成一个块,则每年80字节* 6 * 24 * 365 = 4.2MB。
由于计算机系统通常在2008年销售2GB RAM,而摩尔定律预测当前每年增长1.2GB,即使块头必须保存在内存中,存储也不应成为问题。
如何做到“简化付款验证”的呢?
无需运行完整的网络节点即可验证付款。 用户只需要保留最长工作证明链的块头的副本,它可以通过查询网络节点获得它,直到它确信它拥有最长的链,并获得将事务链接到块的梅克尔分支。 它也是有时间戳的。
它不能为自己检查交易,但是通过将其链接到链中的某个地方,它可以看到网络节点已接受它,并且在进一步确认网络已接受它之后添加了块。
因此,只要诚实节点控制网络,验证就是可靠的,但如果网络被攻击者制服,则验证更容易受到攻击。虽然网络节点可以自己验证事务,但只要攻击者可以继续压制网络,攻击者的伪造事务就会欺骗简化的方法。
防止这种情况的一种策略是在网络节点检测到无效块时接受来自网络节点的警报,提示用户的软件下载完整块并警告事务以确认不一致。频繁付款的企业可能仍希望运行自己的节点,以获得更加独立的安全性和更快的验证。
“结合和分裂价值”体现在哪里呢?
虽然单独处理硬币是可能的,但是对于转移中的每一分钱进行单独的交易是不方便的。为了允许拆分和组合值,事务包含多个输入和输出。
通常会有来自较大的先前交易的单个输入或组合较小金额的多个输入,并且最多两个输出:一个用于支付,一个将更改(如果有的话)返回给发送者。
应该注意的是:交易依赖于多个交易,而这些交易依赖于更多,这不是问题。 永远不需要提取事务历史的完整独立副本。
如何保证“隐私”呢?
传统的银行模式通过限制对相关方和可信第三方的信息访问来实现一定程度的隐私。 公开发布所有交易的必要性排除了这种方法,但仍可以通过打破另一个地方的信息流来维护隐私:通过匿名保持公钥。
公众可以看到有人向其他人发送金额,但没有信息将交易与任何人联系起来。 这类似于证券交易所发布的信息水平,其中个人交易的时间和规模,即“磁带”,是公开的,但没有说明当事人是谁。
作为附加防火墙,应为每个事务使用新密钥对,以防止它们与公共所有者链接。对于多输入交易,某些链接仍然是不可避免的,这必然表明他们的输入由同一所有者拥有。风险在于,如果密钥的所有者被泄露,则链接可以揭示属于同一所有者的其他交易。
比特币现金有哪些优势呢?
一是快速:在几秒钟内完成交易。在几分钟内得到确认;
二是可靠:一个没有拥塞的网络;
三是低费用:全球寄钱给便士;
四是简单:使用方便、没有麻烦;
五是稳定:一种经过验证的有价值的支付系统;
六是安全:世界上最强大的区块链技术。