前言
突然發現離上次發文已經過了一個月,最近實在太忙了呀,為了不讓自己從此怠惰,只好逼自己再來寫篇文章。今天就簡單介紹一下這幾天在看的 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.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
坚持不容易啊,两个月没上来看看了。向你学习。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit