细节一:每个比特币节点都知道发生在整个网络上的每笔交易吗?
对,全网都知道。如果要付钱,就会把消息传给与自己连接的结点,然后再传给整个网络的每个结点,每个结点都是向外传播的,传播速度是指数级的,传播到整个网络只需几秒钟。每笔交易在传播之前都要经过验证,以确保不存在一币多花的情况,公钥正确对应于地址,并且公钥能够解密私钥签名,满足这些条件。在每个节点的内存中存在一个经过验证的交易会,等待被添加到区块中。
细节二:为何设置一个数学难题呢?
假如确认一块区块太容易,那么每一台计算机都可以独立完成交易确认,彼此之间也没有共同的目标,账本也不会统一。在数学难题解法的基础上,构造出最长链,即使出现局部分叉也能最终统一。此外,设置数学难题可以防止系统中有人做假账。这种方法是建立在全网计算机中大部分人都信任的基础上的,只要大部分人是可信的,只要他们解决问题的速度更快,假账所在的链就不能成为最长链,最终就会被错误地接受假账的节点所抛弃。
细节三:当比特币在消费时,为什么它会被消费?
这个设计来自中本聪。当比特币接受转账时,它可以接受任何金额,但如果要将比特币用到一个地址,则需要仔细转出,将其转到自己的旧地址或新地址,而不是交易对手收到的。这样做的目的是,当比特币被使用时,销毁旧币,生成新的货币。其优点是减少了一币多花的可能性,缺点是有更好的方式来避免这种复杂的操作。他在白皮书中写道:
操作和安全策略:操作和安全策略,操作和安全策略,操作和安全策略。
在现实社会中,他提出了这样一种设想:造币厂每次付钱,都可以通过销毁旧币、制造新币的方式,避免将同一货币分别付给两个人。第一次进货,因为钱币已被销毁,第二次进货,如果是同一枚,肯定是伪造的。他用这个类比设计了比特币的安全机制。
此外,他还提到了分开付款的麻烦。这是一本白皮书。
在itwouldbeunwieldytomakeaseparatetransactionforeverycentinatransfer中,Althoughitwoughitwouldbepossibletohandlecoinsindividually
细节三:交易方何时知道我已支付款项?
几秒钟之内就会知道。正如上面所提到的,一个有效的交易会在几秒内到达全网。
此外,还有更快捷的方法。在比特币设计之初,中本聪就有一套直接付款方式。白皮书的论文摘要对此作了说明,邮件回复对此作了解释。具体地说,如果知道对方的IP地址,则通过IP直连方式,向交易对方发送交易信息。这个讯息在正常速度下会立刻到达。通过支付方的私钥签署交易信息,然后用接收方的公钥对交易信息进行加密,并附有支付方的公钥。这从密码学上保证了双方都清楚地知道该交易是关于对方的,并且实际上已经收到付款。但付款仍需全网确认,因此还需等待一个小时,您才能认为交易已经完成。
细节四:是否可以取消交易?
发出去的交易是不会取消的,但如果交易费用很低,而且网上的交易量也很大,那么交易就有可能被遗忘。这就是说,任何节点都不想将其打包到区块中。这样的话,这笔交易就等于最后没成交。
若真发错单,有一种折中办法可以取消交易,那就是多付一大笔费用,新的付款很快就会进入区块,而一旦新的付款进入区块,旧的交易也就无效了。
细节五:分叉是什么?
有几种情况会出现分叉。其中之一是人为的,当一个节点修改规则时,会主动地设置一个更大的块大小的上限,而此时愿意遵循新节点规则的节点会主动地形成一个新网络。
另外一个分叉是由于两个结点打包成功的时间距离很近,然后各自向外传播新块的信息,而新的结点又负责自己的工作,所以不同的结点按照不同的上家继续扩展,也形成了分叉。
评论