# 157期【币圈人物】 北大肖臻比特币引发的思考 **Published by:** [币同学](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/) **Published on:** 2022-04-17 **URL:** https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/157 ## Content 你好,我是币同学。这是我分享学习的第157天,每天学习进步一点点。 关键词:北大肖臻老师的公开课,关于比特币引发的思考。 1. 哈希指针 比特币系统在设计中,很多地方用到了哈希指针。比如说区块的块头,包括指向前一个区块的哈希指针。指针保存的是本地内存的地址,只是在本地这台计算机上才有意义,发送到其他的计算机上就没有意义。那发布区块的时候,哈希指针是怎么通过区块链网络进行传输的? 所谓的哈希指针,只是一种形象的说法,实际系统中用的时候,只有哈希,没有指针。全节点,一般是把这些区块存储在一个key value。Key就是区块的哈希,value就是区块的内容。 哈希指针的性质,是保证了整个区块链的信息是不可篡改的。 2. 区块恋 假设两个人共同持有一个地址的私钥,一人一半,那么就是各自保存128位的私钥。 比如四个人合伙人共同持有一个私钥,那么每个人保存私钥的1/4,也就是64位。 以上这样做,第一个问题是如果有一个把私钥丢了,那么币就取不出来了;第二个问题是这样截断私钥的做法,会降低账户的安全性,第三个问题分手后,他们买的币会永久的保存在UTXO里面(这对矿工是不友好的)。 比特币系统中,账户的安全性和私钥的长度是相关的,256位的私钥用暴力破解的方法是不可行的,计算量太大。 但是如果在上述例子中,已知128位私钥,猜出剩下的128位私钥即可,而这样破解的难度就会大大降低,从2的256次方下降到2的128次方。 4个合伙人的例子亦是如此。 多重签名(multisig):多重签名中用到的每一个私钥,都是独立产生的,而不是一个把256位的私钥拆分成好几段。而且多重签名还提供一些别的灵活性,比如可以要求N个人当中,任意给出M的签名即可。 3. 分布式共识 为什么比特币系统能够绕过分布式共识中的那些不可能理论? 严格来说,比特币并没有取得真正意义上的共识。因为取得的共识,随时都有可能被推翻。 比如出现了分叉攻击,本来你以为已经达成了某个共识,分叉攻击后,系统会回滚到前一个状态。从理论上说,甚至可能回滚到创世区块。按照分布式共识理论的要求,共识一旦达成后,就不应该再改了。 4. 比特币的稀缺性 比特币系统的矿工为什么要挖矿?因为挖矿是有收益的。挖矿的收益要大于成本,才是有利可图的。所以要想吸引大家来挖矿,要么增加挖矿的预期收益,要么降低挖矿的成本。 任何一种加密货币的初期,都有一个冷启动的问题。早期的时候,该加密货币不是很流行,怎么吸引大家来挖矿?---给早期的矿工更多的收益,这其实也是合理的,因为早期的矿工承担的风险也是更大的。 那么比特币是怎么做到这一点的? 一方面是早期的挖矿难度比较低,比较容易挖到;另一方面是早期的出块奖励比较高,每个区块是50BTC,以后21万个区块后不断减半。 5. 量子计算 像比特币这样的加密货币,是建立在密码学的基础上,将来量子计算机发展起来之后,这些加密货币会变得不安全了?传说中的量子计算机是非常强大的,可以破解各种现有的加密算法。 这个担心是不必要的。 第一是因为量子计算机离实际落地使用还有很长一段距离,在比特币的有生之年,不一定会产生实质性的威胁。而且如果量子计算机真的落地使用了,首先冲击的是现有的金融业(网上银行,网上支付等); 第二是比特币系统并没有把账户的公钥,直接暴露出来,而是用公钥取哈希值后得到的地址。比特币当中用的非对称加密体系,从私钥是可以推导出公钥的。所只要把私钥保管好,即使公钥丢了也没有关系。那么从公钥,显然是不能推导出私钥的。假设将来量子计算机发明出来后,比特币在设计中又加了一层保护,没有使用公钥本身,而使用的是公钥的哈希。所以有人想偷你账户的钱的话,首先是要用地址推导出公钥,相当于把公钥的哈希值进行逆运算,推导出原来公钥的本身。而这一点,即使是用量子计算机,也是没有办法完成的。 加密和取哈希,是两个不同性质的操作。 加密的目的,是为了将来能够解密,所以加密算法要保证信息的完整性,加密过程是不能够丢失信息的,这样将来解密的时候,才能还原出原来的输入。但是取哈希的过程,一般来说,是会造成信息的损失的。 哈希函数一般都是不可逆的,从这个哈希值没有办法推导出原来的输入是什么,因为有很多的信息在取哈希的时候,已经丢失了。 比特币的一个地址,一旦用过之后,就不要再用了。每次你从该地址取钱的时候,最好是一次性的把里面的钱都取走,除了要支付给别人的钱以外,剩下的钱可以转给自己另外一个账户。这样做,不但增加了安全性,而且也提高了隐私保护的程度。 今天就学习到这里,明天见。 ## Publication Information - [币同学](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/): Publication homepage - [All Posts](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818): Subscribe to updates