91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么理解bytom MOV鏈上交換協議

發布時間:2021-12-20 17:47:54 來源:億速云 閱讀:89 作者:iii 欄目:互聯網科技

這篇文章主要講解了“怎么理解bytom MOV鏈上交換協議”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么理解bytom MOV鏈上交換協議”吧!

去中心化交換協議的發展

從Bitshare,Stellar到以太坊上的Etherdelta,Bancor,0x協議,去中心化交換協議也經過了好幾代發展和很多模式的探索,每一代都通過前面的協議的痛點來進行改進和深化,

主要分為:

  1. 鏈上orderbook,鏈上結算;

  2. 鏈下orderbook,鏈上結算;

  3. 基于智能合約管理的資金池;

鏈上orderbook,鏈上結算

最早的 基于以太坊的去中心化交換協議的成功探索非Etherdelta莫屬,曾一度占據去中心化交換市場的半壁江山。Etherdelta是較為完全的去中心化模式,用戶充值、掛單、吃單、結算及提現全部在鏈上完成。

具體運行機制如下:

怎么理解bytom MOV鏈上交換協議

Etherdelta的整個運行都在鏈上完成,用戶保管自己的私鑰,平臺不會觸碰用戶資產,保證了資產和交換的安全、透明。但其弊病也較為明顯:

  1. 由于所有的交換環節都在鏈上完成,且每一個掛單、撤單、吃單等操作都會消耗GAS費用,導致延時高、成本效益低下。

  2. 存在礦工非法預先交換的可能。

鏈下orderbook,鏈上結算

為了解決純鏈上效率低下,且手續費低廉的問題,0x協議引入了relayer(中繼)的概念,所有訂單都發給relayer,無需上鏈,只有成交才會上鏈。

0x的“鏈下訂單中繼、鏈上最終結算”運作模式如下:

怎么理解bytom MOV鏈上交換協議

0x協議的主要問題在于,如果需要共享訂單,運用0x協議的交易所每一筆成交都需要廣播出來,以便其他交易所得知和確認,因此單純地使用0x協議無法實現瞬時成交;另外,由于需要將ETH轉化為WETH,也增加了交換成本。

基于智能合約管理的資金池;

最具典型的資金池模式有Bancor和Kyber。所謂資金池,可以理解為平臺利用智能合約建立了一個用于儲備各類資產的池子,資金池中資產的提供方可以是普通用戶或者做市商。

MOV去中心化交換協議介紹

我們在考察各個交換協議時,其實純鏈上交換協議才是最發揮區塊鏈價值的方案,但是因為以太坊等公鏈性能問題,導致像Etherdelta這樣的純鏈上方案受挫,才有0x這樣的鏈下orderbook出現,來改善性能的問題。究其根本,是本身的基礎設施不完善,導致的迫不得已的改變。所以比原鏈MOV從一開始就先著手解決區塊鏈性能問題。

高速側鏈是保障

MOV采用了高速側鏈Vapor pro作為底層的基礎設施,Vapor每0.5s出塊,每個區塊可以容納8000筆交易,即每秒16000 tps,在增大區塊,提升節點服務器的情況下,仍然有進一步提升空間。這個性能能夠滿足當前非高峰時段的用戶需求,可以比肩部分的中心化的方案。

同時MOV采用了DPoS作為共識機制,雖然喪失了一定的去中心化,但是增加了可以進行鏈上撮合的門檻,提高準入門檻可以更好的防止部分有不良企圖的“礦工”進行預先交易,同時因為鏈上撮合本身具有一定的撮合收入,所以通過這個經濟激勵可以防止DPoS的出塊節點作惡來破壞系統(其作惡的成本高于其不作惡的正常收益)。

訂單共享

0x協議為了解決性能問題,所以采用鏈下orderbook,但帶來的問題就是訂單的割裂,采用0x協議的各個不同參與方,為了自己的利益,必然不會將自己用戶的訂單共享出來,從而影響整體的交易深度,而mov采用鏈上orderbook,所有的用戶訂單都在鏈上,公開透明,所有參與撮合的共識節點都可以共享這個深度,從而增強mov上資產的流動性。

磁力合約的優勢

因為比原鏈是基于比特幣的UTXO模型,所以在UTXO模型上的磁力合約來做交換協議具有更大的優勢,因為UTXO模型本身以資產為基本單位,和賬戶模型相比,對于資產的操作更加簡易和方便,我們來對比兩者的流程。

以0x為例,0x整個交互流程:

  • Maker授權DEX合約訪問自己的Token A余額

  • Maker創建訂單(訂單有固定的格式)并用私鑰簽名

  • Maker使用任意通信手段廣播訂單

  • Taker接收訂單并愿意執行

  • Taker授權DEX合約訪問自己的Token B余額

  • Taker提交訂單給DEX

  • DEX驗證訂單的合法性,在兩個賬戶之間按照訂單上的匯率進行轉賬

那么磁力合約的整個流程就簡易很多:

  • Maker創建一個磁力合約(在磁力合約中放入自己的資產,并指定要兌換的資產和數量)

  • Taker創建一個磁力合約(在磁力合約中放入自己的資產,并指定要兌換的資產和數量)

  • 共識節點根據合約中的價格和數量,觸發能夠匹配的磁力合約,并交換兩者的資產。

不僅在流程上簡單,手續費因為流程的簡化也會更低,我們只要在用戶設置磁力合約的時候收取手續費即可,事實上,我們還可以嘗試0手續費,因為使用DPoS的模式,關于手續費,各個節點之間的博弈也不會太復雜。

跨鏈資產的生態

我們觀察現行以太坊上的去中心化交換協議,還停留在以太坊本身的生態上,雖然不能否認以太坊生態的強大,但其實外面才是更大的世界,當然跨鏈是后續的主旋律,包括Cosmos和Polkdot都是想做跨鏈的事情,所以MOV在一開始就考慮到了跨鏈的事情,通過OFMF將比原鏈之外的資產映射到比原鏈上來,然后形成囊括所有數字資產的大生態,用戶在mov中體驗的是跟中心化一樣的體驗,可以交易多種資產,這些資產也不單獨是在某一個鏈的生態。

MOV磁力合約詳解

這里再詳細展開一下MOV磁力合約,看它到底是如何實現的。

MOV磁力合約本質上是一個掛單合約,不管是Taker還是Maker都需要生成這樣的一個合約,本質上其實并不區分Maker和Taker,只是根據掛單的先后來區分Maker和Taker,兩者在相反的交易對上提升了交易深度,實際上也可以認為都是Maker。

掛單交易合約是高級版的幣幣交易合約,合約的本質目的是鎖定任意數量的資產A,愿意以某特定的匯率兌換資產B。合約的內部應該保存有四個常量(資產A的ID不需要存因為合約鎖定的是資產A):期望兌換的資產B的ID, 期望兌換的匯率(使用分子分母方式解決浮點支持問題),和掛單用戶的公鑰,掛單用戶接受資產B的地址。合約可以通過三種模式解鎖:

全部解鎖:所有合約中的資產A都被兌換成了資產B并轉入掛單用戶的地址中。

部分解決:部分合約中的資產A被兌換成了資產B并轉入掛單用戶的地址中,剩余的資產A通過遞歸合約的模式從新鎖定回合約本身(新生成的UTXO)。

取消掛單:掛單用戶通過私鑰簽名將合約中的資產A都轉回自己的地址。

磁力合約Equity的代碼如下:

MagneticContract source code:
contract MagneticContract(requestedAsset: Asset,
                          ratioNumerator: Integer,
                          ratioDenominator: Integer,
                          sellerProgram: Program,
                          standardProgram: Program,
                          sellerKey: PublicKey) locks valueAmount of valueAsset {
 clause partialTrade(exchangeAmount: Amount) {
  define actualAmount: Integer = exchangeAmount * ratioDenominator / ratioNumerator
  verify actualAmount > 0 && actualAmount < valueAmount
  lock exchangeAmount of requestedAsset with sellerProgram
  lock valueAmount-actualAmount of valueAsset with standardProgram
  unlock actualAmount of valueAsset
 }

 clause fullTrade() {
  define requestedAmount: Integer = valueAmount * ratioNumerator / ratioDenominator
  verify requestedAmount > 0
  lock requestedAmount of requestedAsset with sellerProgram
  unlock valueAmount of valueAsset
 }
 clause cancel(sellerSig: Signature) {
  verify checkTxSig(sellerKey, sellerSig)
  unlock valueAmount of valueAsset
 }

}

fullTrade()就是全部解鎖方法;partialTrade()是部分解鎖,當觸發部分解鎖時,會講為解鎖的資產放入一個新生成磁力合約中去,從而等待下一次匹配;cancel()方法將用戶的資產轉回自己的地址,取消這個合約。

我們在看看磁力合約的輸入參數:

type MagneticContractArgs struct {
 RequestedAsset   bc.AssetID
 RatioMolecule    int64
 RatioDenominator int64
 SellerProgram    []byte
 SellerKey        []byte
}

RequestedAsset是想要兌換的的資產,RatioMolecule,RatioDenominator是想要兌換資產的匯率(RatioMolecule/RatioDenominator 就是匯率),因為當前BVM不支持浮點型,所以額外采用這個參數作為比例,SellerProgram,SellerKey就是合約創建者自己的合約和地址,目標資產就要鎖定到合約創建者自己的賬戶里面。 細心的朋友可能發現,這里面和Equity合約少了一個參數,也就是standardProgram,那么這個參數不用用戶自己輸入,系統會默認補齊,standardProgram 其實就代表原合約,因為部分匹配會使一部分資產仍然沒有使用,就仍然返回到合約中。

最后通過一張圖來更直白的描述一下磁力合約:

怎么理解bytom MOV鏈上交換協議

感謝各位的閱讀,以上就是“怎么理解bytom MOV鏈上交換協議”的內容了,經過本文的學習后,相信大家對怎么理解bytom MOV鏈上交換協議這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

井陉县| 黄大仙区| 揭东县| 罗甸县| 靖江市| 青海省| 巴中市| 资中县| 监利县| 平阳县| 临夏市| 阳信县| 连山| 广东省| 镇原县| 分宜县| 米易县| 阳新县| 观塘区| 乌拉特后旗| 修文县| 库伦旗| 浦东新区| 米易县| 洛阳市| 博兴县| 明溪县| 新密市| 东阳市| 连云港市| 道真| 湘乡市| 闵行区| 东乌| 凌云县| 丰都县| 肇州县| 板桥市| 诸暨市| 承德县| 丽江市|