DID란...?
탈중앙화 신원인증.
토큰발행이 없는 경우가 있으며, 오로지 블록체인 기술을 '활용한' 신원 인증 서비스
기업의 데이터 집중화를 떠나, 개인데이터에 대한 소유권의 책임을 본인이 소유하고 개인 주권을 강화하자.
개인이 디지털 상의 신원 주권을 가지게 될 때, 개인의 개인정보를 자신 스스로 소유하는 개념
//SPDX-License-Idetifier: MIT
pragma solidity ^0.8.10;
contract CredentialBox {
address private issuerAddress;
uint256 private idCount;
mapping(uint8 => string) private alumniEnum;
struct Credential {
uint256 id;
address issuer;
uint8 alumniType;
string value;
}
mapping(address => Credential) private credentials;
constructor() {
issuerAddress = msg.sender;
idCount = 1;
alumniEnum[0] = "SEB";
alumniEnum[1] = "BEB";
alumniEnum[2] = "AIB";
}
// 증명서를 발행하기 위한 함수
function claimCredential(address _alumniAddress,
uint8 _alumniType,
string calldata _value) public returns(bool) {
require(issuerAddress == msg.sender, "Not Issuer");
Credential storage credential = credentials[_alumniAddress];
require(credential.id == 0);
credential.id = idCount;
credential.issuer = msg.sender;
credential.alumniType = _alumniType;
credential.value = _value;
idCount += 1;
return true;
}
// 받은 증명서를 확인하는 함수
function getCredential(address _alumniAddress) public view returns (Credential memory){
return credentials[_alumniAddress];
}
}
//eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWRwIjoiY29kZSBzdGF0ZXMiLCJ0eXBlIjoiYmViIiwidG9rZW4iOiJ0ZXN0IiwidmFsdWUiOiLsvZTrk5zsiqTthYzsnbTsuKAgRElEIOyImOujjOymnSDrsJzquInsnYQg7JyE7ZWcIO2BrOumrOuNtOyFnCDthYzsiqTtirgifQ.qXTgkPcK43uZ4_FBLBTFjaTsnmV9sAAekgK8BUZBt1g
//_value 값은 JWT로 암호화되어있음
1) 탈중앙화 신원인증(DID)
2) 자기주권신원(SSI)