前言
突然發現離上次發文已經過了一個月,最近實在太忙了呀,為了不讓自己從此怠惰,只好逼自己再來寫篇文章。今天就簡單介紹一下這幾天在看的 0x Protocal。
交易所的去中心化
這年頭去中心化已經越發成為趨勢,尤其越是關乎「錢」的事,就越有人想要透過區塊鏈來保證安全、公平、公正。在眾多應用中,「交易所」成為大家所關注的項目之一。這一年來許多中心化交易所相繼出包,雖然絕大多數都有償還用戶方案,但是這樣中心化受到駭客關注的現象也引起了使用者們的不滿。這就是為什麼會出現對去中心化交易所的需求。
難處
如果智能合約能夠達到以豪描為單位的吞吐量,那麼去中心化交易所的實踐也不會這麼困難,就是當一個大伺服器來運作就可以了。但難就難在速度這關過不了。現在最成熟的以太坊區塊時間約15秒,有交易經驗的朋友都知道,要是發訂單要等15秒、接訂單要再等15秒,那只能說慢的誇張了。所以現在包括NEO上的交易所NEX、台灣團隊開發的交易所JOYSO,都是採用一種「鏈下撮合、鏈上交易」的策略。而其中有個默默支持了許多ERC20 Token去中心化交易平台的協定叫做 0x Potocal,屬於一個特別的存在。
0x Protocal
為什麼說特別呢?因為0x Protocal旨不在成立一個交易所,而在於讓所有開發者可以輕易透過這一個智能合約,開放各自的去中心化ERC20交易平台。這也是為什麼這是一個「協議」(Protocal)而非一個交易所,因為它的設計就是為了未來更多應用的共享。
合約解析
在0x Protocal所設計的整個體系中一共有三個部份:負責撮合使用者的Relayer (鏈下)、交易主合約(Exchange Contract)、以及負責執行token交換的資產代理合約(Asset Proxy Contract)。
Relayer
Relayer在系統中就是使用者與主要交易合約之間的橋樑,也就是我們會接觸到的第一線User Interface。透過Relayer不同的設計,可以設計成容許掛買賣單的交易所、或是點對點的交易簽署。這部份不會牽扯到區塊鏈,但是卻需要用到數位簽章。以交易所來舉例,任何人都可以用一個中心化的伺服器來作為Relayer,提供一個平台讓使用者「掛單」。當我們掛上一個單時,資料沒有上鏈,只是送到這個伺服器,並快速顯示給所有其他使用者看。但這筆資料有一部份是整個掛單資訊用自己秘鑰的簽章,也就是一個「訂單來自這個私鑰」的保證。
目前已經透過0x Protocal 在線上運作的 Relayer:
Exchange Contract
當另一位使用者透過Relayer發現這筆訂單並決定下單時,才是一切真正開始準備用到區塊鏈的時候。這個使用者會把剛剛第一位使用者所簽署的訂單(含簽章),連帶自己所同意的交易數量,全部一起傳送到區塊鏈上。Exchange這個合約主要在判斷的,就是這筆訂單是否有效、這筆交易能否執行,如果可以,就會交給「Asset Proxy」合約來完成ERC20 Token的交換。
Asset Proxy
ERC20代幣其實就是一種合約,這些合約裡面的轉帳功能可以由自己觸發,也可以尤其他合約控制。假若我擁有1000個ZRX Coin,我可以授權某一個地址(可以是人或是合約)來動用我的這些token,這就是ERC-20中allow()
函示的作用。因此在一開始進入0x Protocal頁面時,會有「解鎖token」的步驟,就是要求我們授權這些Asset Proxy來動用我們的Token資產。
其中另一個有趣的點在於wrap ETH。由於這個protocal指定義了ERC-20 Token的交易,所以若是想要透過Ethereum來進行交易的話,要先將這些以太幣轉為同等的ERC-20 Token,代號為weth。其實許多應用都會為了簡便而使用這個步驟,道理就是去處發一個簡易的合約,會鎖住一定值得eth並且給你對應的weth token,隨時可以1:1兌換回來。更多詳細介紹可以看 https://weth.io/
ZRX Token
執行到最後一步Asset Proxy的地方也就是交易結束之處了,幾個合約以及relayer拆解的漂亮,其中ZRX代幣在整個體系中更是厲害的點子。使用Exchange合約本身不會跟你收手續費,所以純粹要使用他們的合約來進行token swap是完全免費的。整個交易如果有手續費的話,是由Relayer自行決定要收多fee。這樣的好處是鼓勵了不同的relayer形成,如果relayer要收手續費必須要用ZRX Token的形式收取,因此他們的代幣就這麼越來越火、越來越普及。看看它的價格曲線就知道啦~
長話短說
個人看完0x Protocal之後覺得這是一個非常厲害的專案,因為他並不是以一個中心平台的地位自居,而是通過這個協議以及合約讓更多去中心化平台能夠輕鬆的建立(等於不用自己寫和約了)。這也是為什麼他們不同於大多數「提供服務,收取手續費」的去中心化應用,而是選擇真正讓ZRX成為這個生態系中的貨幣,而他們的開發團隊只要享受各個Relayer為他們推廣的結果,更多使用者需要使用ZRX Token所帶來的代幣價值提昇就可以了。想想雖然合理容易理解,但是能想到這點子真的不簡單阿!
This post has received a 6.44 % upvote from @boomerang.
坚持不容易啊,两个月没上来看看了。向你学习。
Congratulations,
you just received a 17.15% upvote from @steemhq - Community Bot!
Wanna join and receive free upvotes yourself?
Vote for
steemhq.witness
on Steemit or directly on SteemConnect and join the Community Witness.This service was brought to you by SteemHQ.com