第四屆以太坊開發者大會開始之前,Status 在布拉格舉辦了一場主題為 Cryptolife(讓加密技術走進生活) 的駭客馬拉松。我與來自 Volca.tech / Eth2.io 的 Mikhail 以及來自 trustlines.network / brainbot technologies 的 Bernd、Dong-ha、Dominik 和 Kristoffer 一起開發了一款名為“onbotting.eth”的去中心化應用。
我們的目標是將 Web 2.0 創造的絕佳使用者體驗復刻到 Web 3.0 上。 Paypal 自從推出了使用者可以兌現的數字支票功能之後,在一年之內吸引了數百萬使用者。同樣,微信受到了中國傳統的發紅包習俗的啟發,推出了線上發紅包遊戲,在一年之內成了世界上最大的通訊應用。這些都是非常了不起的解決方案,因為它們滿足了使用者的需求,但是密碼學貨幣目前還做不到這樣。對此,我們的解決方案是讓使用者將密碼學貨幣放入某個地址然後傳送出去,無需用到錢包和 gas 之類的東西,就像 Paypal 那樣。
我們非常榮幸地獲得了 Alex Van De Sande 頒發的社交類應用一等獎和統一登入類應用一等獎。請觀看影片瞭解 “onbotting.eth” 的詳情。
運作原理介紹
核心設想
· Bob 是一名新使用者,沒有以太幣和錢包,也不具備密碼學貨幣的背景知識。
· Alice 有一個 EIP 1077 身份合約和一個閒置的 ERC721 機器人
· Alice 透過 Whatsapp 之類的加密資訊通道將邀請連結分享給了 Bob
· (在使用者層、dapp 層或中繼層)有另外一種激勵機制來支付 gas 費用
1. Alice 將邀請連結分享給了 Bob
2. 邀請連結中包含一箇中轉私鑰和一個簽名
3. Bob 是一名新使用者,沒有以太幣和錢包,也不具備密碼學貨幣的背景知識
4. Bob 點選連結進入了一個網頁
5. Bob 生成了自己的私鑰,儲存在瀏覽器上
6. Bob 使用中轉私鑰簽署自己的地址
7. Bob 的瀏覽器會將兩個簽名都傳送給中繼器
8. 中繼器呼叫 Alice 的身份合約
9. Alice 的身份合約為 Bob 建立了一個身份合約,並且傳送了一個機器人
10. Bob 現在已經成了以太坊使用者,並且擁有了一個可以一起玩耍的機器人!
linkdrops 的模組化實現
經歷過數次迭代之後,Alex van de Sande 和 Marek 開發的 Universal Login SDK 在 Devon 4 上向模組化架構升級。以下是一個簡單版本的模組化邀請機制,無需為收款方生成一個身份合約:
這個模組的主要功能是 transferTokensByLink (透過連結實現代幣轉賬):
· 驗證兩個簽名(轉賬雙方的簽名)的有效性
· (透過儲存 transitPubKey,即中轉公鑰)來驗證該轉賬連結之前是否被使用過
· 從付款方的身份合約內將代幣轉移到收款方的地址
使用 owner.canExecute 可以驗證付款方的簽名 —— https://gist.github.com/Dobrokhvalov/00e2bbca13a1378636fa5a400bd692f5#file-invitelink-sol-L117
進行代幣轉賬的時候可以使用 owner.moduleExecute ——https://gist.github.com/Dobrokhvalov/00e2bbca13a1378636fa5a400bd692f5#file-invitelink-sol-L141
歡迎各位讀者給出改進建議,萬分感謝!
React Native 啟動器的實現
我們正積極致力於將 linkdrops 邀請連結的功能新增進不同的移動應用中。我們已經開發出了 Universal Login React Native Starter (統一登入 React Native 啟動器)。歡迎反饋 :) 。
要求
· NodeJS v10.12.0
· Yarn 1.10.
該啟動器只在 OS X 系統上測試過。
依賴庫
該啟動器使用 react-native-navigation 操作碼(第一版)進行導航。
rn-nodeify 程式包允許使用節點的核心模組。點選此處瞭解更多內容。
安全快捷的加密技術原生庫:
· react-native-secure-randombytes
· react-native-fast-crypto
透過授權委託降低 gas 成本
為了降低 gas 成本,我們決定研究如何透過提出以太坊改進建議來解決這一問題,我們的靈感來源於 Gnosis Safe、Tenzorum、Argent 之類優秀專案和 #MetaCartel 的 Pet3rpan 給出的反饋。最後 Mikhail 提出了一個解決方案。
嘿,有個好訊息!我已經透過 EIP-1167 提出的授權委託建立了合約,將 gas 成本降低了 10 倍。
檢視一下最佳化情況:
最佳化前 Ropsten 測試網路上的 gas 費用 etherscan
最佳化後 Ropsten 測試網路上的 gas 費用 etherscan
免 gas 費用的實現
最後,這方面的最新進展是一個免 gas 費用的去中心化網頁應用模式,可以看作是 Austin Griffith 的 #burner wallet 的改進版本。這款錢包的演示版即將推出,希望能得到各位讀者的反饋,點選該連結可以體驗線上版本。
Cryptoxmas.xyz —— linkdrops 模式下的慈善應用參考例
傳送非同質化代幣的聖誕卡片來支援委內瑞拉難民
作為一個 linkdrop 模式的聖誕慈善應用,我們已經發起了 this Giveth campaign 的活動,來支援 airdropvenezuela.org 和 bitcoinvenezuela.com 。
影片地址是:
https://twitter.com/dobrokhvalov/status/1071440314169208834
流程
傳送流程
1. 傳送方將 ETH 傳送到一個託管智慧合約來購買聖誕賀卡(NFT)。(傳送方可以選擇在卡片售價基礎上多傳送一些 ETH 給接收方)
2. 託管智慧合約將 NFT 從銷售方那裡轉移給託管方
3. 智慧合約會基於 NFT 售價撥出一小部分(0.01 eth)傳送至臨時賬戶作為 gas 費用,餘下部分作為捐款贈予 Giveth campaign 。超出 NFT 售價部分的 ETH 則由託管方託管,以待接收方領取。
4. 傳送方分享 claim link(領取連結)給接收方,連結中包含臨時賬戶的私鑰
接收流程
1. 接收方使用領取連結中的私鑰提交領取交易(Claim transaction)
2. 託管智慧合約將聖誕賀卡(NFT)以及多出的 ETH 傳送至接收方地址
來源:EthFans
作者: Gustav Friis
翻譯&校對: 閔敏 & Elisa