柔支付XCoinPay將讓區(qū)塊鏈支付變的像通訊一樣便利
近些年,加密數(shù)字貨幣市場逐漸火熱,加密數(shù)字貨幣有著流通性高、造假成本高、制作成本低、去中心化、賬本公正透明、增發(fā)成本高等等優(yōu)點,廣受市場追捧,其核心支撐技術(shù)區(qū)塊鏈(Blockchain)吸引越來越多的關(guān)注,被認(rèn)為是構(gòu)建下一代價值互聯(lián)網(wǎng)的核心技術(shù)。區(qū)塊鏈的發(fā)展同時帶動了分布式賬本技術(shù)(Distributed Ledger Technology)的興起。一般來說,大體認(rèn)為這兩個概念是互通的,指的是同一類技術(shù)。但從嚴(yán)格意義上理解,可以認(rèn)為區(qū)塊鏈?zhǔn)欠植际劫~本技術(shù)的一種實現(xiàn)方法。
區(qū)塊鏈的去中心化理念正在逐漸顛覆傳統(tǒng)的貨幣理念,而且短時間在世界范圍內(nèi)產(chǎn)生了極大的影響力,雖然分布式賬本技術(shù)的發(fā)展非常迅速,但目前整體上還處于早期階段,技術(shù)遠(yuǎn)遠(yuǎn)達(dá)不到商用要求,部分核心的技術(shù)瓶頸沒有突破,阻礙了該項技術(shù)的大規(guī)模應(yīng)用。其中,以性能瓶頸和跨鏈通訊痛點尤為突出,區(qū)塊鏈技術(shù)的高獨立性和交易速度極大地限制了數(shù)字資產(chǎn)的流通使用空間,各個區(qū)塊鏈系統(tǒng)之間互不相連、協(xié)議不通,具備有極高的獨立性,彼此之間無法進(jìn)行訊息通信與協(xié)同操作,由此每個區(qū)塊鏈數(shù)字資產(chǎn)的流通與交易也受到了很大的限制,而隨著區(qū)塊鏈系統(tǒng)的增多,解決不同區(qū)塊鏈網(wǎng)絡(luò)之間的訊息互通與交易速度問題成為了區(qū)塊鏈技術(shù)發(fā)展的的新趨勢。
在現(xiàn)有區(qū)塊鏈技術(shù)中,區(qū)塊鏈的處理能力主要受制于共識算法的性能,而共識算法性能又受制于系統(tǒng)節(jié)點的規(guī)模和單節(jié)點的處理能力。在目前的技術(shù)水平下,單條區(qū)塊鏈性能優(yōu)化提升的空間非常有限,且存在性能極限,這嚴(yán)重制約了分布式賬本技術(shù)在大規(guī)模、高并發(fā)、低延遲的交易型業(yè)務(wù)場景中的應(yīng)用。以比特幣為例,高額的轉(zhuǎn)賬手續(xù)費和極慢的速度是很大的弊病,轉(zhuǎn)賬速度慢的無法讓人忍受,手續(xù)費的高昂也讓小額交易變得不劃算和不可能??梢灶A(yù)見,隨著數(shù)字經(jīng)濟(jì)的高速發(fā)展,未來交易的頻率和規(guī)模會遠(yuǎn)遠(yuǎn)超出當(dāng)前的水平,性能瓶頸是分布式賬本技術(shù)需解決的首要問題之一。
在支付領(lǐng)域,隨著數(shù)字貨幣熱度的提升和幣應(yīng)用的增多,對支付的需求越來越高,閃電網(wǎng)絡(luò)和雷電網(wǎng)絡(luò)等技術(shù)應(yīng)需誕生,然而閃電網(wǎng)絡(luò)和雷電網(wǎng)絡(luò)設(shè)計復(fù)雜,技術(shù)落地難度大,開發(fā)周期較長,未來落地實際應(yīng)用的時間和效果未知。
因此,我們提出了柔支付網(wǎng)絡(luò)(RouPay Network),一種基于柔性多重簽名的分層通道支付網(wǎng)絡(luò),使用的是現(xiàn)有成熟技術(shù),原理簡單、設(shè)計簡潔,基于柔支付網(wǎng)絡(luò)(RouPay Network)可以方便可靠的實現(xiàn)了秒速零手續(xù)費的收發(fā)數(shù)字貨幣。柔支付網(wǎng)絡(luò)(RouPay Network)是基于柔支付技術(shù)(RouPay)為底層打造的柔支付網(wǎng)絡(luò)(RouPay Network),綜合運用了 2-of-2多重簽名、鎖定時間交易、交易構(gòu)造延后廣播等技術(shù),可以在不需信任的情況,實現(xiàn)區(qū)塊鏈資產(chǎn)的零手續(xù)費秒速轉(zhuǎn)移,在速度、安全性和隱私性方面,足以媲美閃電網(wǎng)絡(luò)(Lightning Network)。在傳統(tǒng)法幣世界,用戶只需要一個郵箱作為 PayPal 賬戶,就可以完成世界各國20 多種法幣的高速轉(zhuǎn)賬、收款和購物,PayPal 由此也成為了世界級企業(yè)。而在區(qū)塊鏈行業(yè),尚未有類似產(chǎn)品誕生。而 XCoinPay 的設(shè)計理念是打造區(qū)塊鏈支付領(lǐng)域的 PayPal。
XCoinPay 對于商家用戶和個人用戶分別提供了不同的服務(wù),致力于打造區(qū)塊鏈支付3.0 時代,接下來我們將為您詳細(xì)介紹 XCoinPay 的設(shè)計理念、技術(shù)構(gòu)架、DAPP 應(yīng)用及商用場景等信息。
柔支付網(wǎng)絡(luò)(RouPay Network)柔支付網(wǎng)絡(luò)(RouPay Network)—— 一個瞬間、自由、安全的分布式鏈下支付網(wǎng)絡(luò),世界正在進(jìn)入代幣化時代,未來將會有超過數(shù)十億美金的 token 在柔支付網(wǎng)絡(luò)(RouPay Network)上流動,一場價值網(wǎng)絡(luò)的革命蓄勢待發(fā)。
柔支付網(wǎng)絡(luò)解決了區(qū)塊鏈支付的諸多痛點,如速度慢、手續(xù)費高和無商業(yè)解決方案,讓區(qū)塊鏈資產(chǎn)自由、免費、零延時進(jìn)行轉(zhuǎn)移。
柔支付將讓區(qū)塊鏈支付變的像通訊一樣便利,擁有極速、零手續(xù)費和完備商業(yè)解決方案的特點,并且柔支付網(wǎng)絡(luò)是金融支付的基礎(chǔ)設(shè)施,開放、平等、安全,這樣一個去中心化的結(jié)算網(wǎng)絡(luò)有望成為實現(xiàn)區(qū)塊鏈大規(guī)模商用的基礎(chǔ)建設(shè)設(shè)施。
柔支付網(wǎng)絡(luò)的優(yōu)點:
通用:區(qū)塊鏈支付行業(yè)的基礎(chǔ)設(shè)施。
安全:去中心化保管用戶資產(chǎn),絕對安全。
高并發(fā):柔支付網(wǎng)絡(luò)使用鏈下清算的方式實現(xiàn)高并發(fā)。
極速且零手續(xù)費:轉(zhuǎn)賬可以實現(xiàn)秒速到賬且零手續(xù)費!在落地性和實用性方面遠(yuǎn)超閃電網(wǎng)絡(luò)。
拓展性強:作為一個區(qū)塊鏈支付底層平臺,可以衍生出諸多的商業(yè)解決方案,具有極大的拓展性和可編程性。
XCoinPay 產(chǎn)品
XCoinPay 致力于打造加密數(shù)字貨幣行業(yè)的 PayPal,XCoinPay 專注于區(qū)塊鏈支付方向,產(chǎn)品布局涵蓋有錢包、支付系統(tǒng)和區(qū)塊鏈商業(yè)解決方案平臺,to B 端和 to C 端的產(chǎn)品分別有:
開放平臺:
XCoinPay 開放平臺(商家版)——提供多種基于柔支付網(wǎng)絡(luò)開發(fā)的區(qū)塊鏈支付解決方案。
交易所解決方案:
接入柔支付網(wǎng)絡(luò)的交易所,用戶充值、提現(xiàn)都秒速到賬且零手續(xù)費,帶來極高的流動性
商戶解決方案:
面對接受加密數(shù)字貨幣的購物平臺的區(qū)塊鏈支付解決方案
OTC 解決方案:
場外交易解決方案
開放:
開發(fā)者可以提交各種區(qū)塊鏈支付解決方案
傻瓜式接入:
商家可以一鍵接入
手機錢包:
XCoinPay 手機錢包,區(qū)塊鏈?zhǔn)澜绲牡谝贿x擇。
可以鏈接的硬件錢包:
XCoinPay 手機錢包可以鏈接披薩硬件錢包,披薩硬件錢包是 XCoinPay 團(tuán)隊榮譽出品的最安全易用的硬件錢包,點擊了解。
去中心化錢包:
XCoinPay 手機錢包包含去中心化錢包,您可以使用去中心化錢包安全儲存您的加密數(shù)字貨幣
柔支付網(wǎng)絡(luò):
一個瞬間、自由、安全的通用分布式鏈下支付網(wǎng)絡(luò),區(qū)塊鏈支付行業(yè)的基礎(chǔ)設(shè)施。
XCoinPay 產(chǎn)品分類
XcoinPay 核心技術(shù)
柔支付技術(shù)(RouPay):使用多重簽名技術(shù)建立交易通道,實現(xiàn)堪比閃電網(wǎng)絡(luò)的極速交易
柔支付技術(shù)的核心是通過多重簽名技術(shù)來實現(xiàn)極速交易,其安全度高于零確認(rèn),其簡單程度和落地性優(yōu)于閃電網(wǎng)絡(luò)。
1.柔支付技術(shù)實現(xiàn)的核心流程
1.收集 A 與 B 各自的公鑰生成兩柔支付的多重簽名地址:
假設(shè) A 是 1Bit 地址的持有者,B 是 1Dog 地址的持有者。公鑰在交換公鑰的位置后可以生成兩個 2-of-2 的多重簽名合成地址,即 3CSm 地址和 3Njd 地址。公鑰是可以公開的信息,可以主動公開的。也可以在線快速地生成合成地址。
2.A 構(gòu)造發(fā)到合約地址的交易 TX1,及從合成地址鎖定時間發(fā)回交易 TX2 發(fā)給 B:
A 用 1Bit 地址的私鑰,簽名構(gòu)造一個發(fā)向 3CSm 合成地址的交易,只要夠造好后得到交易 ID 和位置 n 數(shù)據(jù)即可,可不先廣播發(fā)布。然后再由 A 或者 B,最好還是由 A 來構(gòu)造一個從 3CSm 地址全部幣發(fā)回 1Bit 地址的的交易 TX2,注意修改下 nLocktime 鎖定時間為合理的時間,比如說鎖定一年之后。nLockTIme, 也被稱為 LockTIme 或 lock_TIme, 通常被設(shè)置為 0,表示交易可隨時發(fā)送到比特幣網(wǎng)絡(luò)。如果 nLockTIme 的值在 1 到 5 億之間,則表示需要區(qū)塊高度大于或等于 nLocktime 的區(qū)塊時才可以寫入?yún)^(qū)塊鏈。如果nLocktime 的值超過 5 億,則表示從 197001 月 01 日開始算,加上 nLocktime 秒之后的一個時間點,即 Unix 時間戳,例如 20171 月 1 日是 1483200000,若早于那個時間點,則該交易不會被發(fā)送到比特幣網(wǎng)路。另外注意 sequence 字段,不能為 INT32 最大值。
3.A 發(fā)給 B 交易 TX2 的交易,獲得簽名后廣播 TX1 形成閃電支付的通道把上面的交易 TX2 發(fā)給 B,請 B 來確認(rèn)沒問題后用私鑰簽名會發(fā)回。A 在收到來自 B 的簽名后,然后用自己的私鑰再簽名下,看看是否成功。若成功,則可以將之前的交易 TX1 出去,從而形成類閃電支付通道。手里的 TX2 交易保存好,可能等鎖定時間過后可能需要廣播找回。
其實在一定對 B 信任的基礎(chǔ)下 A,可以 A 不用手動構(gòu)造交易 TX1 不廣播,而是直接用幣錢包軟件發(fā)幣到 3CSm 地址。然后讓 B 來用交易 TX1 的信息來構(gòu)造一個簽名好的帶鎖定時間的全發(fā)回 1Bit 地址交易,并且 B 簽名好后發(fā)給 A,讓 A 妥善保存。一樣可以形成類閃電支付通道,對 A 的技術(shù)要求會很低,但是需要 B 有足夠的信用,而前面的方案是完全不需要 B 有任何信用的。
4. 閃電支付通道中交易的快速零手續(xù)費使用,及雙向通道實現(xiàn)
建立了類閃電支付通道后,當(dāng) A 需要付給 B 幣時,那就一個從 3CSm 地址發(fā)向 1Dog地址和 1Bit 地址的一對二交易 TX3。用其私鑰簽名簽名后發(fā)給 B。當(dāng) B 拿到簽名交易 TX3后,就已經(jīng)等價于確認(rèn)拿到幣了。而這個速度是僅僅是生成交易和傳送字串可以做到秒速的,甚至在一些工具下能做到即時支付。
2 柔支付的具體應(yīng)用
A 向 3CSm 地址轉(zhuǎn)了 0.1BTC 比特幣,A 需要向 B 支付 0.02 BTC,那么就構(gòu)造一個交易 TX3 發(fā)向 B 的 1Dog 地址 0.02 BTC 和找零到 A 的 1Bit 地址的 0.0799 BTC,而0.0001 BTC 作為手續(xù)費。A 用私鑰簽名的后發(fā)送給 B,B 收到后再用 B 的私鑰簽名確認(rèn)通過確定 A 的簽名沒有問題,即完成確認(rèn)收到了 0.02 BTC 的支付,沒有必要將這個交易 TX3廣播??梢岳^續(xù)維持類閃電支付通道。
然后過了些日子,再次需要 A 支付給 B 這次 0.03 BTC 時,加上上次的總共是 0.05BTC,那么再次來構(gòu)造一個 TX4,這次要發(fā)向 B 的 1Dog 地址 0.05 BTC 了,找零到 A 的 1Bit 地址的 0.0499 BTC。在簽名好后發(fā)送給 B 即可,秒速確認(rèn),且因為是鏈下的不用發(fā)送的鏈上,也沒有手續(xù)費。
注意可能有人發(fā)現(xiàn)了,這個類閃電支付通道是單向的,只是 A 付給 B,那么當(dāng)需要反向 B 需要付給 A 時怎么辦呢?可以再重復(fù)上面的步驟再建立 AB 之間的類閃電支付通道,注意互換 AB,且用另外一個 2-of-2 多重簽名合成地址 3Njd 地址的來作為類閃電支付通道的主地址,這個地址的主控制權(quán)就在于 B 了,可以 B 來簽名交易發(fā)給 A,來實現(xiàn) B 付給A。其實這種用兩通道實現(xiàn)雙向會更加清晰些。
本質(zhì)上因為有那筆鎖定時間交易 TX2 存在,3CSm 地址上的幣是屬于 A 的。3Njd 地址上的幣是屬于 B 的。而在需要類閃電支付時,A 可以簽名交易 TX3 重新分配 3CSm 地址上的幣將需要付給 B 的幣分配給 B,只要拿到簽名交易 TX3,就已經(jīng)是拿到只要在鎖定時間之前隨時公布即可,沒有必要立刻公布而關(guān)閉通道,而多次頻繁中間雙方收發(fā)交易僅僅是發(fā)送簽名的最新交易即可,而這些數(shù)據(jù)即使第三方拿到也沒有什么用,也無法發(fā)布廣播,因為只有一個簽名。
3 支付通道的兩種關(guān)閉形式
A 與 B 之間沒有任何類閃電支付交易,在鎖定時間到了后,A 可以廣播交易 TX2,從而拿回全部在 3CSm 地址上幣,從而關(guān)閉通道,A 損失的僅僅是鎖定時間和一點點手續(xù)費,并沒有大的損失。下次開啟可以只對有可能對其較高頻率付款的 B 開通,且盡量將鎖定時間設(shè)的久些,可以避免這種無使用就關(guān)閉地開啟類閃電支付通道。
A 有通過類閃電支付通道交易多次發(fā)給 B 的一些簽名交易重新分配 3CSm 地址的幣。在鎖定時間到來之前,B 對對自己最有利也一般是最新的簽名交易,自己再簽名之后廣播,從而閃電支付通道鏈上結(jié)算成功關(guān)閉通道。然后若還有類閃電支付需求可以重復(fù)上面的步驟再次開啟,并且 2-of-2 多重簽名合成地址 3CSm 地址,是不用更換的,可以繼續(xù)使用。因為再此重復(fù)時在 TX1 中的交易 ID,和 TX2 個的交易 ID 都已經(jīng)變化了,故以前的那些簽名都會作廢失效的,因此不必?fù)?dān)心上次的類閃電支付通道的交易簽名,會對這次新的類閃電支付通道產(chǎn)生影響。
柔支付網(wǎng)絡(luò)(RouPay Network) 的核心設(shè)計1 多重簽名及合成地址生成
多重簽名合成地址,以 3 開頭的比特幣地址收發(fā)幣,而這種 3 開頭的比特幣地址則是先生成獲得合同腳本,然后對合同腳本進(jìn)行 hash160 算法后,再對其用 0×05 版本Base58Check 編碼得到的。花費這些合成地址里的幣,需要根據(jù)生成時設(shè)的合同腳本的要求,一般需要多個私鑰進(jìn)行簽名,因此也常叫合成地址為多重簽名地址。實際上,具體看生成時設(shè)的具體的合同腳本,有些腳本可以設(shè)為只需要一個簽名,而不一定非要進(jìn)行多次簽名。因為其一般是由多公鑰合成的,因此命名叫合成地址較好些。多重簽名技術(shù) createmultisig命令生成合成地址,“合同腳本”內(nèi)容的生成很關(guān)鍵,可以用這個 createmultisig 命令用來生成。這個命令用途應(yīng)用很廣泛很靈活,而具體使用時卻很簡單,只有必須要輸入的兩個參數(shù):
一個參數(shù)是數(shù)字 M,為正整數(shù),要求 M 要不大于下面的參數(shù)中的 N。
另外一個參數(shù)是長度為 N 的數(shù)組,即數(shù)組內(nèi)放有的公鑰的數(shù)量為 N 個。
具體含義是花費時需要提供 N 個公鑰對應(yīng)的私鑰中的任意 M 個的簽名即可。若 M=1,那么表示后面數(shù)組中的任何一個公鑰對應(yīng)的私鑰都可以花幣。而若 M=N,則表示必須全部私鑰都簽名才可以花幣。這兩種極端情況的中間情況往往較多使用。常用的 2-of-3 的多重簽名的合成地址生成方式,就是第一個參數(shù) M 設(shè)為 2,在第二個數(shù)組參數(shù)中,放入 3 個公鑰,那么這種生成的合成地址,就是只要這 3 個公鑰對應(yīng)的私鑰中的任意兩個進(jìn)行簽名,就可以花這筆交易。可在電子商務(wù)領(lǐng)域也有較多應(yīng)用,買家、賣家和平臺可以各拿一個私鑰,平時買賣雙方可以湊夠兩個簽名,而出現(xiàn)爭議時可以由平臺用其的簽名來仲裁決定平幣分配。
2 分配金的簽名重分配支付
這個分配金是實現(xiàn)支付通道的關(guān)鍵。具體是采用上面提到的多重簽名。具體是生成2-of-2 多重簽名,簡單說就是兩地址之間達(dá)成共識一致都簽名時才能交易。參數(shù) M 設(shè)為 2,而公鑰數(shù)組中填寫兩個公鑰。雙方達(dá)成一致都簽名同意時才能動這個 2-of-2 多重簽名合成地址里的分配金。閃電網(wǎng)絡(luò)和雷電網(wǎng)絡(luò)的通道設(shè)計思路都是,由雙方共同出一定資金來發(fā)到形成分配金,然后給出各多少幣的分配方案。然后再簽名共同簽名更新這個分配方案。同是設(shè)計一些機制來作廢掉之前的歷史分配。最新分配方案與上個分配方案之間的差額,即通道支付的幣量。因為僅僅簽名,驗證正確即可,只需發(fā)給對方,不需要在比特幣主網(wǎng)絡(luò)上廣播,因此能實現(xiàn)秒速確認(rèn)。雖然開啟和關(guān)閉通道需要一定手續(xù)費,但通道建立起來后在通道上的交易是完全可以做到免費,或者極低的費用。柔支付網(wǎng)絡(luò)也是分配金通道,簽名來重新分配的基本原理,但會更加簡單易于理解,且易于實施。
3 柔支付單向通道建立
簡單來說,就是發(fā)送者和接收者,發(fā)送者把幣發(fā)到兩者的公鑰生成地址,然后靠多次簽來給接受者的分配比例的越來越高,來實現(xiàn)支付。另外就是有一筆時間戳交易,能在過了時間后,能將分配金的全部幣全部歸還回歸發(fā)送者。
這個通道時單向的,只能當(dāng) A 需要付給 B 幣,且分配給 B 的量會越來越多。當(dāng) B 需要向 A 付幣時,需要用 3Njd 地址建立個反向的通道。兩個通道互動才能雙向支付。并且當(dāng)額度超過是通道會關(guān)閉。另外注意需要在 nLocktime 的時間之前關(guān)閉柔支付通道。注意修 改 下 nLocktime 鎖 定 時 間 為 合 理 的 時 間 nLocktime, 也 被 稱 為 LockTime 或lock_time, 通常被設(shè)置為 0,表示交易可隨時發(fā)送到比特幣網(wǎng)絡(luò)。如果 nLocktime 的值在 1 到 5 億之間,則表示需要區(qū)塊高度大于或等于 nLocktime 的區(qū)塊時才可以寫入?yún)^(qū)塊鏈。如果 nLocktime 的值超過 5 億,則表示從 1970 年 01 月 01 日開始算,加上nLocktime 秒之后的一個時間點,即 Unix 時間戳,例如 2018 年 1 月 1 日是 1514736000,若早于那個時間點,則該交易不會被發(fā)送到比特幣網(wǎng)路。另外注意 sequence 字段,不能為INT32 最大值(0xffffffff),否則會忽略 nLocktime。
1)收集 A 與 B 各自的公鑰生成兩柔支付的多重簽名地址
假設(shè) A 是發(fā)送者,B 是接收者,公鑰在交換公鑰的位置后可以生成兩個 2-of-2 的多重簽名合成地址,公鑰是可以公開的信息,可以主動公開,也可以在線快速生成合成地址。
2)A 構(gòu)造發(fā)到合約地址的交易 TX1,及從合成地址鎖定時間發(fā)回交易 TX2 發(fā)給 B3)A 發(fā)給 B 交易 TX2 的交易,獲得簽名后廣播 TX1 形成閃電支付的通道把上面的交易 TX2 發(fā)給 B,請 B 來確認(rèn)無誤后用 1Dog 地址私鑰簽名會發(fā)回給 A。A 在收到來自 B 的簽名后,然后用自己 1Bit 地址的私鑰簽名,檢查是否成功。若 TX2 校驗成功,則可以將之前的交易 TX1 出去,從而形成類閃電支付通道。手里的 TX2 交易注意保存,等鎖定時間過了后可能需要廣播出去找回。
4 柔支付通道實現(xiàn)雙向及跨鏈
2-of-2 多重簽名的等柔支付網(wǎng)絡(luò)電通道是單向的,,這可能是與閃電網(wǎng)絡(luò)最大的區(qū)別,只能單向的只增不減地從一方向另外一方轉(zhuǎn)幣,若想要雙方互轉(zhuǎn),就要通過建立兩個相互獨立的通道來實現(xiàn)。而閃電網(wǎng)絡(luò)是可增可減少,完全可任意重新的分配,可增可減,只要有雙方簽名即可,以時間最新的分配方案為準(zhǔn),之前的任意分配方案將無效。而類閃電支付是沒有時間先后順序的,都是有效。但作為接受方當(dāng)然會拿幣量最多,一般也是最新的自己量最多的分配方案。而發(fā)幣的發(fā)送者因沒有收幣者的簽名的無法發(fā)布任何分配版本的。等時間戳到,或者等收幣者關(guān)閉。
因為只要支持有多重簽名,有時間戳交易即可實現(xiàn)柔支付通道,因此可以 A 到 B 是比特幣柔支付通道,而 B 到 A 是狗狗幣柔支付通道。于是便相當(dāng)于實現(xiàn)了跨鏈和安全地幣幣交易。
5 分層樹形拓?fù)涞娜嶂Ц毒W(wǎng)絡(luò)
網(wǎng)絡(luò)拓?fù)浞绞?,第三方支付會是(a)星形,而比特幣的點對點是圖(c)網(wǎng)狀態(tài)。閃電網(wǎng)絡(luò)估計早期可能椒(b)環(huán)形已行程鏈六,而我們?nèi)嶂Ц毒W(wǎng)裸將會近似于樹形。
柔支付的運行原理是發(fā)起 2of2 多重簽名,在此之后發(fā)起一筆全部幣回歸的延時交易。靠發(fā)送交易的簽名,逐步增多分配實現(xiàn)單向快速支付。建立兩個通道因為只需要將簽名后的字串發(fā)過去,并不需要廣播,進(jìn)而可以實現(xiàn)快速即時且 0 手續(xù)費的交易。
6 柔支付網(wǎng)絡(luò)支付路徑設(shè)計
根節(jié)點將負(fù)責(zé)跨樹枝的交易,因此若僅僅一層就類似于星行網(wǎng)絡(luò)了,經(jīng)過 1 個節(jié)點。而兩層網(wǎng)絡(luò),最多中間 3 個節(jié)點。而 3 層網(wǎng)絡(luò)最多是,中間 5 個節(jié)點。N 層網(wǎng)絡(luò)最多 2N-1個節(jié)點,都是先到上一層到根節(jié)點。再到目標(biāo)。若在同一個分支中則不需要向上,類似于域名解析服務(wù)。根節(jié)點這里可以存儲所有的最新數(shù)據(jù),切定期的與下層的節(jié)點進(jìn)行結(jié)算。
7 特殊情況下的應(yīng)用
柔支付節(jié)點出問題的應(yīng)對:
因為是 2of2 需要雙方簽名才能動幣,因此就算大量節(jié)點都出問題都沒有了,也并不會造成資金損失。
1. A 與 B 之間沒有任何類閃電支付交易,在鎖定時間到了后,A 可以廣播交易 TX2,從而拿回全部在 3CSm 地址上幣,從而關(guān)閉通道,A 損失的僅僅是鎖定時間和一點點手續(xù)費,并沒有大的損失。下次開啟可以只對有可能對其較高頻率付款的 B 開通,且盡量將鎖定時間設(shè)的久些,可以避免這種無使用就關(guān)閉地開啟類閃電支付通道。
2. A 有通過類閃電支付通道交易多次發(fā)給 B 的一些簽名交易重新分配 3CSm 地址的幣。在鎖定時間到來之前,B 對對自己最有利也一般是最新的簽名交易,自己再簽名之后廣播,從而閃電支付通道鏈上結(jié)算成功關(guān)閉通道。然后若還有類閃電支付需求可以重復(fù)上面的步驟再次開啟,并且 2-of-2 多重簽名合成地址 3CSm 地址,是不用更換的,可以繼續(xù)使用。因為再此重復(fù)時在 TX1 中的交易 ID,和 TX2 個的交易 ID 都已經(jīng)變化了,故以前的那些簽名都會作廢失效的,因此不必?fù)?dān)心上次的類閃電支付通道的交易簽名,會對這次新的類閃電支付通道產(chǎn)生影響。
架構(gòu)設(shè)計
1 整體架構(gòu):核心層、服務(wù)層、應(yīng)用層
XCoinPay 的整體架構(gòu)分為三層:核心層、服務(wù)層、應(yīng)用層。架構(gòu)圖如下:
其中:
1.1 核心層
由區(qū)塊鏈節(jié)點與消息網(wǎng)絡(luò)組成的區(qū)塊鏈部分實現(xiàn)交易數(shù)據(jù)的廣播,經(jīng)由礦工打包交易錄入?yún)^(qū)塊鏈。其中采用柔支付通道技術(shù),提前開通支付通道,實現(xiàn)快速交易。為 IM 服務(wù)提供數(shù)據(jù)存儲。
1.2 服務(wù)層
該層針對業(yè)務(wù)場景,采用 MVC 架構(gòu),分離處理客戶端與 B 段商戶業(yè)務(wù):針對錢包客戶端,提供對應(yīng)的 API 接口;針對 B 端商戶應(yīng)用,提供集成 SDK,方便第三方對接調(diào)用。針對 IM 部分,該層提供對應(yīng)的處理邏輯,承載應(yīng)用層 IM 的讀寫與核心層數(shù)據(jù)集群的交互。
1.3 應(yīng)用層
該層向終端用戶提供基于分布式賬本的應(yīng)用服務(wù),如幣種數(shù)字資產(chǎn)的錢包、交易、第三方應(yīng)用對接 SDK 寫入交易等。
2 總體架構(gòu)設(shè)計
總體架構(gòu)包括 5 個層級,具體內(nèi)容如下圖 1 所示:
各層級說明如下
用戶端:該層重點是移動端,支持 iOS/Android 系統(tǒng),接入客服系統(tǒng)。
用戶端 API:該層依據(jù)不同業(yè)務(wù)類型使用 TCP 協(xié)議、HTTP 協(xié)議,為移動端提供iOS/Android 開發(fā) SDK。H5 頁面,提供 WebSocket 接口。
接入層:該層主要保護(hù)海量用戶連接、攻擊防護(hù),整流海量連接成少量 TCP 連接與邏輯層通訊。
邏輯層:該層負(fù)責(zé) IM 系統(tǒng)的核心邏輯實現(xiàn),例如:群聊、單聊、朋友圈、等等。
存儲層:該層負(fù)責(zé)緩存或存儲 IM 系統(tǒng)相關(guān)數(shù)據(jù),主要包括用戶狀態(tài)、消息數(shù)據(jù)、文件數(shù)據(jù)等。
3.數(shù)據(jù)存儲格式采用 Protocol Buffer,database 選擇 MoogoDB
Protocol Buffer 是一種輕便高效的結(jié)構(gòu)化數(shù)據(jù)存儲格式,在.proto 中定義消息格式,使用 protocal buffer 編譯程序,直接生成目標(biāo)文件,便于多端同步,另外該目標(biāo)文件在各大平臺之間均可運行,解決跨平臺問題。
Protocol Buffer 有如 XML,但更小、更快、更簡單,在解析速度與占用空間上具有性能好效率高的特性。Protocol Buffer 不需要解析后再進(jìn)行映射,直接序列化反序列化直接對應(yīng)應(yīng)用程序中的數(shù)據(jù)類。MoogoDB 可以將熱點數(shù)據(jù)加載到內(nèi)存,在大數(shù)據(jù)量是,查詢效率優(yōu)勢明顯,MoogoDB 采用 BSON 的方式存儲數(shù)據(jù),對 JSON 格式數(shù)據(jù)具有非常好的支持性,方便平臺之間對接 MoogoDB 數(shù)據(jù)庫的分片集群負(fù)載具有非常好的擴展性以及非常不錯的自動故障轉(zhuǎn)移。





