前天晚上我的一筆 #CCTP 跨鏈調用讓我至今仍追悔莫及。大家都知 #Circle 目前已經開放了六條鏈上的 $USDC 原生跨鏈服務,但是他們僅提供了可供調用的合約以及對應用於簽發鑄造確認的API服務端點,因此普通用戶無法通過一個官方的網頁前端來進行鑄造。由於之前我也曾經多次使用過CCTP,因此這次在進行調用時也并沒有進行過多的檢查,便順利完成了合約調用。而當時的我還並不知道,這只是夢魘的開端。原本深受我所信賴的Circle此時卻是簡單地告訴我他們無法處理,甚至都沒有給出一個令人信服的理由。
1. 錯誤的合約調用
根據官方所提供的文檔 https://t.co/VCy8PtOn5R,一筆典型的跨鏈初始化交易應當要包括以下四個變量:
而這其中的mintRecipient便是目標鏈上接收人的地址。而此處所使用的Bytes32格式的長度為64位。但是我在進行調用的過程中并沒有執行StringtoBytes32的格式轉換。由於每個ETH地址的長度均爲40,因此這部分差額,也就是24個零被填寫在了最後,而不是在地址的前面,這也就造成我後面的確認交易中USDC被轉移到了一個末尾多達24個零的空地址中。
https://t.co/wcfN1qmHbH
2. 確認交易
由於步驟1中所存在的問題,因此目標接收地址也出現了對應的變化,最終這10萬枚USDC被轉移到了ARB上的 0x8e662632c1c8eee5000000000000000000000000 中。
https://t.co/2l8cvKIJxI
3. 嘗試挽回
發現問題之後,我立即嘗試聯絡派盾、慢霧試圖幫忙聯係Circle,最終在第二天均獲得一致的回復——我需要自己聯係Circle進行處理。於此同時,我也嘗試在Circle的CCTP開發者頻道中尋求幫助,也嘗試在Circle的官網填寫對應的支持工單,但是可能是由於臨近聖誕節的緣故,他們并沒有即時進行回復,直到現在我依然沒有收到任何支持Case受理的自動回信。而Discord社群和我的一位朋友則建議我嘗試直接向Circle的客戶支持郵件發出幫助請求。
十分感謝社群Mod vcarl的幫助,同時由於我的Case確實正處於假期時間,我對Circle的支持延誤表示理解。但是令我不解的是在Circle的整個官網上,都找不到任何一個可以尋求幫助的電子郵件或是可用的在綫溝通渠道,有的僅僅是一個無論你如何提交都會石沉大海的Ticket提交頁面,限制文本提交長度甚至都不如一條普通推文。
4. 希望的破滅
在與朋友和社群工作人員的幫助下,我開始與他們所提供的幫助郵箱取得聯係。這次與官網的那個工單提交頁面不同,Circle在幾分鐘内就閲覽並回復了我的郵件,同時要求我提供具體的事件信息,我也在收到后第一時間進行了回復。
不得不承認Circle的這個支持郵箱的工作效率很高,他們在收到我所發送的具體信息之後便撰寫了第一封有效回復:
Unfortunately, USDC transactions are irreversible by design and cannot be canceled or recalled once they have been initiated. Since this transaction was initiated and processed successfully to an address that does not exist, it is not possible to cancel or recall it at this time.
不得不承認Circle的語言能力確實很有水平,巧妙地向我告知了他們無法進行找回,因爲這只是一筆簡單的轉錯地址的USDC Transfer而已。
這是我一度以爲他們内部可能對於CCTP協議沒有很好的培訓和溝通,因此我再次詳盡地回復了整個事件的全部技術細節。而第二封有效回復也在今天順利收到:
Unfortunately, USDC transactions are irreversible by design and cannot be canceled or recalled once they have been initiated. Since this transaction was initiated and processed successfully to an address that does not exist, it is not possible to cancel or recall it at this time.
For your reference, please refer to our User Agreement:
https://t.co/525KAf7mmU
完全一致的回復文本,告知我他們無法幫助進行資產尋回。而在兩年前的USDC 2.1版本的更新中,Circle還表示他們可以幫助用戶收回錯誤轉賬到合約中的USDC資金:https://t.co/YAjcjjox8o
這種反差令人感到困惑和難以理解,這確實是因爲我的失誤所導致最終USDC被轉移到錯誤地址的事件。但我相信我已經完整和清晰地證明了這筆轉賬的實際目標,同時這個末尾多大24個零的以太坊地址也不可能被任何人所利用。讓我不解的是Circle官方對此的敷衍態度和對用戶毫不尊重的行爲。
因此我想請求大家的轉發擴散以及尋求可行的資金收回方案,對資金收回起到決定性幫助的,我將給予找回資金的40%進行回報,同時10%的資金給予曾經提供幫助的朋友或者公益用途。
感謝各位看到這裏,也希望大家在調用合約前進行審慎的檢查,避免出現類似情況。
Hi, my name is @BujidaodeIan, and I’m a $MEME (@Memecoin) farmer at @Memeland.
On my honor, I promise that I will do my best to do my duty to my own bag, and to farm #MEMEPOINTS at all times.
It ain’t much, but it’s honest work. 🧑🌾