DID

Yona·2022년 1월 25일
1

블록체인

목록 보기
17/22
post-thumbnail
post-custom-banner

📔 DID(Decentralized identifier)

DID란...?
탈중앙화 신원인증.
토큰발행이 없는 경우가 있으며, 오로지 블록체인 기술을 '활용한' 신원 인증 서비스

기업의 데이터 집중화를 떠나, 개인데이터에 대한 소유권의 책임을 본인이 소유하고 개인 주권을 강화하자.

📔 SSI(Self-Soverin identity)

개인이 디지털 상의 신원 주권을 가지게 될 때, 개인의 개인정보를 자신 스스로 소유하는 개념

  • SSI가 구성하기 위한 4가지 요소
    • Issuer(발행자)
    • Holder(소유자)
    • Verifier(검증자)
    • Verifiable data Registry(검증 데이터 저장소 ⇒ 블록체인)

⚙️ 예시 코드

//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)

post-custom-banner

0개의 댓글