17比特币:简单密码学原理下的“理想主义”世界

Bitcoin: the "idealistic" world of simple cryptography

2017年12月底,比特币价格曾接近2万美元一枚,让无数人追捧,之后又一路狂跌。

这节,我们的重点不是比特币的价格,而是比特币中的加密法

先说说比特币的哪些环节用到了加密法,用上以后起了什么作用,之后我还会讲讲比特币为什么会诞生。

你会发现它是一个价值观和技术结合的产品,而且会塑造新的社会关系。


现金电子化的想法早在30年前就有了,现在我们用的手机支付就是很实用的现金电子化的例子。

但比特币这种电子现金,和它们都不一样。它的设计初衷是希望在点对点的电子现金支付中,摆脱中央银行的管制。

比如说收款和支付都是匿名,交易不能更改、不能伪造,币的数量有限,不能出现通货膨胀等,所有这些功能都由程序自动保障。

既然没有某个机构维护,币又不能伪造,加密技术就一定会用到了。

比特币中的密码学并不复杂,只有2种:

一个是SHA256加密法,另一个是非对称钥匙系统。

我们先说SHA256,它的全称是“安全哈希算法”,可不是嘻哈算法。“哈希”是Hash的音译,Hash就是进行Hash函数运算的意思。


Hash函数是这样,不论原始数据有多长、有多少位,经过Hash运算后,输出的值的长度都是固定的。

这有点像图书馆里给图书编号,不论是一本20页的足球规则手册,还是1700多页的《资本论》,它们的图书编号都是一个几厘米长的条形码。

但这个条形码要派上用场,需要几个先决条件:

1. 任何书不论篇幅长短,都能通过Hash函数计算出唯一一个条形码;

2. 条形码的长度是固定的;

3. 不可能通过条形码,反推出原书的内容。

Hash函数类型很多,比如说比特币中用到了SHA256,256就代表经过函数运算后的结果,是一个256位的2进制数字。你可以把它理解为条形码的长度。


可能有人要问,怎么可能任何一个数都能写成一个固定长度的数呢?以十进制来说,假如固定长度是2的话,最多能表示0-99这100个数,遇到103不就没法表示了吗?

没关系。还记得之前我们讲过的模运算吧?在模是100的运算中,没有103这个数字,但是103等于99+4,所以输出结果的长度如果固定是2位的时候,103就可以写成04。

而SHA256函数的运算结果,是一个模为2的256次方的值,所以这个值一定是可以写成256位的。

你可能又要问:

模的部分我知道了,但到底Hash运算是怎么算的呢?

其实这不重要,你就把它理解成是按一些规则运算了一番就行了。你只要记住,运算的结果是一个256位的2进制数就足够了。


为什么我们要把一个东西转换为一个256位的数字呢?其实最早是为了验证两个文件是否相等而想出的办法。

咱们举个例子,比如:

少林方丈玄慈大师把武功秘籍《易筋经》写成一个程序放在网上,供爱好者下载修炼。但玄慈担心有些心术不正的人,把这份文件的内容偷偷改几个字,故意让练功的人走火入魔。为了防范这个,他可以怎么做呢?他就可以把原版《易筋经》通过SHA256运算一下,生成一个值,我们称之为S1。

玄慈上传这份文档后,也把S1等于多少写上,并且注明“可能有坏人偷偷更改经文,为了避免爱好者走火入魔,请你们下载后先做一次SHA256运算,看看运算结果和我给的S1是不是一样,如果完全一致,你们下载的《易筋经》就是正版,就可以练了”。

SHA256在验证改动与否这方面,真的挺强。比如下面这3行文字只是标点上有些微小变化,内容是不变的,但它们对应的SH256值却差异非常大,一望便知这几条文字肯定是不一样的。

原文里微小的不同,就会造成SHA256值巨大的差异,而且这种差异是毫无规律可循的。

原文1:动静不失,人所易明。

S1: 284c4ddd2e5ef97924cc70e90cd02fd792e3fd62

原文3:动静不失,人所易明

S2:991780940ced6e6f910013f2ba2ac732e23601ef

原文3:动静不失人所易明

S2:62e07ce4d7d529a6268841d521bf882d3b385199


那你要问了:

这种函数用在比特币的哪一种功能上了呢?答案是好几处都用到了。

第一处就是支付信息的部分。

什么是支付信息?比如段誉找薛神医治病后需要付钱,段誉就写了一张付款的纸条,上面写“段誉需要支付100元给薛神医”,这就是支付信息。

但这条信息是有风险的,万一有人篡改了内容怎么办?在100元后面加一个“万”字,那段誉就亏死了;或者把薛神医改成薛老师,那薛神医就哭了。

而刚刚的SHA256算法,就避免了信息被篡改的问题。“段誉需要支付100元给薛神医”这条信息的SHA256值是确定的,在发出这条信息的同时给出SHA256值,之后任何的改动都会被发现。

但只保证了支付信息没有被改动过,这是不够的。因为如果有心怀不轨的坏人,写出很多条“段誉需要支付1亿元给薛神医”,然后录入支付系统,那段誉可就要哭死了。

所以,还需要加上数字签名。数字签名我们前面说过,这里就不重复了。

它们共同保证了支付信息的内容,不但没被篡改过,而且还是发信人认可的。


如果江湖上每个人付钱的人和收款的人都用这种方式记账,把信息都记录在同一个账本上,而且这个账本还是可靠的话,欠债还钱的事儿就都说得清了,江湖恩怨也自然少了很多。

2007年的时候,有个化名中本聪的人就以这个念头为基础,开发了比特币。

不过要形成一个可靠的账本,刚刚的过程还是太简单,还需要增加N种规则,才能让账本系统运作起来。

其中最重要的一条就是:

段誉支付薛神医100元钱,可是段誉钱包里真的还有这么多钱吗?

这个疑问在传统银行系统里不是问题,因为央行可以查看任何人的账户余额。但中本聪的目的是设计一个没有中央集权的交易系统,也就是大家聊起比特币最常说的“去中心化”的交易系统。

在比特币系统中,任何一个参与者和其他参与者有同样高的权限,不存在谁管理谁,谁限制谁。所以余额够不够这一步,只能通过单独的设计。

余额有多少,不能自己说了算,自己说自己还剩多少钱没人信。这一步的解决方法是——每笔交易都必须把以前的交易作为基础。

比如“段誉支付100元给薛神医”,这笔交易可以进行的前提是,之前有人付给段誉过钱,而且那笔钱不但超过100块,还没使用过。这样段誉支付100块给薛神医,这笔交易才能达成。

咱们假如之前曼陀山庄的王夫人,已经给过段誉100块钱了。那么段誉给薛神医付钱时,就会发送标准信息:

王夫人支付100元给段誉,段誉支付100元给薛神医。

然后,外加段誉的数字签名和段誉的公钥。

薛神医收到标准信息后,该用SHA256确认的确认,该用私钥解锁的解锁,通过一番运算,就可以确认这笔交易。


当然,我在举例时用了个特例,就是王夫人之前也正好给过段誉100块钱,但实际情况不会这么巧,比如王夫人给了段誉500块。

在比特币网络中的支付,其实是段誉一次支付给薛神医500块,之后薛神医再自动给段誉支付400块。

在比特币系统中,段誉是没法把之前500块钱那条信息拆成一个100块、一个400块的。因为这个网络中每个支付信息都由SHA256的签名标记过的,不能再拆分了。

之所以这么别扭、这么麻烦,是因为比特币规定了,写入账本的信息必须以之前的交易为基础。之所以要以之前的交易为基础,是因为这套交易系统里没有中央银行。之所以一定要去除中央银行,那就不是技术原因了,而是价值观的问题。

那个价值观,就是无政府主义和理想主义。

不只是中本聪一个人,相当多密码学界的人都是这样的,他们可能平时上班是网络安全专家,下班就是黑客。他们凭借缜密的思维构建了开放的互联网世界,于是就不希望这个世界里有监控,有审查,有墙。

互联网在他们脑中,应该和他们的思想一样,是自由开放的。

由这套理想主义价值观创造的社区,就是开源社区

由这套价值观设计的货币,就是比特币


这套货币有价值吗?

只能说理想主义虽然美好,但落到现实总要接受考验。

现在绝大部分比特币相关的文章,都会夸大和神话中本聪。但其实比特币从2008年发布起,就浑身都是bug。直到2010年,比特币客户端软件还只能在Mac和Unix系统上运行,在windows和linux系统里就经常崩溃。

中本聪并不是一个神人,比特币系统是靠不停的修补才顺利运行到今天的。

这还是次要的,主要是中本聪并没有系统的经济学知识,可他的设计目标却是电子现金系统。实际上运行了10年的比特币,在主流经济学界看来缺陷非常多,甚至很多缺陷都是致命的。

所以如果你一定要问我,比特币会不会成为主流电子现金?

我的答案——不会。

但比特币的价值也许会表现在其他方面,那是中本聪设计初衷之外的副作用产生的价值。

其中一个就是区块链方面的应用,它对不合理的集中权力起到了瓦解作用。

下节,先从密码学角度讲讲区块链,说说它的价值。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容