LikeCoin 代幣付款委託

使用 ERC-20 代幣作為交易費用

Edmond Yu
LikeCoin — Decentralize Publishing
7 min readAug 13, 2018

--

(本文英文原文作者為 Aludirk,由 Edmond Yu 譯)

若你試過 like.co 的點對點轉賬功能,你會懷疑何解你能轉賬 ERC-20 代幣而不用付出以太幣作交易費用。

付出0.0011252ETH作交易費用,以傳送100LIKE

你可以使用 MetaMask 處理一般的 ERC-20 代幣轉賬。你會發現你需要付出例如 0.0011252ETH 作交易費用。

讓我們來看看一般用作傳送 ERC-20 代幣的智能合約:

很簡單,就是確認 _from_to 不是 0x0,然後於 _from 減去傳送金額,再於 _to 加上傳送金額,完成。

然而,若使用代幣付款委託服務,例如你想發送 100 LIKE 給我,你會發現:

like.co 上的點對點轉賬頁面

點擊「確認」鍵後,你只須在 MetaMask 上簽署,便能傳送 100LIKE到我以太坊上的地址,而毋須支付任何以太幣作交易費。

簽署確認傳送LikeCoin

讓我們來看看智能合約中 trasferDelegated 的源代碼,揭開箇中的秘密吧:

transfertransferDelegated 之間的唯一分別在於 signatureCheckercheckTrasnsferDelegated,以及 isDelegated 修飾器(modifier)。首先,我們以 transferDelegated 方法獲得你的簽署tovaluemaxRewardnoncecheckTransferDelegated 這個函數會使用 ecrecover 去檢查那些數據是否真的由你的地址所簽署。當我們確認這筆記錄真的由擁有人所簽署,我們會先從 _from (簽署方)減去 _claimReward 量的 LikeCoin,並加於 msg.sender (LikeCoin 基金會,作為受託者)作為交易費用。然後,直接執行 _transfer_from 轉賬到 _to

因此,委託者(你)可以就一筆付款委託指定付出最高的交易費用(_maxReward) ,而受託者 (在這個例子便是 LikeCoin 基金會)會負擔所需的以太幣交易費以在以太坊上執行這筆交易。也因此對委託者而言,他只需以 LikeCoin(ERC-20 代幣) 支付交易費用。

咦,但你使用 like.co 的點對點轉賬服務時,好像從來沒有支付過 LikeCoin 作為交易費用啊?當然了,因為我們把 _maxReward 設定了為 0 嘛。

緊貼 LikeCoin 消息,加入我們的社群

原文作者,LikeCoin 技術執行長 Aludirk —

--

--