2

比特币带来的一个实质性的技术突破

 9 months ago
source link: https://happypeter.github.io/bitcoin-talk-knewcoin.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

比特币带来的一个实质性的技术突破

有一个经验告诉大家,跟别人推广比特币的时候,千万不要带有狂热的情绪,每次朋友都会笑着跟我说,“Peter, 你又被人家洗脑了吧?”,所以今天我要跟大家分享的都是一些纯粹理性的东西,一点技术干货。

有人说比特币是他们自 TCP/IP 以来见过的最大的科技创新,也有人说是自工业革命以来最大的创新。所以我准备今天的这个内容,最早是从一个疑问出发的,比特币到底有没有实质性的技术突破?例如,飞机的发明引发一场革命,为啥?因为飞机会飞。那么比特币到底会给我们的日常生活带来怎样的一个便利?

有人说这是“凯瑞斯大战哈耶克”,比特币是要复兴“自由经济”,给哈耶克大叔的《货币非国家化》的思想撑腰打气。但是我作为一个程序员,并不是这么看这个问题的。我读了比特币相关的技术资料,发觉里面用到的各项技术,都是互联网上早已经广泛使用的技术了。所谓的“去中心化”思想,也就是互联网的根本思想。比特币总的来说并不支持谁反对谁,就像人们发明拖拉机,并不是为了反对驴子的。工具是中性的,如果未来他能推广应用,就是因为它好用而已。

现在说说比特币到底是什么。它是互联网上的一个公开的账本,记录着每个账户都有多少个比特币。所谓公开,就是任何一个网络上的计算机,都可以免费下载到一个账本的完整的拷贝。可能让人稍有惊讶的是,任何人都有权查看所有账户的资金额。那么隐私怎么办?好在账户名,其实只是 Alice 的收款地址,是一串随机数,而并不是 Alice 本人的真实身份信息。

当一个人拥有了比特币。那么他至少会拥有一个“比特币钱包”。一个比特币钱包其实就是两个随机数,一个是账户地址,一个是这个地址对应的私钥。

基本的转账。如果 Alice 给 Bob 转账。她就可以动用私钥 ,这个类似于账户密码了,来从自己的账户中转出一笔比特币给 Bob,同时要把这个消息广播到全网,大家给作证,那么意思就是这个交易生效了。就跟家里兄弟倆分家差不多,要有见证人。这样等互联网上的其他的账本也都更新了两个人的余额,交易就板上钉钉,推不倒了。

说到这里,还没有体现出比特币的“实质性的突破”。扩散到各个网络节点 ,通过的是点对点的技术,通过私钥签名的形式来确定身份,也是很常见的加密通信的操作。

真正的突破在于如何在互联网上达成共识,大家共同认可同一份账本。

如果大家同时认可同一份账本,那么实际上我们就可以实现数字资产的“传递”。所以换一个角度来说。传统的互联网,解决的是一个 “传播”问题(我给你一个东西,那你有了这个东西,但是我也是还有一个备份的,例如发一封电子邮件),比特币是第一次实现了一个东西的“传递”(我给你一个东西,那么你有了,我就没有了)这个就是所谓的“实质性的技术突破”。

有人说,银行转账就是“传递”。我有一百元,转给你了,你就有了,我没有了。但是大家想想一下这个过程其实只是银行的员工改了一下数据库,改了一下他自己那个账本。这种所谓的传递,可以说不是由互联网来完成的:这个过程基本上是有一个“老大”,并且我们必须信任这个老大,于是“老大”说转移了就转移了。而比特币,作为一个好用的工具,要达到的是这样一个效果:第一,我和你交易,不需要老大来,老大来了可是要收保护费的;第二,我和你只是在互联网上的两个用户,相互之间毫无信任可言,需要比特币系统自动防止交易欺诈行为。(注:再扯可能就有点远了,交易无欺诈,其实是通过第一,交易不可逆,第二,支付过程公开,买家可以提出证据,这样来同时保证买卖双方的安全的)

回到具体实现。这个共识,也就是维护全网唯一版本的一个账本,是通过“挖矿”来达成的。具体过程是这样,在比特币的网络上有一些运行着专门的挖矿软件的计算机,叫做矿工。矿工会收集最近的所有交易,组成一个“区块”,然后矿工就开始拼命计算一个数学问题,谁先算出答案,这个矿工就有权利把这个区块广播到全网,其他的矿工就会把这个区块添加到自己本地的这个账本上,其实账本还有个学名叫做区块链,意思是由很多区块组成的一条链。可见挖矿的本质就是争夺记账权,之所以叫挖矿,是因为哪位矿工拿到了这个记账权,那么会有一定数目的比特币奖励给他作为酬劳,这也就是所谓的“挖到了比特币”。

矿工每次要算的这个数学问题,是要消耗大量的运算能力的,那么这么做的意义是什么呢。简单来说就是防止欺诈。在比特币网络上,一个规定就是如果区块链由于各种原因发生了分叉,那么最终比较长的那个链会被全网采纳。如果一个骗子矿工想往账本中加入作弊的交易,那么必然会导致区块链的分叉,骗子如果想最终得逞,那它需要让自己的这个叉上面的区块增加的速度比诚实的那个分叉快。这一点是非常难以做到的,他自己的运算能力需要超出全网所有矿工的运算能力总和才行。

所以,挖矿的过程,其实还是一个投票的过程。也就是,既然没有老大了,那我们信谁呢。答案是:相信大多数人。但是如何在网络上定义一个人,又是一个没有完美答案的问题。如果规定一个 IP 代表一个人,那么其实有些人是能够一下子垄断大量的 IP 的。所以稍好一点的方式,是一个 CPU 代表一个人。这样如果,有坏人想要冒充很多人的话,那么他起码要投入很多钱来买运算力的。还是前面说的,如果这个坏人的运算能力不能超过所有诚实的人之和,那么也是没有能力造假的。所以以前我总是很讨厌挖矿,总觉的不够低碳环保。后来想想其实全网的运算能力越强,坏人就越难得逞,所以也值了。看看现在金融系统每年的自身消耗,这点电基本微不足道。

好了,一旦交易达到了不依赖于第三方。那么就打开了一切的可能:超级低的交易手续费,基于基础比特币协议进行创新不需要经过任何一个老大的许可… 就说这么多,谢谢!

  • https://bitcoin.org/bitcoin.pdf
  • http://avc.com/2013/10/video-of-the-week-bitcoin-under-the-hood/

欢迎所有朋友加我微信:happypeter1983


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK