Contract-Design

身份驗證

  • February 13, 2019

我正在嘗試建立一個證書 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);
   }

}

引用自:https://ethereum.stackexchange.com/questions/66905