如何轉移靈魂綁定代幣並在 OpenSea 上售賣?

發表於 2022-09-19 09:13 作者: Odaily星球日報

SBT 即使代幣本身不可轉移,也會伴隨其地址權限本身的轉移,而動搖靈魂綁定的意義。

原文標題:《一種轉移並在 Os 拍賣不可轉移靈魂綁定代幣的方法》

撰文:十四君

5 月初 以太坊創始人 Vitalik 的靈魂代幣 SBT 論文發表之後,迅速成爲整個 Web3 領域最熱門的話題之一,不久前 Vitalik 發布新書時便使用了此 SBT,任何人均可捐贈任意金額,並獲得一個靈魂綁定的 NFT ,但是新的 Token 標准不僅是缺乏市場上對靈魂綁定的可靠應用,更是其靈魂代幣本身還存在強制轉移的漏洞。

對於合約技術的老手而言,只需合約錢包 /A3S 協議兩個關鍵詞即可理解核心內容但如果對實現細節有興趣,且同本文一同探索吧。

1、靈魂綁定代幣是什么

一直以來,自由主義都是 Web3 或者說區塊鏈世界發展蓬勃發展的基石,但是蠻橫的自由主義催生的是只有黑客才是 web2 向 web3 轉型的最成功的群體。所以如果說真正有價值的 Web3 ,需要怎樣的意識形態呢?

Vitalik 認爲,Web3 需要以負責任的自由主義作爲新的信念基礎。所以 SBT 其本質就是將信譽機制引入到了 Web3 當中,使得數字世界能夠對账戶的信譽進行評價和度量,在去中心化世界裏建立聲譽、責任和社會資本。

而實現的方式,就是以錢包地址的目標之下,發行不可以轉移的 Token,並稱之爲 Soulbond(靈魂綁定)。

1.1、SBT 的應用場景案例

SBT,Soulbond Token(靈魂綁定通證),顧名思義,就是綁定於用戶账戶或錢包的 Token,一旦生成則不可交易。可用來代表承諾、資格、從屬關系等,類似於履歷表作爲相應社會關系的一種證明。

在 Vitalik 的論文中,把綁定 SBT 的相關账戶定義爲 Soul(靈魂)。

舉例來說,以太坊基金會所綁定的账戶(Soul)可以向參加其开發者大會的人發放相應的 SBT,某大學所綁定的账戶(Soul)也可以向其畢業生發放代表學位證書的 SBT,等等。

而本文的樣例目標,就是由 Vitalik 發布新書時候,將會附帶贈送給捐贈地址的 SBT。

1.2、SBT 的最小實現

其實無論 ERC20 還是 ERC721 都是通過合約標准中的 transfer 和 SafeTransferFrom 來執行轉移功能,因此對 SBT 的最小實現,只需要刪除掉 transfer 的代碼,讓其只有 Mint 時可以修改用戶余額表_balances 即可。

2、轉移 SBT 的漏洞是什么?

2.1、錢包分類概述

其實很簡單,能夠鏈上發起交易的是錢包,而錢包分單籤和多籤。

單籤錢包,我們要往區塊鏈上發送一筆轉账交易,需要去用錢包去做一個籤名,我們自己籤好名把交易發送出去,交易執行成功轉账就成功,這就是典型的單籤錢包,也是我們平時使用最多的錢包。

而多籤錢包,顧名思義,就是需要多個人去籤名執行某個操作的錢包。使用多籤錢包進行轉账,往往需要 >= 1 個人去籤名發送交易之後,轉账操作才真正完成。使用多籤錢包時,我們可以指定 m/n 的籤名模式,就是 n 個人裏面有 m 個人籤名即可完成操作。

多籤錢包,常常應用爲需求強安全性的個人,以及管理公共資產的投資機構、交易所以及項目方。核心價值是資金安全與資金共同管理

2.2、多籤錢包如何 mintNFT?

在以太坊中,多籤錢包往往是一個智能合約,而合約要實現多籤管理,有兩大種路徑分別對應

  • Ownbit 多籤錢包使用持籤授權法:用你的私鑰對相應的花費(金額、目標地址等等)進行籤名,並給出籤名結果

  • Gnosis 多籤錢包使用交易授權法:用你的私鑰發送一筆以太坊交易,去調用某個特定接口,並給予特定參數;

咱們用 Gnosis 的早期版本實現 V1 版做例子

2.3、Gnosis 多籤執行任意交易的流程

整體分成 4 個階段:初始化階段→提案階段→投票階段→執行階段

  • 初始化階段:定義若幹管理員_owners,後續的交易僅這些地址可調用

  • 提案階段:任意管理員之一通過 submitTransaction 方法提交交易,得到一個交易號 transactionId,提交的交易需要攜帶 destination, value, data 這三個參數

  • 投票階段:其余管理員通過提交 ETH 交易來投票,調用合約的 confirmTransaction 方法

  • 執行階段:當 confirm 的人數達到最低要求,executeTransaction 的內部邏輯將被觸發,

最終合約通過 call 遠程調用執行任意操作

2.4、爲何可以執行任意操作?

因爲其中 destination 是目標地址,value 是金額,data 是交易附帶的參數。

在一筆以太坊交易中,Data 字段是交易的附帶信息,有明確的規則控制,比如下圖是最常規的 ERC20 轉账交易,其在 Etherscan 解析後的展示邏輯如下,而其實交易解析前的原文是

0xa9059cbb0000000000000000000000003baf10686c60680d491f49ea3f720a1831c3391e00000000000000000000000000000000000000000000f92e1b81422bfc3a0000

其解析的原理是,依據前 8 位對應合約的 ABI 文件可以得知對應的函數名與參數列表,後續每 64 位按不同參數類型做不同轉換做解析

所以,對於提案,只需要清晰的規定,目標地址、金額、交易附帶參數,即可執行任意操作

2.5、小結 - 合約錢包模式優缺對比

這裏概述了核心的 GnosisV1 版本實現邏輯,其實後來他已經逐步改版成類 Ownbit 的形式,採用持籤驗籤的模式了,主要原因是

用發送交易代表提案和投票,有着簡單易懂規避了復雜籤名計算,且全程线上實現任何時候追溯都有據可查等優勢,但是缺點也很顯著

  • 一次提案需要多人交易成本高昂

  • 最後投票者 gas 費更高,即成本不平衡

  • 再交易實際邏輯在 data 字段中,難以閱讀理解

所以用戶利弊成本權衡,最終放棄了交易確認法,讓他走向持籤驗籤的模式。

3、SBT 如何在 OpenSea 上售賣?

至此已經非常顯著了,只需要用合約錢包無論是 Gnosis 還是 Ownbit 的方法,都可以發起捐贈然後領走 NFT,那轉移不了 Token 本身,連着錢包本身一起賣不就可以了么。

當然,獲得不是終點,我們的目標是還要有合適的方法來拍賣他!從而爲 SBT 實現定價

這裏就需要使用一種特殊的協議名爲:A3S

A3S 協議架構圖

他是構建下一代地址標准的多鏈協議。爲地址提供了流動性和可整合性,A3S 使地址能夠安全地交易、租賃和托管。因此,他是地址成爲可以轉移和定價的鏈上基礎設施。

用戶從智能合約地址工廠中鑄造一個 Commander NFT,它就會自動部署相應的智能合約。智能合約的所有者指向相應的 NFT 持有者。合約可以接收任何類型的鏈上資產,並且只允許所有者發送資產,就是將這個智能合約將作爲用戶與任何區塊鏈 dApp 交互的載體。

誰持有這個 NFT,即是拿着這個智能合約的遙控器,如果 NFT 發生了轉移,那么智能合約的管理權也發送了轉移。

通過此原理最終,我們可以看到出現了一些基於此協議的在 Opensea 上的掛單,當然沒啥價格,畢竟錢包地址的交易還不具備較大規模的社會共識。

總結

本文概述了 SBT 的理念基石,高度認可 Web3 需要以負責任的自由主義作爲新的信念基礎,但是新的概念需要周全的考慮智能合約這樣的黑暗森林中發出的狙擊槍,通過概述鏈上合約錢包 Gnosis 和 Ownbit 的實現原理,並結合較爲前沿的 A3S 錢包地址轉移協議,系統的說明 SBT 即使 Token 本身不可轉移,也會伴隨其地址權限本身的轉移,而動搖靈魂綁定的意義。

最後當我收集本文資料的時候,也發現原來已經有類似思路的研究者 5660.eth,將此種 SBT 合約錢包轉移給到 Vitalik 的錢包地址,或許可以提醒 V 神以及其以太坊基金會能夠對後續 EIp 圍繞 SBT 的提案,做更周期的優化,比如檢測授予對象是否爲合約地址等等。

標題:如何轉移靈魂綁定代幣並在 OpenSea 上售賣?

地址:https://www.coinsdeep.com/article/6875.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊