如今去中心化交易承擔著交易速度過慢和有限的可擴展性帶來的弊端。雖然一些解決方案已經被提出,但是實現這些方案所要付出的代價,往往是限制交易對可能性的數量,或者依托中心化的交易委托平臺,而中心化的交易委托簿則易受人為篡改和黑客攻擊的影響,從而存在偽造交易和作弊的可能性,以及面臨資金被盜的安全風險。本文為跨境交易等支付生態,構建出一套避免了上述缺陷的、從真正意義上實現去中心化的數字交易系統。我們使用“跨鏈閃電交易”作為核心,它利用閃電網絡的可延展性使得交易方在幾乎任意區塊鏈間的高速交易成為可能,同時通過存儲在 IPFS 上的脫鏈交易委托簿對匯率進行實時檢測。考慮到對生態環境的影響,我們使用既高效節能又減輕圖論問題的共識機制。
本文旨在提供 AtoX 區塊鏈體系結構和相應的 AXC 代幣功能的概述。Section 2奠定必要的技術背景基礎,其中涵蓋的專業術語將用于描述section 3所闡述的交易腳本,以及section 4中的跨鏈閃電交易。Section 5將描述交易委托簿的功能。Section 6對構成閃電網絡的不同節點做出區分,并且在section 7中對區塊獎勵體系作出解釋。
歷史工作。 Tiernan 在 2013 年就提出了基于哈希時間鎖 (Hashed TimelockContracts)[ACCS] 的 ACCS(atomic cross-chain swap,原子交叉交換) 協議,然而該協議直到 2017 年 SegWit(Segragated Witness Consensus,隔離見證)擴容方案 [SegWit_activation] 的正式啟用,才終于結束了它不能被真正實行的歷史。SegWit 使交易延展性 (transaction malleability) 問題得以被修復,同時也使得 Poon’s and Dryja 閃電網絡 [lightning_network] 具有了能夠被安全地在比特幣區塊鏈上執行 [BTC] 的可能性。IPFS(InterPlanetary File System,行星文件系統) 是一個內置了版本控制的分布式文件系統,它通過內容尋址超鏈接,從而在區塊鏈上進行高效的數據存儲 [IPFS]。
1. 理論基礎
從技術角度上看,AtoX 區塊鏈可以被看作是一個“標記狀態轉移系統(labeled state transition system),其“狀態”被記錄在共識分類賬上。下文對其進行的解釋并非深入到全部細枝末節,只是區塊鏈技術廣袤海洋中的小小一粟。
1.1 密鑰和簽名
AtoX區塊鏈使用由[FIPS-186-4]定義的經典ECDSA算法(Elliptic CurveDigital Signature Algorithm,橢圓曲線數字簽名算法),采用被 [Secp256k1]提出的,業已廣泛應用在諸如比特幣區塊鏈和以太坊區塊鏈等主鏈結構的Secp256k1 參數。我們定義密鑰為一個整數 d E [1, n ? 1],其中 n滿足Secp256k1 標準。公鑰則根據私鑰 d,被一個公鑰生成函數
交易地址進一步根據公鑰 Q 被生成,但由于生成該地址可以被看作完備定義的映射,因此為了表達簡便,我們在這里就簡單地假設交易地址等于公鑰。
1. 2 交易
基于比特幣交易系統構架和絕大多數加密貨幣至少都有著與其同樣的交易功能這一客觀事實,我們把“交易”的概念按照下文的方式構建。
是單射 TXID 生成函數 (TXID generation function)H 的值域,是一個加密散列函數。把輸入列表和輸出列表中的第 i 個分量上的投影記為 pi,交易這一概念的構成,就可以借助下圖的結構進行理解:
在后面的section 3中,我們將使用該二元函數以指定和例舉各種交易。
1. 3 標記狀態轉移系統
在上一節的基礎上,我們便可以把標記狀態轉移系統 (S, Λ, →) 定義為一個滿足下面性質的系統。即 (S, Λ, →) 滿足:
2. 腳本
現在我們來構建各種 ScrSig 和 PKS 函數。對于標記狀態轉移函數中的輸入腳本必須位于 PKS的 1 次逆像中。這些輸入腳本和 PKS函數都終將由代碼來定義和實現,一系列具有實用價值的協議便可以被這些代碼構架并實現出來。需要注意的是,盡管以下示例僅僅用比特幣 Script 語言編寫,但是由于比特幣腳本本質上代表了用 Solidity 語言 (以太坊腳本語言) 所編寫的腳本的一個子集,因此以下的每個語句也都同樣適用于 Solidiyt 腳本。
2.1 多重簽名合約
2.2 哈希鎖合約
哈希鎖合約 (HashLocked contract),簡稱 HLC 是一個具備以下 PKS 形式的輸出
2.3 哈希時間鎖合約
3. 跨鏈閃電交易
AtoX 區塊鏈的核心功能之一就是跨鏈閃電交易。為了闡釋該功能,我們首先來就跨鏈閃電交易的兩大基本理論基礎,即原子跨鏈交易和閃電網絡分別展開討論。
3. 1 原子跨鏈交換
原子跨鏈交換 (atomic cross-chain swap) 簡稱 ACCS,是一份旨在實現把屬于兩個不同區塊鏈上的代幣進行交換目的的協議。本文所使用的 ACCS協議是被 Noel Tiernan 首先提出的 [ACCS]。
3. 2 閃電通道
Poon 和 Dryja 在文章 [lightning_network] 中描述了“閃電網絡”的概念,閃電網絡的具體實行詳情參見 [BOLTS]。簡而言之,交易雙方開放一個所謂的“閃電通道”,并且在閃電通道上凍結雙方區塊鏈上一定數量的資金作為交易基金。各交易方通過“閃電通道”生成脫鏈交易,以重新定義基金中各方所占有的份額。通道通過 HTLCs 被連接在一起,并且速度能夠達到即時交易的程度。盡管交易各方都關閉各自的通道 (對每個通道都執行雙側關閉) 是更加經濟的操作,但是單方進行單側通道關閉也是完全可以的。
3.3 跨鏈閃電交易
通過在脫鏈閃電通道中發布原子跨鏈交換,跨越不同區塊鏈上的閃電網絡來實現價值交換就得以實現了。這使得跨鏈閃電網絡的交易速度可以與中心化交易相媲美,而無需第三方作為起到資金緩存作用的交易平臺介入。下圖為 P1,P2 和 P3 的三方交易示意圖,其中 P1 和 P2 在兩個不同區塊鏈上開放閃電通道,并通過通道彼此連接,P2 和 P3 在上面的兩個閃電網絡上通過各自的通道被連接。
4. 交易委托簿
建立在 IPFS 上的去中心化的脫鏈委托交易簿,是一個用于檢索和共享IPFS 對象的 P2P 系統。IPFS 使用 Merkle DAG 系統以確保所有被永久存儲的數據都具備唯一性和防篡改性。
4.1 IPFS
IPFS 對象可以被看作是一個元組 (d, l),其中 d代表一個非結構化二進制數據 (≤ 256 kb ),l代表一個鏈接結構數組。鏈接結構是 3-元數組 (N,H,S?),其中 N表示鏈接名,H表示 IPFS 對象的哈希,S 表示 IPFS 對象大小。超級節點為每個交易儲存以下三個文件,這些文件將持續被更新:
1. 一個包含交易委托簿的文件。只有有效交易委托 (詳見下文) 才能被寫入交易委托簿,部分執行的委托將被更新,而執行完畢的委托將被刪除。
2. 一個將會被持續重寫的,包含被成功執行的交易委托的文件。它將起到計算匯率的作用。IPFS 就像 Git repository 一樣隨著時間來跟蹤版本,因此以往的匯率可以被從文件歷史記錄中其取出來,并匯聚在一起形成歷史匯率表或者歷史匯率圖線。
3. 一個包含跨鏈閃電網絡中當前活躍閃電節點列表的文件。
交易委托簿的 Snapshots 會被存儲在 AtoX 區塊鏈上。
5. 節點種類
我們在跨鏈閃電網絡中區分四種對象類型,即用戶、普通節點、備選節點和超級節點。
首先我們對通常意義上的“跨鏈錢包”做出概述(我們的跨鏈錢包以Atox Swapp App 的形式呈現),然后對上述四種對象進行解釋。
5..1 跨鏈錢包
錢包 (wallet) 是一個實現確定性功能的軟件,這里的確定性功能則是指將加密貨幣的私鑰映射到對應的公鑰和地址。應用這些功能,錢包可以在給定私鑰的情況下,重建出相應的地址,并通過添加尚未花費的交易輸出量,方便地向擁有該私鑰的個人顯示出該地址可用的資金數量。錢包還可以重建儲存在區塊鏈上的該地址的支付歷史。
雖然閃電交易的開倉和平倉交易被儲存在各自的區塊鏈上,但是基金再分配合約卻由于是脫鏈合約的緣故,并不會被儲存在區塊鏈上。這意味著如果個人丟失了仍然開放著的閃電通道上的脫鏈交易歷史記錄 (例如儲存交易歷史的物理設備損壞),那么這條閃電通道上的基金會被凍結,直到另一個交易方單向關閉這條通道為止。如果交易雙方都丟失了各自的脫鏈歷史記錄,基金將永遠丟失。因此,個人應該盡可能只和受信對象進行通道連接。這里的受信對象,指的是其被信任采取了例如擁有物理備份等安全設施。
跨鏈錢包 (multiwallet) 是多個錢包的集合,并同時具備發起跨鏈閃電
交易的功能,這個功能使得連接到子錢包地址的資金可以被交換。跨鏈錢包給人以“所有的資金都可以在一個地方進行管理”的直觀感受。對于相對保守的個人而言,這樣一種兼并跨鏈閃電交易功能的跨鏈錢包,可能會帶來更多“貨幣換貨幣”的真實感受,而不是像股票交易那樣的“代券交易”。對于喜歡冒險的個人而言,跨鏈錢包通過展示歷史匯率和用戶感興趣的各種指標等功能,提供交易平臺的體驗。
從表面上看,我們的跨鏈錢包似乎和其他跨鏈錢包并無不同。然而,我們跨鏈錢包中的貨幣交換不是由任何中心化交易執行的,因而我們的技術對于終端用戶來說極大地提高了安全性:私鑰全部掌握在用戶自己手中而不存儲在“可被黑客攻擊”的交易服務器。惡意方唯一盜取資金的方法只有通過獲取用戶的私鑰,類似傳統銀行業務里竊取 PIN 碼。
使用跨鏈錢包的用戶需要向跨鏈閃電網絡支付對應交易額百分之 0.2價值的手續費。
5. 2 用戶
用戶 (user) 用戶是能夠向跨鏈閃電網絡發起交易的對象。用戶可以是通過跨鏈錢包 APP(例如 AtoX Swap App) 與跨鏈閃電網絡交互的人。用戶也可以是連接到跨鏈閃電網絡的交易算法實例,通過發出跨鏈閃電交易自動執行交易。
5.3 普通節點
普通節點 (regular node) 是為用戶充當跨鏈閃電網絡接入口的物理設備。由于我們不使用 POW(proof-of-work) 機制,普通節點因而并不需要具備巨大的計算能力。但是普通節點需要擁有穩定并且強大的互聯網連接,因為它將被用作閃電網絡的頂點,應該能夠連續啟動和運行,以充當用戶間跨鏈閃電交易的中間人。普通節點至少應該連接至一個超級節點,超級節
點概念將在后文進行解釋。作為整個網絡的基礎設施,普通節點獲得的獎勵來自以下兩個方面:
1. 閃電交易手續費:這部分手續費由普通節點自己任意設置,可以隨意高(或者更有可能是比較低)。閃電網絡選擇交易雙方之間“阻力最小路徑”,并以此確保手續費保持在合理的均衡狀態下。換句話說,如果一個普通節點把自己的手續費設置得過高,它則不會被閃電網絡選擇為閃電交易中間人,因此也就賺取不到任何手續費。從另一角度來看,比較低的手續費也足以能保證節點運行成本(例如網絡成本和電力費用)。請注意,由于普通節點只需要具備最低級別的硬件配置,電力成本和生態環保方面的影響會比基于 POW 的機制低好幾個數量級,其副作用之小和低廉的手續費甚至不堪匹配(現實中無論各行各業,低價導致的往往是巨大的副作用)。
2. 從與之連接的超級節點處獲取區塊獎勵分成。分成額度可以由超級節點自己設置。和交易手續費的平衡體系類似,普通節點更有可能去連接分成額度高的超級節點,所以區塊獎勵分成數額最終也會達到合理的均衡狀態。對于超級節點來說,盡可能地被更多的普通節點連接是至關重要的,其重要性將在后文里解釋。
5.4 備選節點
備選節點 (entitled regular nodes) 備選節點是擁有參選超級節點資格附加權的普通節點。為了防止試圖在跨鏈閃電網絡上建立惡意子網絡的行為,我們出于安全考慮人為地設置了這一門檻。備選節點將會從至少持有 10000枚 AXC 的,過往表現最突出的普通節點中選出。席位限定為 70 個。
5.5 超級節點
超級節點 (supernode) 超級節點也是物理設備,除了充當普通節點外,還負責驗證 AtoX 區塊鏈上新交易的完整性。跨鏈閃電網絡的超級節點席位限為為 35 個。與普通節點類似,超級節點的獎勵來源為:
1. 閃電交易手續費。與普通節點和備選節點沒有區別。
2. 區塊獎勵。超級節點提出 AtoX 公共分類賬的下一個 snapshot(即提議下一個將被添加至 AtoX 區塊鏈的區塊)。如果該區塊被其他超級節點接受,它就會被寫入分類賬,同時成功生成該區塊的超級節點將以AXC 代幣的形式獲得獎勵。超級節點與連接到它的普通節點們分享區塊獎勵。連接到某個超級節點的全部普通節點以及他們所完成的交易事務,計為這個超級節點的“貢獻”,而超級節點成功生成出下一個區塊的概率,則是由他的“貢獻”占整個跨鏈閃電網絡的百分比所決定的。因此對于超級節點來說,設置合理的區塊獎勵分享機制,吸引越多普通節點與之連接,也就越有利于其自身提高貢獻百分比,從而提高獲得區塊獎勵的概率。
6. 區塊獎勵
區塊獎勵來源于兩個方面。
1. 每個區塊的固定獎勵。它為整個系統產生新代幣。
2. 以往的跨鏈閃電交易所收取的 AXC 手續費。超級節點因此會自然而然地被激勵優先處理手續費較高的交易。
請注意,我們的共識機制與被嚴厲批評的傳統 POW 挖礦的區別非常之大,但是我們的區塊獎勵機制卻與之類似,因為這種獎勵機制已經通過檢驗并且運行良好,已經被證明完全足以達到預期結果。這種獎勵機制還蘊藏著一個含義:以 AXC 形式被支付的交易手續費將會被分配給參與了交易進程的節點們。
6. 1 RPCA
許多加密貨幣采取 POW(proof of work) 共識機制。這種方法通過限制首區塊散列哈希的允許值集,人為地提高了生成新區塊所需要的計算能力。POW 浪費了大量電能 (參考 [energy_consumption] 和fig. 1,可以用[energyconsumption2] 中的數據可視化)。常見的替代方案是 POS 共識機制;然而,這種共識機制還會被以下兩個方面詬病。首先,對特定版本的POS 區塊鏈進行投票不需要任何資源,因此也沒有機會成本。這意味著,理性的礦工應該簡單能輕而易舉的看到每一個競爭分支上進行開采,以便最大化他們獲得多開采回報。第二,存在“主體性薄弱”的問題。這個概念是指第一次上線的節點必須向可信資源請求有效鏈的哈希值是多少。這完全破壞了區塊鏈的可信度,許多人認為區塊鏈是區塊鏈技術的“殺手級應用“。所有運用 POS 共識算法的區塊鏈都有這個問題。
因此,我們的應對方法類似于 RPCA 共識機制。它不被認為是 POW 或者說 POS,而是圍繞著網絡中受信任節點之間的“投票”機制。為了保證網絡的正確性和一致性,所有節點每隔幾秒鐘就應用一次 RPCA。一旦達成共識,當前的分類帳會被認為是“關閉”的,并且成為最后關閉的分類帳。假設這種共識算法是成功的,并且網絡中沒有分叉,那么網絡中所有節點維護的最后關閉的分類帳將是相同的。這意味著這種經常挖礦是沒有必要的,RPCA 是迄今為止實現交易確認最有效的方法,比 POW 和 POS 更為有效。
評論
查看更多