Contract-Design
身份驗證
我正在嘗試建立一個證書 DAPP,大學會將學生的證書/學位上傳到區塊鏈。但是我怎樣才能驗證這所大學是真實的以及上傳證書的大學呢?未經驗證,任何人都可以在區塊鏈上上傳任何聲稱自己是大學的證書。那麼,如何驗證大學的真假呢?
同意@Grandfleet。在像乙太坊這樣的偽匿名系統中,沒有用於身份辨識的魔杖。
白名單是一種簡單的方法。您將有一個管理員角色分配給應用管理員控制的一個帳戶。該帳戶將有權維護白名單。白名單成員將有權將證書插入契約。
值得指出的是,對收件人進行去匿名化是一個類似的挑戰。每個畢業生都必須提供一個接收證書的乙太坊地址。提供一個簡單的驗證 UI 可能會很方便。當學生可以從指定地址簽署消息時,這表明他們擁有私鑰。“我是獲得學位的人。”
希望能幫助到你。
更新
這是一個非常簡化的範例,向您展示如何將學生地址與白名單來源頒發的證書相關聯。
pragma solidity 0.5.1; contract Certs { mapping(address => bytes32[]) public studentCertIPFShashes; address issuer; // simple stub for whitelist system modifier onlyIssuer { require(issuer == msg.sender); _; } constructor() public { issuer = msg.sender; } function issuerCert(address student, bytes32 IPFShash) public onlyIssuer { studentCertIPFShashes[student].push(IPFShash); } }