read.cash Log in
@liwi more from that month

@RammusXu 問到 NFT 所有權能不能線下驗證 並設想這樣的使用情境:我有一間店面,想要門口放一個QR CODE, NFT持有者可以掃這個QR CODE驗證,或簽到之類的 https://noise.cash/post/1mrx3804 以 ERC721 來說持有 NFT 的使用者至少會有下列資訊: 1) 私鑰 2) 公鑰 3) ERC721 合約位址 4) Token ID 其中除了私鑰以外都是公開資訊 如果要把 NFT 當作會員卡來用,那 2~4 差不多就是會員卡(嚴格來說只有 3 & 4,2 因為 NFT 具有流動性的關係很容易變化),而 1 就是會員卡上的簽名。一般使用會員卡不太會看簽名,因為它本身就是一個有實體而限量被保管者的物件。NFT 因為都是公開的,就勢必得驗證簽名。 所以店家方面必須至少知道有那些公鑰持有發行的會員卡 NFT。 假設發行的數量不多,可以用把所有快照的擁有會員卡 NFT 的公鑰位址作成 QR code 讓用戶掃描。這樣可能就是一天印一個 QR code (A) 放門口。我不知道現在相機的解析度支援到多少資料的 QR Code,但上千個字元應該沒問題,不夠的話就做成多個 QR code,然後比如說以使用者 0x__ 後首個 hex 分類。 使用者方面則需要有特定軟體來證明自己擁有 QR code 裡某一個公鑰。以 Electron Cash 來說加解密功能的部分會讓自己去掃是否擁有某公鑰的私鑰。 在這個情境裡,要做到都不上線,店家可能還要提供另一個依序用 QR code A裡的公鑰加密簡單通關訊息的 QR code B。用戶掃 QR code B 後得到解密後的訊息後報給櫃台(比如說一串數字),櫃台核對後放行。 要增加安全性可以讓用戶在掃 QR code A 時軟體讀進一個順序碼,之後報給櫃檯順序碼+訊息的組合,如此便可以避免訊息洩漏與單一公鑰位址同一快照時間內多次被利用(假設櫃台驗證後就把該組合劃掉)。 這是我試想的在通關時不需上線的 NFT 驗證方案。不知道有沒有什麼疏漏或畫蛇添足。 雖然通關時不需上線,但 NFT 就是區塊鏈的東西,所以前後一些準備工作也都是要上線的。所以實務上線上驗證的情境應該才是常態? 另外原 po 文裡提到看錢包裡的 NFT。這是非常不靠譜的驗證方法。小狐狸非擁有者無法匯入 NFT (匯入後轉出會怎樣我倒是沒試過)就算了,別的錢包是怎麼設計也很難說,如果可以 view only 匯入,那誰都可以展示那 NFT。 再來小狐狸錢包就算非擁有者不能匯入,那店家可能想說限定使用小狐狸錢包。但用戶可以自己開一個合約發行盜版 NFT 後匯入。也就是說店家還是需要去檢驗合約位址。 所以要用 NFT 驗證,最前頭提到的四項資訊大概缺一不可(Token ID 大概比較不重要,除非有會員分級制等設計)。

3 comments

Log in to join in Reading is open to everyone. Replying needs an account.