目录
10.分岔
①什么是分叉?
②导致分叉的原因?
③在比特币新共识规则发布会会导致什么分叉?
什么是硬分叉?
硬分叉例子?
什么是软分叉?
软分叉和硬分叉区别?
软分叉实例
11.问答
转账交易时候,如果接收者不在线(没有连在比特币网络上)怎么办?
假设某全节点收到某个转账交易,会不会有可能转账交易中收款人地址该全节点从未听过?
如果账户私钥丢失怎么办?
私钥泄露怎么办?
转账写错地址怎么办?
BTC系统挖矿,会不会有矿工“偷”答案?
交易费应该给哪一个矿工?即怎么提前知道哪个矿工会挖到矿。
纯干货学习笔记分享!!!只要你们喜欢,我会继续分享的!话不多说,正文开始👇
10.分岔
①什么是分叉?
分叉指的是,原来的系统中为一条链,但现在分成了两条链。
②导致分叉的原因?
挖矿时两个节点差不多同时挖出矿,都会发布区块(对比特币系统当前状态产生分歧导致的分叉state fork);分叉攻击(forking attack),同样也会导致分叉(人为故意造成delibrate fork);比特币协议改变,在分布式系统中不能保证所有节点同时升级比特币软件导致新旧版本出现差异导致分叉(protocd fork);
③在比特币新共识规则发布会会导致什么分叉?
硬分叉(hard fork)和软分叉(soft fork)
什么是硬分叉?
硬分叉指的是,区块链发生永久性分歧,在新共识规则发布后,部分没有升级的 节点无法验证已经升级的节点生产的区块,通常硬叉就会发生。所以在数字货币 领域,硬分叉往往导致新的币种出现。例如以太坊的硬分叉就导致了 ETH的出现。
硬分叉例子?
比特币区块大小限制(block size limit):1M→4M,出现hard fork后,便变成了 两条平行的链,也就造成了社区分裂。
什么是软分叉?
“软分叉”是指:在新的共识规则发布后,由于软分叉的新规则仍旧符合老的规 则,所以,使用旧版本的节点可以验证使用新版本节点所生产出的区块,使用新 版本的节点也可以验证使用旧版本节点生产出的区块,两种版本可以兼容。
软分叉和硬分叉区别?
使用旧软件的节点能否兼容使用新软件的节点,可以兼容,就是软分叉,不能兼 容就是硬分叉。
软分叉实例
①给某些目前协议中未规定的域赋予新的含义或规则。 铸币交易中CoinBase域。在CoinBase域中写入任何内容都可以,没有任何规定。挖 矿本质是调整block header中的nonce,但其本身只有4个字节,搜索空间太小。所 以实际使用中,将CoinBase域前8个字节作为另一个extra nonce,此时搜索空间从 原本2^32 增长到2^96,调整目前挖矿难度。 CoinBase中并不是只有8个字节,还剩下很多空间。有人便提出将剩下空间其作为 UTXO集合内容组织成merkle tree的根哈希值。算出根哈希值,写入coinbase域, 利用merkle proof验证。
②P2SH:Pay to Script Hash 最初比特币版本中没有该功能,后来通过软分叉方法加入了进去。旧节点验证第一阶段 redeem script,新节点会做第二阶段验证。
11.问答
转账交易时候,如果接收者不在线(没有连在比特币网络上)怎么办?
转账交易只需要在区块链上记录,将某账户比特币转到另一账户,而接收方是否在线并无影响。
假设某全节点收到某个转账交易,会不会有可能转账交易中收款人地址该全节点从未听过?
可能,因为比特币账户只需要本地产生即可。只有该账户第一次收到钱时,其他节点才能知道该节点的存在。
如果账户私钥丢失怎么办?
没有办法。因为比特币是去中心化货币,没有第三方中心机构可以重置密码,所以账户上的钱也就变成了死钱。通过加密货币交易所(中心化机构),一般需要提供身份证明,如果忘记私钥可以找交易所申请追回私钥。但目前这类货币的交易所,尚且处于缺少监管的状态,并不一定具有可信力。在历史上,有很多次交易所被黑客攻击偷走大量加密货币的事情,Mt. GOX(中文译为:门头沟)事件。此外,也有交易所监守自盗。
私钥泄露怎么办?
尽快将剩余BTC转到其他安全账户上,没有第三方中心机构重置密码或冻结 账户,只能自己对自己负责。
转账写错地址怎么办?
没有办法,比特币无法取消已经发布的交易。如果转入不存在地址,则该部 分比特币便成为了死钱。可以沟通,不一定成功。 补充·从本质上讲,OP_RETURN是一个脚本操作码,是专门被设计出来承 载额外的交易信息的。它的作用就像我们在日常转账过程中的备注信息。
BTC系统挖矿,会不会有矿工“偷”答案?
例如:某个矿工发现其他矿工发布了nonce,收到后验证该区块合法,将该nonce作为自己找到的nonce发布出去。 这是不可能的。发布的区块中包含铸币交易,其收款人地址为挖到矿的矿工地址,如果要偷答案,需要修改该收款地址,而地址改变,铸币交易内容也发生改变,从而引发Merkle Tree根哈希值改变。从而导致原本的nonce作废。也就是说,“偷”答案不会发生。
交易费应该给哪一个矿工?即怎么提前知道哪个矿工会挖到矿。
事先无需知道谁会挖到矿,交易中总输入和总输出差额就是交易费。哪个矿工挖到矿,在打包交易时,可以将这些交易费差额收集起来作为自己获得的交易费。
最后,分享一个学习法,如下图👇