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