一、匯率中介

衆所周知,比特幣和區塊鏈技術的爆發增長態勢,牽動了各領域從業者和普通大衆的神經。銀行、金融、物流、保險、農業、電商、互聯網科技等行業紛紛在區塊鏈領域加大投入,推出了自己的產品;大批投資者也紛紛湧入了數字資產交易的陣營。甚至引發了各國政府相關職能部門的密切關注。

由於法定貨幣的主導地位,加密貨幣需要與法定貨幣建立匯兌關係。近來,由於各國針對比特幣等加密貨幣政策的調整以及比特幣國際市場環境的變化,區塊鏈加密貨幣交易市場也隨之發生了較大的變化。

法定貨幣的兌換通道變得稀缺,由此衍生出了一些用於交易媒介的數字資產,如:USDT、BNB 等,起到鏈接法幣與加密貨幣匯率的作用,這裏簡稱爲匯率中介。這些中介有些與美元具有 1:1 的匯率錨定關係(如:USDT),而有些則不是。

然而,即使與法幣具有穩定的匯率,但這是共識匯率,而不是市場匯率。前者對其發行主體的信用要求更高。由於在加密貨幣領域,目前仍然缺乏有效的金融管制措施,這些商業公司發行的代幣,難免不讓人擔憂其信任問題。如果無限量超發,會有 價值歸零 的風險。以 USDT 爲例,雖然其發行公司 Tether 聲稱,每一個 USDT 背後都有 1 美元實體貨幣作擔保,但一直以來,似乎從未將審計結果公之於衆,根據相關報道,現實情況不容樂觀。

可以看到,類似 USDT 這種匯率中介普遍存在的問題,就是信任問題。比特幣和區塊鏈技術的出現,就是爲了解決信任問題而生,卻最終我們又繞回到了信任問題。那麼,這種匯率中介的信任問題有沒有辦法解決呢?

回顧比特幣短短几年的發展歷程,湧現了大量的周邊新技術和新的加密貨幣(簡稱另類幣)。另類幣爲了擴大貨幣的分散程度和價值的影響力,往往需要與比特幣的價值掛鉤,通常有以下幾種方案:

  1. 基於銷燬證明的單向掛鉤,即銷燬一定量的比特幣才能獲得相當數量的另類幣。這種方式使得另類幣有價格上限(最多值 1 個比特幣),同時也難以實施,畢竟以比特幣的地位,誰願意銷燬它呢;

  2. 基於比特幣擁有證明的免費發放(俗稱領糖果),這是目前最受歡迎的方式,但無法確定匯率;

  3. 側鏈技術,類似於準備金制度,通過抵押一定量的比特幣去創建新的另類幣,即用另類幣替代流通中的比特幣。這樣可以用固定的匯率錨定到比特幣上,避免匯率的大幅波動;

4.BitShare 合約(如 BitUSD)技術,基於抵押 BTS 的法幣錨定幣貸款。

上述方案中,側鏈和 BTS 貸款技術是兩種能夠獲得比較穩定的匯率同時又能解決信任問題的方案。這種類似於準備金制度的技術,在國家機器中亦早有應用,如早期金本位的貨幣制度,和港幣的 100% 準備金制度。港幣兌美元這種自由市場環境下的匯率能夠始終維持在 7.8:1 左右的水平,是 100% 準備金制度可行性的最好證明。

但是側鏈和 BTS 貸款這兩種方案是否適用於匯率中介呢?側鏈技術適用於新發行的另類幣,但不適用於法幣;而 BTS 貸款技術在一定程度上是可行的,但受限於 BitShare 本身的發展狀況和市場規模。那有沒有更簡單有效的方案,能夠實現匯率中介的功能,又能同時滿足恆定匯率的法幣錨定和信任要求,從而解決匯率中介的信任問題呢?答案是:Yes。

二、協議實現

本文將講述一種將法定貨幣安全轉移到區塊鏈上的實現方法:基於價值載體的法幣上鍊流通協議。

2.1 協議的目的

讓法定貨幣可以安全的轉移到區塊鏈上,以便流通,也可以再轉移到鏈下收回法幣。

2.2 解決的問題

解決法幣錨定幣缺乏信任機制 的問題。

當前全球加密貨幣交易所,所流通的法定貨幣錨定代幣(如:USDT)並沒有可信的發行主體和可靠的金融管制措施,亦無價值載體,有價值歸零的風險。

2.3 實現方式

通過使用當前流通中的得到普遍認可的具有 UTXO 特性的公鏈作爲價值載體,以承載等值法定貨幣。

需要三方技術協作:

• 區塊鏈 UTXO。在 UTXO 裏面植入協議數據信息(該操作由錢包完成),以生成載入法幣的 UTXO,這裏記作 UTXOLET;

• 移動端錢包(如:dEdge 幣兜錢包)。錢包解析協議,顯示法幣金額,並實現流通(支付 / 接收)操作;

• 兌換網關。網關負責法幣和鏈上數據的兌換籤發操作(如:向等額 100 美元的量子鏈 UTXO 中寫入協議,或者反向操作),我們將簽發後的 UTXO 記作 UTXOnUSD (如:UTXO100USD,UTXO25CNY)。

支持本協議的錢包在處理 UTXOLET 的時候,顯示的是法幣金額而不是加密貨幣面值,用戶必須把它當做 固定面額 的法幣來使用。

2.4 價值載體與價值的協議轉換

例如:向等額 100 美元的 1.8 個量子鏈 UTXO 裏面寫入 100USD 協議信息,由於 1.8 個 Qtum 本身的價值就是 100USD,所以不用擔心錢包(如:dEdge 幣兜錢包)裏面的這 100USD 會像 USDT 那樣價值歸零。同時如果某些錢包由於技術問題沒有正確流通這個 UTXO100USD,而當作了普通 Qtum 加密貨幣進行流通,那麼雙方也幾乎沒有損失(僅有匯率波動的小差異)。

協議信息的寫入主體是自由的:

• 持幣者個人自己寫入;

• 兌換網關根據當前市場價格及用戶購買的額度寫入。

對於個人寫入者(假設個人很誠實,按照市場價格寫入,不誠實的問題將在第三節論述),由於寫入後,僅能按照法幣面值進行流通使用(即失去了加密貨幣而得到了鏈上法幣),因此無法獲得雙倍的價值;

對於兌換網關寫入者,用戶支付了一定額度的法幣,平臺使用相當額度的 UTXO 來承載這個額度的法幣並支付給了用戶,這是一個價值載體的交換,網關得到了鏈下法幣,用戶得到了鏈上法幣,雙方均無損失(用戶可能需要支付點手續費)。

如果用戶希望兌換回法幣,同樣有兩種方式:

• 與個人交換。可以將 UTXOLET 支付給任何有鏈上使用需求的人以交換回等值法幣,獲得該 UTXOLET 的人依然可以在鏈上使用這 nUSD(nCNY),雙方均無損失;

• 去平臺兌換。平臺由於在發行 UTXOnUSD 的時候,得到了 nUSD 的法幣,因此在用戶提請換回 nUSD 法幣的時候,也無損失,沒有理由拒絕兌換;即使某一平臺出於某些原因不得不拒絕,我們可以有許多平臺,用戶可以給其信用評級打分。

可以看到,UTXOLET 具備兩種屬性,一個是協議法幣額度,另一個是區塊鏈上的 UTXO 價值載體。但一次只能使用其中一種屬性。無論使用哪種屬性,都不會導致顯著的損失(唯一的損失 / 增值是匯率波動)。

綜上,我們通過將協議信息 nUSD(nCNY) 寫入到 UTXO 的方式將兩者捆綁爲一個單元(即 UTXOLET),並將本無價值的協議信息價值轉換爲由與其面額等值的 UTXO 價值承載,隱藏 UTXO 作爲加密貨幣的實際價值,並揭露協議信息的價值。我們把這個過程稱爲價值的協議轉換,並把該 UTXOLET 稱爲價值載體。

由此我們可以認爲:基於價值載體的協議轉換機制使得鏈上法幣的信任問題得以解決。

2.5 技術實現

代碼級的技術實現分爲以下幾部分:

• UTXO 的輸出腳本。植入的協議信息將寫入到腳本(這是本協議的核心),信息不易過長,且不應對 UTXO 在支出操作時的腳本執行有任何干擾作用。最簡單的實現方式就是 在腳本的開頭位置寫入協議數據,並在後面跟 OP_DROP 操作碼;
• 網關簽名。即簽發商的私鑰簽名,用於公開監督;
• 網關驗證。網關公鑰證書或鏈上存在性證明;
• 協議格式。可以使用普遍應用的 Uri;
• 錢包客戶端對協議的識別、簽名驗證與風險提示;
• 下鏈兌換與信息銷燬。

例如,這是一個正常的交易(transaction)數據結構:

{
\"hash\":\"3b06b1e9d70217d5e02644703fe79f54355b0ea05cd535787f5a6c627f1c\",

  \"ver\":1,

  \"vin_sz\":2,

  \"vout_sz\":1,

  \"lock_time\":0,

  \"size\":404,

  \"in\":[

    {

      \"prev_out\":{

       \"hash\":\"022e05bdfa2e148bc1882cb7a81506b8316fee6957b11625126d075a8cf8791b\",

        \"n\":0

      },

      \"scriptSig\":\"304402203c1db72394263dd50070b91bb1da9125c591f15772dfc628f41447dabb7798a10220302dc6e7e8c81e24da9a99d5ac7233b90156a410051a50bb29d55aabbf0ff24d01

         02b8c918bd169a5e669cc149549f822dd5f2c50872eb83172a1c69172277fe378f\"

    },

    {

      // 另一個輸入,省略…

    }

  ],

  \"out\":[

    {

      \"value\":12.51603279

      \"scriptPubKey\":\"OP_DUPOP_HASH160 69e02e18b5705a05dd6b283d517716c894b3d42e

          OP_EQUALVERIFY OP_CHECKSIG\"

    }

  ]

}

應該在 scriptPubKey 字段位置插入協議信息。協議內容格式 可初步定義爲如下 Uri 格式:

pin://usd/100.00/sig/3045022100db4dce24fae7a39faf9779a9e5efcb56a996606f67afd564447460cf939f52160220560c0347cd2abc16d36021dd7772788a90f8e10e7a330e7a9fd97ae55b42b61601/pk/024474f8829de5d7492a33c4ff15d054b73db49c6573f09572771e5120811c4979

將該 Uri + OP_DROP 插入到 scriptPubKey 字段值的 OP_DUP 前面,即可完成植入。其中:pin 是協議的識別標識;usd 位置標識對應的法幣幣種,後面跟面額;sig 後面跟簽發商對該 UTXO 的簽名;pk 後面跟簽發商的公鑰。這樣便完成了 UTXOLET 的簽發過程。

錢包客戶端在解析 UTXO 餘額的時候,應該首先查看 scriptPubKey 字段是否以 pin:// 開頭,如果不是,則正常統計該 UTXO 的餘額(即 value 的值);如果是,則應該檢查簽名(sig 後的內容)是否有效,然後顯示該 Uri 中對應法幣的面額,同時查詢並顯示公鑰(pk 後的內容)對應簽發商的 信用評級,對於信用評級較低的簽發商,應該顯示風險提示。

錢包客戶端應同時爲用戶提供對簽發商的評級投票功能。該功能可以通過 智能合約 實現,以提高公信力,而投票的統計也可以很簡單:有多少面額的 UTXOLET 出了問題,那就統計多少票;甚至可以 拿錢投票:用戶自願銷燬出問題的 UTXOLET 並提供銷燬證明去投票以增加可信度。這要求智能合約具備查詢鏈上數據的能力。

如果要解決第 3.3 節提到的問題,可以在 scriptPubKey 中變更相關控制腳本,這屬於常規支付腳本控制問題,不屬於本協議要討論的內容。

2.6 應用示例

用戶想要轉移 100USD 到區塊鏈上,以便用於投資其它加密貨幣。可以向 dEdge 公司提請兌換操作,此時我們充當兌換網關(即:簽發商)。用戶向 dEdge 公司支付 100USD,dEdge 向用戶的加密貨幣錢包幣兜錢包發送植入了 100USD 協議信息的 1.8 個量子鏈 UTXO (即:UTXO100USD)。所有使用幣兜錢包的用戶都可以正常發送 / 接收這個 UTXO100USD,用於購物或者其他交易。收到 UTXO100USD 的用戶,如果希望兌換回法幣,可以再向 dEdge 公司提請兌換操作。

該流程是一個可持續循環,對於任何一方都沒有任何安全風險和損失。兌換網關用於簽發上鍊而使用的等值加密貨幣載體,需要購買得到,因此與用戶交換的法幣,實際流向了加密貨幣持有者。法幣持有者獲得了區塊鏈上的資產,而加密貨幣持有者獲得了鏈下法幣資產。若價格下跌,最終的損失承擔者可能是持幣者而不是 UTXOLET 持有者。

三、需要應對的問題

筆者曾在多處提到:衡量一個技術方案的好壞,最重要的指標就是 抗作弊能力。

因此本協議也需要解決作弊問題。

3.1 簽發者信用

前文提到,針對協議信息的個人寫入者可能會出現不誠實的問題:使用價值低於面額的價值載體 去承載某面額的法幣。不僅僅是個人,網關平臺也可能存在該問題。要解決該問題其實不難,2.5 節已經提到了:簽名監督與信用評級。

• 協議要求發行者對 [創建 UTXOLET 時寫入的協議信息] 簽名並公佈其公鑰。公佈公鑰的最好方式是在鏈上寫入永久性存證,並接受對存證的證明請求;
• 由於區塊鏈本身就是一個時間戳系統,我們可以追蹤流通中的(未花費的)每一個 UTXOLET 創建時的粗粒度時間,並在交易平臺歷史數據裏檢索該時刻的價格,以確定相關簽發者是否誠實,併發布各簽發者的信用評級;
• 錢包客戶端在準備接受一個付款時,可以查驗簽發者的信用評級以決定是否接受付款。在實現比較好的錢包(如 dEdge 幣兜錢包)裏面,應該能夠看到如同瀏覽器地址欄上顯示的該網站的 https 簽名評級。
• 下鏈兌換操作,應該找簽發者平臺進行兌換,當然也可以賣給有需要的人。

3.2 匯率波動與價值承載差異

假如某 UTXOLET 的流通時間過久,而沒有及時進行下鏈匯兌,或者本來某價值載體的匯率波動就很大,從而導致價值載體與協議價值的差異巨大。比如:用 1 BTC 創建了 UTXO10000USD,一月後,1 BTC 價值是 5000USD,在這種情況下會發生什麼?

• 若簽發商承兌,是否會虧損?

理論上講,不會。由於簽發商曾經收到了 10000USD 從而簽發了一個 UTXO10000USD,現在再兌換回來,他沒有損失,卻賺取了手續費,以及法幣的存款利息,總體上是盈利的狀態。或許簽發商沒有如此巨大的存量以滿足用戶的隨時兌換需求,會將存量法幣用於投資,或者用於其它用戶的下鏈匯兌,從而有可能造成了流動性問題,這不屬於本文的討論範疇。

• 若簽發商拒絕兌換,會造成信用問題,同時可能會觸發擠兌危機。

長遠來講,法幣的貶值與加密貨幣的升值,使得簽發商與用戶各方都不會虧損。

那麼,如果在用 1 BTC 創建了 UTXO10000USD 的一個月後,1 BTC 價值是 15000USD,這種情況下又會發生什麼呢?

  • 由於在簽發商處兌換,只能得到原本的 10000USD,用戶可能會想辦法將其支付給不支持的錢包,然後再將它賣出去以獲得 15000USD。那麼此時,對簽發商會有什麼影響呢?法幣將會累計,簽發商不得不購買更多的加密貨幣以滿足上鍊需求。

3.3 遏止用戶作弊

有一個辦法可遏制上述匯率大幅波動導致的兌換問題,使得簽發商在匯率大幅上漲和下跌的時候,存量能夠總體獲得平衡。

  • 限制 UTXOLET 只能在某協議 P 下流通,即:簽發商控制一個腳本參數,UTXOLET 在簽發後,只能由他們自己回收。該參數可以是一個 難度不太高的 hash 謎題,也可以是 簽發商聯合多簽名,以便在簽發商出現事故的時候,其他簽發商或個人可以接管並進行回收。

  • 當然最好的辦法,是加密貨幣對法幣的市場匯率趨於穩定。

  • 關於某協議 P,是無須手續費的鏈下快速支付協議(仍需聯網進行復雜的證明操作),筆者將在另一篇文章進行論述。

四、協議的意義

如前所述,本協議通過基於價值載體的協議轉換機制解決了 UTXOLET 作爲匯率中介的價值信任問題,消除了 USDT 等價值歸零的風險,同時實現了法幣上鍊。

法幣上鍊使得在區塊鏈上使用法幣交易變得可行,讓區塊鏈技術走向實體經濟更近了一步。對於已經接受了加密貨幣支付的電商平臺而言,不再需要被匯率波動問題所煩擾;而對於青睞區塊鏈技術特性(控制權、所有權轉讓、安全性和可靠性等)但又不能接受加密貨幣支付的某些領域(如:物流、共享租車、智能鎖等),這也不失爲一個極佳的選擇。總結起來,法幣上鍊 促成了以下幾方面的進步:

• 使得法幣流通能夠脫離傳統的第三方信任中介(例如:銀行和支付寶),從而使法幣的“匿名”且“電子化”的支付方式變得可行(傳統的法幣支付方式,“匿名”和“電子化”不可兼得:電子支付必須有中介的存在,不可匿名;而匿名僅能使用紙、硬幣現鈔,又不可電子化);

• 任何支持本協議的區塊鏈錢包,都可以進行該鏈上法幣的存儲和支付操作,而不需要向任何第三方機構註冊登記。這就如同 支付寶可以與微信間相互轉賬,而雙方也不再需要銀行的接入授權;

• 手機錢包 App 不再受限於特定的公司實體控制,任何組織或個人都可以實現本協議從而支持鏈上法幣的流通。用戶不用擔心被特定實體“綁架”(如僅能使用微信或支付寶);

• 法幣上鍊的網關是多中心的,當網關數量大到一定程度即等同於去中心(區塊鏈節點的數量也是有限的,但我們認爲它就是去中心化的)。這意味着鏈上法幣 UTXOLET 也是完全去中心化的,它完全可以替代類似 USDT 這種中心化且無價值載體的代幣,這不僅解決了信任問題,也打破了美元定價權,並重新拓寬了交易所法幣兌換通道;

• 基於擴展的區塊鏈 交叉鏈互換 技術,我們可以將區塊鏈 多鏈之間的價值轉移操作 原子化(即:同時進行,並同時成功或失敗),即可以實現鏈上法幣與加密貨幣的雙向原子記賬,這爲 去中心化交易所 的實施鋪平了道路。

本文主要圍繞法定貨幣論述本協議,但實際應用範圍不限於法幣,而可以是任意虛擬資產。

法幣上鍊協議爲區塊鏈世界打開了新一扇大門,其應用前景不言而喻。

五、應用拓展

5.1 虛擬資產交易

UTXOLET 可用於替代目前的 USDT,由於 UTXOLET 是定額的,事實上交易所往往有大額或變額的需求,那麼可以對同一簽發者發行的 UTXOLET 實施合併和拆分操作,方法與正常的 UTXO 支付無異。

兌換網關可以通過點對點的撮合交易方式實現簽發,同時需要建立自己的存量緩衝池,以備緩解流通性問題和 3.2 節提到的問題。

5.2 購物支付

使用加密貨幣錢包進行線上線下購物支付操作,擺脫少數法幣數字錢包的壟斷。

5.3 虛擬資產的上鍊流通

如第四節所述,本協議的應用範圍不限於法幣,而可以是任意虛擬資產。因此遊戲幣、道具、徽章等所有互聯網上的虛擬資產理論上都可以轉移到鏈上並進行流通。

5.4 共享經濟

本協議與快捷支付協議和存在性證明協議相結合,可打造出真正靈活智能的智能鎖應用。智能鎖可應用於共享經濟的方方面面,如:租房、租車等。

(關於提及的相關協議,後續會有相關文章進行論述,也都將在 dEdge 幣兜錢包中實現,敬請關注)

作者簡介
中成才
完美主義者,物理愛好者,吉他愛好者,編程愛好者。精通多種編程語言,prefer 用 Scala 技術棧構建一切,興趣爲物聯網、比特幣 / 區塊鏈領域。現爲 dEdge(幣兜) Wallet 創始人。dEdge Wallet 充分利用安全芯片和 TEE 微操作系統技術,並實現了助記詞透明加密,打造安全、便捷、有趣、會掙錢的加密貨幣錢包!