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