格林威治时间,2009-01-03 18:15:05。
比特币创始人中本聪挖出了比特币的首个区块——创世区块(Genesis Block)。
从此,拉开了十年来轰轰烈烈的数字货币、区块链浪潮的序幕。
密码朋克也开始了他们最深刻的一次社会实验。
自然货币时代
这个阶段,货币基于一般等价物的稀有性或者实用性,货币不可能出现人为操纵的超发。
信用货币时代
当交易量越来越大,自然货币太不方便了,而且大家发现货币本身有多少价值并不重要,在意的只是货币能不能交换到足够的商品,于是**这种信用货币逐步诞生,并且发行方由钱庄、地方政府逐步到中央银行。
而近年来,由于技术进步,近一步过渡到v2.5版本,**数字化,催生了更多经济形式,但相较**,其中蕴含的国家信用本质并没有改变。
未来?
下一代货币是什么样子,我们还不知道,而比特币展示了一种可能性。但也可能,并没有下一代。
经济活动作为人类群体生活最重要的行为之一,深刻影响了人类的社会形态。从货币发行这件事上也可以发现许多相关性。
「货币发行第一定律」:谁负责发行,就要用那个世界的规则限制发行量。
「货币发行第二定律」:谁降低货币发行成本,就必须同时加强那个世界的规则。
这意味着,随着货币的信用化,中央集权的社会模式必须逐渐壮大。
就这样,货币在人类的权力规则下正常运行了数千年。为何人类对权力越来越贪婪,就是因为货币价值越来越依赖权力。
高级的东西往往很简单,区块链也是一样。
用个成语接龙到游戏来说明:
当多个小朋友一起玩成语接龙游戏时,往往大家都能第一时间想到答案,但大家一起抢答就会混乱掉,该从谁的成语往后接呢?
传统的方法是选择一个主持人,想到的小朋友先举手,由主持人来判断谁举手最快,再决定由谁接龙。这样能保证接龙结果是一条没有分叉的链条。这就叫中心化方案。
现在如果不能有主持人,该怎么保证秩序呢?于是中本聪大神发明了一个方法:
我们来扔骰子吧,每人拿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 datetimeclass 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: 4b3eb7f7bbe233bc362d8db7c21623468b6f8ff1Block #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
很显然,我们已经创造了一条区块链,在这个基础上再进行一些深入的开发,就能赋予它货币的能力,仿佛看到了毛爷爷在亲切地招手。
曾经,通过网络只可以进行信息的匿名传递。
现在,通过比特币还能进行价值的匿名传递。
密码朋克,一直是自由、加密、无政府主义的支持者。
因此,比特币的本质其实是纯粹的民主思想。以去中心化、少数服从多数、自由竞争为特征。
货币的形态,其实是社会组织形态的外化。货币是中心化还是去中心化,背后其实是中央集权和民主思想的博弈。
比特币刚出现时,恰好是国内整体舆论环境对美式民主最向往的时期,人们热衷于讨论民主和中央集权的优劣。
但近年来空气币、割韭菜等事情会令人思考,在一个相对自由的框架下,任由丛林法则和马太效应发酵,是否能自发导致系统的稳定运行,答案可能是否定的。
未来货币是什么形态,也许还是要看未来若干年的社会形态走向。
本文作者:云鼎实验室
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/136401.html