区块链学习笔记10——BTC问答
点击阅读更多查看文章内容
区块链学习笔记10——BTC问答
学习视频:北京大学肖臻老师《区块链技术与应用》
笔记参考:北京大学肖臻老师《区块链技术与应用》公开课系列笔记——目录导航页
- 转账交易时候,如果接收者不在线(没有连在比特币网络上)怎么办?
转账交易只需要在区块链上记录,将某账户比特币转到另一账户,而接收方是否在线并无影响。 - 假设某全节点收到某个转账交易,会不会有可能转账交易中收款人地址该全节点从未听过?
可能,比特币账户在创建的时候不需要通知其他人,在本地产生一个公私钥对就可以了,只有在它第一次收到钱的时候,其他节点才知道这个节点的存在 - 如果账户私钥丢失该怎么办?
私钥丢失的话没有办法,里面的钱就永远取不出来了。因为比特币是去中心化货币,没有第三方中心机构可以验证你的身份帮你重置密码,所以账户上的钱也就变成了死钱。
通过加密货币交易所(中心化机构),一般需要提供身份证明,这种情况下把比特币保存在交易所里,那么私钥实际上是交易所保管的,如果忘记私钥可以找交易所申请追回私钥。但目前这类货币的交易所,尚且处于缺少监管的状态,并不一定具有可信力。而且,其本身仅起到“中介”作用,与该提问的回答“私钥丢失无法追回里面的比特币”并不冲突。
在历史上,有很多次交易所被黑客攻击偷走大量加密货币的事情,其中最著名的为Mt. GOX(中文译为:门头沟)事件。该交易所曾经为全球最大比特币交易所,交易量占到全球比特币交易量的70%左右,设于日本。后来由于被攻击丢失大量比特币,导致交易所破产,其CEO被判刑入狱。此外,也有交易所监守自盗,工作人员卷款跑路 - 私钥泄露怎么办?(如发现自己的账户上出现了可疑的交易)
尽快把账上的钱转到另一个安全账户上
产生账户的公私钥对无法更改,任何有私钥的人都可以把账户上的钱转走,是没有办法冻结的 - 转账填错地址怎么办?(地址是账户公钥的哈希)
没有办法,只能自认倒霉,无法取消已经发布的交易。如果转入不存在地址,则该部分比特币便成为了死钱。当然,比特币系统中UTXO会永久保存该交易,记录该并不存在的地址。因此,对全节点来说,这是不友好的。 - 之前在BTC脚本中介绍了OP_RETURN指令,我们提到,这种方法为普通用户提供了一个向比特币网络中写入想要一直保存的内容。但OP_RETURN执行结果是无条件返回错误,而交易返回错误,区块又怎么会包含它?区块链又如何会接收这个区块?
OP_RETURN是写在这个交易的输出脚本中,而验证这个交易是把这个交易的输入脚本和输入来源的输出脚本拼接在一起验证,也就是说验证这个交易的时候不会执行到这个语句,只有想花掉这笔钱的时候才会执行这个语句。 - BTC系统挖矿,会不会有矿工“偷”答案?例如:某个矿工发现其他矿工发布了nonce,收到后验证该区块合法,将该nonce作为自己找到的nonce发布出去。
实际上这是不可能的。发布的区块中包含铸币交易,其收款人地址为挖到矿的矿工地址,如果要偷答案,需要修改该收款地址,而地址改变,铸币交易内容也发生改变,从而引发Merkle Tree根哈希值改变。从而导致原本的nonce作废。也就是说,不可能会“偷”答案。每个矿工挖到的nonce是与他的地址绑定在一起的。 - 交易费是交易者为了自己交易可以上链而给出的“小费”,那么如何得知哪个矿工可以挖到矿?
事先无需知道谁会挖到矿,交易中总输入和总输出差额就是交易费。哪个矿工挖到矿,在打包交易时,可以将这些交易费收集起来作为自己获得的交易费。
比特币的一些统计数据(均截止到2018年)
- 区块链的大小变化
因为区块链只能添加,不能删除。对于当前硬盘内容来说,保存其没有问题。 - UTXO集合的大小
交易增多,私钥丢失等都会导致UTXO增大。 - 矿池情况
几个大的矿池占了比特币系统中很大一部分 - BTC价格变化
- 市值变化
与价格变化基本一致 - 交易量
- 交易数目
- 每个区块的交易数量
每天产生区块数量基本差不多,所以交易数目变化基本和区块包含交易数目变化趋势一致。
可以看到,理论上限为每个区块可包含4000个交易,而该图中并远未达到上限。所以很多人说到的1MB区块太小,另一方面真实的区块链上很多区块没有装满。
区块链学习笔记10——BTC问答