格林威治時間,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版本的重任呢?

曾經我是對此報以期待的。在過去幾年裏,比特幣甚至帶起了整個暗網的非法交易,展現了良好的局部貨幣屬性。

但看一個事物,不但要從技術、現實等基本面分析,還應該看到背後的思想博弈。

社會形態的博弈

密碼朋克,一直是自由、加密、無政府主義的支持者。

因此,比特幣的本質其實是純粹的民主思想。以去中心化、少數服從多數、自由競爭爲特徵。

貨幣的形態,其實是社會組織形態的外化。貨幣是中心化還是去中心化,背後其實是中央集權和民主思想的博弈。

比特幣剛出現時,恰好是國內整體輿論環境對美式民主最嚮往的時期,人們熱衷於討論民主和中央集權的優劣。

但近年來空氣幣、割韭菜等事情會令人思考,在一個相對自由的框架下,任由叢林法則和馬太效應發酵,是否能自發導致系統的穩定運行,答案可能是否定的。

未來貨幣是什麼形態,也許還是要看未來若干年的社會形態走向。

相關文章