内容简介:格林威治时间,2009-01-03 18:15:05。比特币创始人中本聪挖出了比特币的首个区块——创世区块(Genesis Block)。
格林威治时间,2009-01-03 18:15:05。
比特币创始人中本聪挖出了比特币的首个区块——创世区块(Genesis Block)。
从此,拉开了十年来轰轰烈烈的数字货币、区块链浪潮的序幕。
密码朋克也开始了他们最深刻的一次社会实验。
虽然大家每天使用 HTTPS 协议浏览网页,用 HASH 算法保证下载资源的完整,插着 U 盾使用网上银行,但背后的密码学一直都是小透明的存在,大众对密码学的认知基本还停留在上世纪的谍战电台中。
直到比特币横空出世,携带「重新发明货币」之威势,第一次让密码学知识走进普通人的视野。同时,也带来了大量关于政治和经济的思考。
故而,我更愿意把比特币看作一次社会实验,而非经济现象。要讨论这样一次伟大的社会实验,技术反倒成了次要,我想从货币和社会谈起。
货币的演化史
既然把比特币看成货币,那么首先要找到它的历史定位。纵观人类货币的演化过程,大概有下面几个阶段:
- 自然货币时代这个阶段,货币基于一般等价物的稀有性或者实用性,货币不可能出现人为操纵的超发。
- 信用货币时代当交易量越来越大,自然货币太不方便了,而且大家发现货币本身有多少价值并不重要,在意的只是货币能不能交换到足够的商品,于是纸币这种信用货币逐步诞生,并且发行方由钱庄、地方政府逐步到中央银行。而近年来,由于技术进步,近一步过渡到v2.5版本,纸币数字化,催生了更多经济形式,但相较纸币,其中蕴含的国家信用本质并没有改变。
- 未来?下一代货币是什么样子,我们还不知道,而比特币展示了一种可能性。但也可能,并没有下一代。
货币发行和社会形态
经济活动作为人类群体生活最重要的行为之一,深刻影响了人类的社会形态。从货币发行这件事上也可以发现许多相关性。
- 在自然货币时代,货币的实际发行者是——大自然。
- 在信用货币时代,货币的实际发行者是——人类。
在这里,货币发行第一定律出现了:
「货币发行第一定律」:谁负责发行,就要用那个世界的规则限制发行量。
- 大自然的限制规则是:产量。
- 而人类的限制规则是:中央集权。
再来看另一个现象:自然货币时代,由于货币本身的稀缺性,基本没有办法随意增发货币。而信用货币时代的轨迹,会发现货币本身的价值在不断降低,换个说法就是货币增发的成本越来越低。这表明,对信用和中央集权的依赖程度就必须增高,于是货币发行方从私人钱庄、地方政府逐渐到中央银行。可见,货币的形态和社会的形态是直接关系的,货币成本不断降低的同时人类从松散社会逐渐演变为现在的高度中央集权社会。所以,货币发行第二定律也出现了:
「货币发行第二定律」:谁降低货币发行成本,就必须同时加强那个世界的规则。
这意味着,随着货币的信用化,中央集权的社会模式必须逐渐壮大。
就这样,货币在人类的权力规则下正常运行了数千年。为何人类对权力越来越贪婪,就是因为货币价值越来越依赖权力。
重新发明货币
而当货币模式演进到v2.5时代,也就是移动支付时代时候。由于计算机网络的发展,增发货币的难度变成只需要修改央行的数据库,成本几乎变为零了!
根据我们总结的「货币发行第二定律」,这意味着人类负责发行的信用货币体系可能走到了某个节点上,人类的中央集权模式也到了某个节点。
货币要继续向前发展,需要寻找另一个维度。
社会上后来出现了两种思潮:一种是建立超主权货币;一种是比特币为代表的互联网去中心化模式。
但超主权货币的可能性很低,因为货币不仅仅代表了价值交换的工具,同时还要承担秩序的输出功能,与所有国家主权脱钩的货币难以承担这种角色。更不用说某些国家还需要利用自己的货币玩金融剪刀游戏。
于是回到「货币发行第一定律」,我们发现,其实这时候有自然和人类之外的第三个势力参与到货币发行上来了,就是计算机网络。它改变了信用货币时代人类单纯依靠增强中央集权来降低货币发行成本的模式。按照货币世界的规则,新的势力应该担负起建立新规则的任务。
计算机世界限制发行量的规则是什么?那显然就是计算难度。
然而要让计算机网络独立于人类来建立规则,这本身就是一个极富挑战的难题。但中本聪在2019年创造性的发明了区块链的概念,来解决这个问题,给货币的发展带来了新维度的可能性。
什么是区块链
高级的东西往往很简单,区块链也是一样。
用个成语接龙到游戏来说明:
当多个小朋友一起玩成语接龙游戏时,往往大家都能第一时间想到答案,但大家一起抢答就会混乱掉,该从谁的成语往后接呢?
传统的方法是选择一个主持人,想到的小朋友先举手,由主持人来判断谁举手最快,再决定由谁接龙。这样能保证接龙结果是一条没有分叉的链条。这就叫中心化方案。
现在如果不能有主持人,该怎么保证秩序呢?于是中本聪大神发明了一个方法:
我们来扔骰子吧,每人拿6个骰子,谁先扔出至少5个1,谁就有资格接龙。
于是这个游戏,就在没有主持人的情况下,能正常玩下去。当有更多小朋友参与的时候,可能经常同时有人能扔出5个1,那么简单,就把规则改成7个骰子扔六个1,随着人增多,骰子个数也不断增加以增加难度。
这就是区块链的去中心化方案。通过扔骰子的难度,提高接龙的门槛,保证接龙结果是没有分叉的链条。
而真正实现的时候,使用的扔骰子方案就是之前上一篇密码学中介绍过的 SHA256 Hash 算法。只有找出一个数和最近的转账数据算出足够小的 Hash 值,才拥有记账权,也就是给整个链加入一个新的区块。
最简单的区块链实现
「Talk is cheap. Show me the code!」—— Linus Torvalds
这里用 python 实现一个不到50行代码的区块链 demo,其实原理非常简单。
import hashlib import datetime class Block: def __init__(self, index, timestamp, data, last_hash): self.index = index self.timestamp = timestamp self.data = data self.last_hash = last_hash self.hash = self.hash_block() def hash_block(self): sha = hashlib.sha1() info = str(self.index) + str(self.timestamp) + str(self.data) + str(self.last_hash) sha.update(info.encode("utf8")) return sha.hexdigest() def genesis_block(): # 创建创世区块 return Block(0, datetime.datetime.now(), "GenesisBlock", "0") def next_block(last_block): # 生成下一个区块 this_index = last_block.index + 1 this_timestamp = datetime.datetime.now() this_data = "I'm block " + str(this_index) last_hash = last_block.hash return Block(this_index, this_timestamp, this_data, last_hash) if __name__ == '__main__': # 初始化区块链 blockchain = [genesis_block()] last_block = blockchain[0] print("Block #{} created!".format(last_block.index)) print("Hash: {}\n".format(last_block.hash)) num_of_blocks = 5 # 生成区块链 for i in range(0, num_of_blocks): new_block = next_block(last_block) blockchain.append(new_block) last_block = new_block print("Block #{} has been added!".format(new_block.index)) print("Hash: {}\n".format(new_block.hash))
不过,没有带挖矿和交易的功能,执行下来的结果:
Block #0 was created! Hash: 4b3eb7f7bbe233bc362d8db7c21623468b6f8ff1 Block #1 has been added! Hash: a5c1683226254eef0cddf62bc1ce2034bc2cc9da Block #2 has been added! Hash: 55db159cbc62455f45c82f4b69b102c0c78f55b2 Block #3 has been added! Hash: e9cafa8d8eaa86a9a709ef115dfa2570dff4f383 Block #4 has been added! Hash: 032dfccebeaa7bc5fb4b27849e410c7f56e6111d Block #5 has been added! Hash: 68feb74d92b322881f0ba97cfd25ceff93552e5f
很显然,我们已经创造了一条区块链,在这个基础上再进行一些深入的开发,就能赋予它货币的能力,仿佛看到了毛爷爷在亲切地招手。
比特币解决了什么
曾经,通过网络只可以进行信息的匿名传递。
现在,通过比特币还能进行价值的匿名传递。
然而,比特币是否能如前面所说,肩负起货币v3.0版本的重任呢?
曾经我是对此报以期待的。在过去几年里,比特币甚至带起了整个暗网的非法交易,展现了良好的局部货币属性。
但看一个事物,不但要从技术、现实等基本面分析,还应该看到背后的思想博弈。
社会形态的博弈
密码朋克,一直是自由、加密、无政府主义的支持者。
因此,比特币的本质其实是纯粹的民主思想。以去中心化、少数服从多数、自由竞争为特征。
货币的形态,其实是社会组织形态的外化。货币是中心化还是去中心化,背后其实是中央集权和民主思想的博弈。
比特币刚出现时,恰好是国内整体舆论环境对美式民主最向往的时期,人们热衷于讨论民主和中央集权的优劣。
但近年来空气币、割韭菜等事情会令人思考,在一个相对自由的框架下,任由丛林法则和马太效应发酵,是否能自发导致系统的稳定运行,答案可能是否定的。
未来货币是什么形态,也许还是要看未来若干年的社会形态走向。
以上所述就是小编给大家介绍的《密码朋克的社会实验(三):比特币发明了什么》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 再次简单明了总结flex布局,一看就懂...
- Mac上最简单明了的利用Docker搭建Redis集群
- 编程语言简史:有人不喜欢花括号,于是他发明了 Python
- 编程语言简史:有人不喜欢花括号,于是他发明了 Python
- 28 種 Coding 語言簡史:有人真的很不喜歡括號,於是發明了 Python
- 以太坊联合创始人发明了新语言叫板Vyper,主链之后语言将引领新一轮大战?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Node.js实战
[美] Mike Cantelon、[美] TJ Holowaychuk、[美] Nathan Rajlich / 吴海星 / 人民邮电出版社 / 2014-5 / 69.00元
服务器端JavaScript?没错。Node.js是一个JavaScript服务器,支持可伸缩的高性能Web应用。借助异步I/O,这个服务器可以同时做很多事情,能满足聊天、游戏和实时统计等应用的需求。并且既然是JavaScript,那你就可以全栈使用一种语言。 本书向读者展示了如何构建产品级应用,对关键概念的介绍清晰明了,贴近实际的例子,涵盖从安装到部署的各个环节,是一部讲解与实践并重的优秀......一起来看看 《Node.js实战》 这本书的介绍吧!