---
# System prepended metadata

title: solidity 白名單驗證方法

---

# solidity 白名單驗證方法

1.原理是透過**後端**配置一段私鑰 2.公鑰則儲存於**合約**上作為驗證
後端會看是不是白名單 是的話才給予簽名

原理上很簡單 透過運用公私鑰的原理 
1.用私鑰簽署的訊息產生簽名
2.erecover(簽名+訊息) 便能得知公鑰

使用伺服器的私鑰簽署(訊息+傳入的使用者地址+nonce) (實際上簽甚麼都可以 傳入的使用者地址 nonce 這只是避免簽名都一樣)
後端產生簽名 
此時需要的變數有兩個 簽署訊息和簽名

將簽署訊息和簽名傳入智能合約 進行erecover 看是不是智能合約儲存的公鑰就OK


基本上這個網址的方法就行
第二個網址增加了一些驗證方式
https://www.frank.hk/blog/nft-whitelist

https://medium.com/@quentangle/nft%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6%E7%99%BD%E5%90%8D%E5%8D%95%E6%9C%BA%E5%88%B6-c2cb41a94abd