Show-me-wallet 目前問題
會受網絡擠擁影響
在目前流程, 是需要在驗證時用helius API查用戶持有什麼NFT, 這裡會有網絡的bottleneck問題。在使用場景假設中, 如果我們是做活動入場的NFT票券, 現場應該會有很多工作人員同時在做驗證。那就代表有機會網絡擠擁。
未來解決方向:
考慮在大量驗證同一NFT collection的場景下, 加入個驗證功能是預先查找NFT collection的所有owner address並在local cache起來。驗證時就只需要對照user wallet address與本地的所有owner addresses做look up,整體不計事前預載local cache, 就是只需要offline流程避開網路問題。
沒有NFT重複使用檢查
如果有一個NFT持有人的wallet是連結到多部mobile device中, 而分別由多人持有這些mobile device。那驗證入場場景下, 各個人的手機都能出示有效QR code及被驗證, 就會有NFT票券重複使用的問題。
未來解決方向:
使用NFT憑據,這是個執行權益的動作。現在是只做驗證,但不會改變狀態,所以會有重複使用問題。未來可能會加上執行權益時的狀態機制, 例如:
NFT burn (burn了就無法再次重複使用)。
利用NFT本有的metadata中的counter attribute去記住餘下使用次數及限制。
利用program PDA去另外儲存記住餘下使用次數及限制。
驗證部份沒有challenge元素
一般驗證流程設計都會有challenge元素,先給challenge,被驗證方回應challenge,這能排除重複使用同一憑據(例如有效QR code)去作多重驗證。
初期設計考量是,如果要有challenge元素就可能要:
流程需要做兩次線下scan QR code交互流程。
或需要雙方background與backend做數據交換。
整體流程較複雜,所以先不採用。及後會考慮是否改用別的流程設計。
部份NFT若不支援collection, 則無法用collection整合
我們是用metaplex的collection metatdata來做collection整合的。
所以有些早期的NFT或沒寫上collection metadata的NFT, 現時我們只能在不使用whitelist filter時顯示, 而無法做whitelist filtering。
這類型的NFT, 有些是能在坊間NFT交易平台上整合去看的, 相信是平台方做了些額外的aggregation處理。目前我們對此未有解決方案。