【区块链学习笔记】12:比特币系统的思考

哈希指针:只有哈希

比特币区块的块头里有指向前一个区块的哈希指针,所谓的哈希指针实际上就是哈希值。那么是怎么串起来的?对于全节点,会维护一个kv数据库,key就是哈希值,value就是区块内容,常用的就是levelDB。

哈希指针没有哈希只有指针,或者也可以理解成哈希就是指针。

有些节点只保存最近的几千个区块,如果需要前面的区块的内容可以找全节点要。

多重签名:基于"区块恋"的思考

有些情侣会把私钥一分为二,两个人各自维护一份,拼在一起才能使用。

有什么问题?如果有四个商户,每个人掌握一份,拼在一起才能用,如果有一个人丢了这些钱就拿不到了。

还有一个问题就是这种截断会降低私钥的安全性,私钥的安全性和长度有很大的关系。为什么要用256位的私钥?就是因为破解难度大。而情侣的例子里,一方已经知道了128位的私钥,只要把剩下的128位私钥猜出来就行了。

私钥的长度降低了一半,破解的难度可是天差地别,远远不止是降低一倍(实际上减少一位才是降低一倍)。

前面四个合伙人的例子也是,假如有三个合伙人串通起来,瞒着最后一个人,只要猜64位私钥就行了。

所以对于多个人的共享账户,不要用截断私钥的方法,而是要用多重签名(multisig)。多重签名里的每个私钥都是独立产生的,而且多重签名还有别的灵活性,比如可以要求n个人里给出m个签名就行了。

前面区块恋的例子里,如果两个人分手了,那么他们当时买的币就会永远保存在UTXO里,这些"死钱"对矿工是不友好的,矿工并不知道这些是死钱,会造成这个集合的膨胀。

分布式共识:其实没有达成共识

关于分布式共识,学术界有很多impossibility result,理论上证明分布式共识是不可能实现的。那么比特币为什么能绕过分布式系统里的不可能结论得到共识呢?

严格的说,比特币并没有取得真正意义上的共识,因为随时会被推翻,比如分叉攻击,分叉攻击之后可以回滚到前一个状态,甚至理论上可以回滚到最开始的状态。而分布式共识要求共识一旦达成就不会修改了,所以从这个意义上并没有破坏分布式共识的理论。

理论和实践还是有很大差异的,理论很多时候基于一个特定的模型,但是实践中破坏模型的一些要求就不再满足这些理论了。

这里肖臻老师举了一个例子,怎么证明某个远程数据中心的服务器已经宕机了?能观察到的情况就是连接不上那个远程服务器了。怎么区分是网络的问题还是真的是服务器宕机呢?

分布式理论体系里已经证明了,这是不可能区分出来的。分布式系统的理论已经证明了,在异步的环境中,不可能区分某台远程的服务器到底是宕机了还是仅仅是运行缓慢。

所谓的异步环境,是指通信的延迟是没有上限的,所以不可能区分开前面说的那两种情况。在现实中,直接给远程服务器那边的同事打电话,看看是不是宕机了(这个模型就不是理论上的异步模型了)在帮忙重启就行了。

肖臻老师提到,总是给值班人员打电话也不好,老服务器有一根电话线可以拨号上网,可以连这根电话线,平时用Ethernet的网线,如果网不好使了再试试电话线,如果电话线也连不上,那一般可以认定是死机了。

发明比特币的中本聪,应该不是学术出身的,否则应该不会设计比特币这样的系统。

不要被学术界的思维、程序员的思维限制了想象力。

比特币的稀缺性:适合作为货币吗?

挖矿的收益大于开销,才会吸引矿工来挖矿。任何一个新发布的货币,都会有一个冷启动的问题。怎么吸引更多的人来挖矿?一般是给早起的矿工更多的收益。

比特币,早起的挖矿难度比较小,出块奖励也更多。后面就越来越少,构成一个几何级数,最后加起来是固定的。但其实这种总量固定的、稀缺的东西是不适合作为货币的,后面会讲的以太坊就不会有这种总量固定的问题,甚至有的新货币还会有通货膨胀的机制,自动提高发行量。

货币是需要通货膨胀的,就像现代货币都舍弃了金本位(即使黄金的总量不是定死的,但是每年新挖出的黄金数量远远赶不上社会创造的财富数量)。所以如果用黄金来作为货币的话,黄金会变得越来越值钱。如果某个人早起拥有黄金,那么这个人就不用工作了,坐等黄金不断增长。

国内房地产就是这种情况,如果房价一直疯涨,那么已经买房的人就可以等着增值,这是货币金融学相关的知识。

量子计算

比特币这样的加密货币是建立在密码学基础上的,那么未来量子计算厉害之后,这些加密货币会不会变得不安全?

首先,量子计算技术离实用还有很长一段距离,在比特币的有生之年很难产生实质性威胁。如果有一天量子计算能破坏加密体系的话,那么首先冲击的是传统金融业,网上的银行、转账、支付都会变得不安全。加密货币的总市值其实只占了现代金融体系的很小一部分。何况量子计算出来了也会有量子加密算法。

比特币并没有把账户的公钥直接公布出来,而只是公布了公钥的哈希,而比特币的公钥可以从私钥推导出来,所以把私钥保存好就行了。假如有一天能从公钥推出私钥了怎么办呢?比特币又加了一层保护,没有直接用公钥,而是用公钥的哈希。所以如果有人想得到你的私钥,就得先从公钥的哈希得到公钥本身,这个即使是量子计算机也没办法。

加密和取哈希是两种不同的操作,加密是为了解密,所以不能丢失任何信息。但是取哈希则不用,有很多信息在取哈希的过程中就已经丢失了。比特币用的哈希算法是SHA256,不管什么信息,得到的都是256位的哈希值,这显然是不可逆的。

比特币系统中,如果只是为了收款,没必要提供公钥,只要提供公钥的哈希就行了。只有取钱的时候才需要公钥,以及一个私钥产生的签名。假设有一个坏人在网上监听到了取钱的交易,他要怎么攻击?首先要实时监听你的公钥,尝试反推出私钥,还要产生一个和你竞争的交易,你要转到你的账户,坏人要转到他的账户。即使他拥有量子计算技术也很难这样做,而且他发布的交易还要抢在你的交易前面。因为这两个交易是double spending。

所以从安全的角度来说,比特币的一个地址用过了就不要在用了。每次把钱全用光,用完买东西的钱之后,剩下的钱直接转给自己的另外一个账户。这样做不但增加了安全性,还提高了隐私保护。

如果很担心量子计算的威胁,即使是公钥也不要随便泄露!

相关推荐
PythonPioneer4 小时前
混合计算范式破冰:IBM与AMD的“量子-经典”超算合作意味着什么?
量子计算
进击的女IT1 天前
密码学基础知识
密码学
本郡主是喵1 天前
第一次学习Hardhat
区块链·solidity
会跑的葫芦怪1 天前
Go语言在区块链开发中的应用场景详解
golang·区块链
The Open Group1 天前
TOGAF® 与新兴技术:区块链、物联网与量子计算
物联网·区块链·量子计算
Sui_Network1 天前
Sui Stack Messaging SDK:为 Web3 打造可编程通信
大数据·人工智能·科技·web3·去中心化·区块链
央链知播1 天前
链改2.0总架构师何超秘书长重构“可信资产lPO与数链金融RWA”
金融·重构·web3·区块链·业界资讯
MicroTech20252 天前
微算法科技(NASDAQ: MLGO)融合二次矩阵变换模型,研发基于区块链的可溯源IP版权保护算法
区块链
雪兽软件2 天前
加州理工学院利用声音解锁更长的量子信息存储
量子计算