漢堡幣是一種為漢堡神教設計的電子貨幣,它是一種并行的,去中心化的,不以算力為導向的加密貨幣,它的誕生是爲了解決在漢堡神教中長期存在的一些問題,例如誰是漢堡神教中最爲傻逼的成員。並力求使漢堡神教教會成員通過共識算法來達成某種共識,例如對漢堡神教教會的認同。
作爲加密貨幣的一種,漢堡比在設計階段就考慮了如何避免傳統加密貨幣所存在的問題,例如算力浪費,和上鏈過於緩慢。漢堡幣所采用的并行結構使得每個節點都可以獨立的發行自己的貨幣,而漢堡幣獨有的基於時間序列的發幣機制,則巧妙的避免了在浪費算力的同時,又將發幣的速度控制在了一定範圍之内,從而解決了發幣過多而導致的通貨膨脹的問題。關於漢堡幣的并行結構和發幣機制,將在本文的后幾張重點闡述。
而漢堡幣的另一大優勢,則是其極快的交易速度。衆所周知,絕對的去中心化共識算法會帶來交易速度的損失,而例如POS等某些共識算法,則在某種意義上削弱了加密貨幣去中心化的特點。這是我們不希望看到的。限制交易速度的一大原因是因爲只有一條主鏈的緣故,而這也是一些并行區塊鏈項目想要解決的問題:通過多條從鏈,自然可以成倍的提高交易速度。但目前世面上所有的并行鏈,仍然會有主鏈的存在,所有并行鏈上的區塊,最終仍要通過某種方式歸并到主鏈中,所以這些并行鏈并不是真正的并行鏈,在并行鏈之上,仍有更高等級的“超級鏈”的存在。而這種并行鏈,其交易速度仍然受主鏈的限制。而在漢堡幣中,則不存在這樣的“超級鏈”。每一條鏈都是平等的,每一條鏈的地位都是相同的,所以在漢堡鏈中,所有的交易是完全并行化的,并不會受到除共識算法和網絡速度及硬件能力之外的限制。
漢堡幣沒有主鏈,因此如何確認一條并行鏈屬於漢堡幣是我們首先要解決的問題。爲了解決這個問題,我們采用了”創世紀“區塊的方式,即每一條漢堡鏈的第一個區塊都必須是創世紀區塊。創世紀區塊的結構如下所示:
+------------------------------------+
| THE BURBLE |
+------------------------------------+
| USER_ID |
+------------------------------------+
| META_DATA |
+------------------------------------+
| CERTIFICATION |
+------------------------------------+
其中,THE BURBLE
是漢堡神教的教會通過Hash算法得到的token,長度為256bit,漢堡神教的教會是神聖的,永恆的,不可侵犯的,每一條漢堡鏈的創世紀區塊都必須經過THE BUIBLE
的神聖加持,才可以被其他漢堡鏈所認可,才能加入漢堡幣組織。
USER_ID
則是漢堡鏈的唯一標識符,采用VERSION 4 UUID
算法生成,長度為128bit,使用VERSION 4 UUID
確保了每一個漢堡鏈的ID都是唯一且平等,不以時間空間爲目的轉移的。
META_DATA
則記錄了一些有用信息,其具體結構如下:
+------------------------------------+
| TIME STAMP |
+------------------------------------+
| DATA PAD |
+------------------------------------+
其中,TIME STAMP
為當前區塊產生時的Unix TimeStamp,是漢堡幣最爲重要的信息之一。將在漢堡幣獨特的基於時間序列的發幣算法中起到重要的作用。而DATA PAD
則爲長度不超過1024bit的字符串,它既可以儲存簡短的信息,也可以是指向大文件的指針,儅DATA PAD儲存的是大文件指針時,在對該區塊簽名時會將大文件的内容也納入簽名範圍。
CERTIFICATION
則記錄了漢堡幣的所有簽名/驗證所需要的信息, 其結構如下
+------------------------------------+
| Public Key |
+------------------------------------+
| Signiture of last block |
+------------------------------------+
| Signiture of this block |
+------------------------------------+
其中,Public Key
為該漢堡鏈的公式,其生成算法為RSA,長度為1024bit,區塊的簽名算法為SHA-256,簽名範圍為當前區塊,長度為256bit。
在創世紀區塊中,由於不存在上一個區塊,因此Signiture of last block
的值為0,因此,0也可以被看作創世紀區塊的創世紀區塊。