블록체인 기반의 IoT 솔루션
박창우 | researcher of CURG | chang981219@naver.com
Introduction
‘필요는 발명의 어머니(Necessity is the mother of invention)’ 플라톤의 국가에 나오는 이 문구에서 볼 수 있듯, 대부분의 기술은 문제를 해결하기 위한 솔루션으로 생긴다. 그러나 안타깝게도 블록체인 기술은 유난히 기술이 현실의 어떠한 문제를 해결하는가에 큰 관심을 갖지 않는듯하다.
블록체인을 공부하면서 내가 항상 들었던 의문은 ‘이 기술이 대체 어디에 사용될 수 있을까?’ 다. 일상에서 블록체인 기술을 사용해 본 적이 있는가? 대부분의 경우 대답은 ‘아니오’ 일 것이다.
이제껏 블록체인 기술을 사용한 솔루션의 대부분은 정말 블록체인 기술이 아니면 해결하기 힘든 문제이기 때문에 블록체인 기술을 사용하는 것이 아닌, 그저 블록체인 기술을 사용했다고 광고하여 자신들의 기술력을 과시하기 위한 일명 ‘있어빌리티’를 위한 솔루션들이었다.
본 글에서는 ‘있어빌리티’를 위해 블록체인 기술을 응용한 것이 아닌, 현실의 문제를 해결하기 위해 정말 필요하기 때문에 블록체인 기술을 사용한 IoT 솔루션들을 살펴보고, 추가로 앞으로 나올 수 있는 솔루션들을 살펴보고자 한다.
블록체인 기술이 왜 필요할까?
블록체인 기술이 왜 필요한가? 라는 질문에 답하기 전, SSI의 개념에 대해 알아보자.
SSI (Self-Sovereign Identity)
SSI는 Self-Sovereign Identity의 약자로, 자기 주권 신원 실현이라고 부르기도 한다. 웹사이트나 앱, 서비스 등에 신원 인증을 함에 있어, 서비스 제공자에게 전달하는 개인 정보에 대해 서비스 이용자가 주권을 가지고 실행하는 것을 의미한다. 최근 들어 웹사이트에 가입을 할 때, 구글이나 네이버, 페이스북을 통해 본인 인증을 하는 경우가 있는데, 이 경우 구글 네이버 등이 서비스 이용자의 정보를 지니게 되어 페이스북 개인정보 유출 사건으로 볼 수 있듯 프라이버시 문제를 일으킬 수 있다. SSI는 이러한 프라이버시 문제를 막기 위해 신원 인증을 하되 서비스 이용자의 개인 정보는 전달하지 않기 위한 방법론이다.
SSI를 실현하기 위해 대한민국은 DID(Decentralized Identification) 기술을 사용하고자 한다. DID 기술을 알아보기 전, Claim 그리고 VC와 VP의 개념에 대해 알아보자.
Claim
Claim 이란, 주체에 대한 진술로 주체는 claim을 할 수 있으며, 주체,속성,값 관계를 사용하여 표현한다.
claim을 단독으로 표현해야만 하는 것은 아니다. 독립된 claim을 합쳐서 주체에 대한 정보를 나타내는 그래프를 표현할 수 있다. 아래 그림의 예시는 Pat이 Sam을 알고 있으며 Sam이 교수로 채용됐다는 claim을 추가하여 이전 claim을 확장한다.
VC (Verifiable Credential) & VP (Verfiable Presentation)
VC란, Verifiable Credential의 약자로, 디지털 credential의 openstandard 이다. VC에는 다음과 같은 정보들이 포함되게 된다.
- credential 주체의 식별과 관련된 정보
- 발행 기관과 관련된 정보
- credential 유형과 관련된 정보
- 발행 기관이 주체에 대해 주장하는 특정 속성과 관련된 정보
- credential이 파생된 방법에 대한 증거
- credential의 제약 조건과 관련된 정보
이들 중 사용자가 신원 증명을 위해 제공하고자 하는 정보들을 모아서 일부만 제출할 수 있는데 이를 VP라 한다. VP는 Verfiable Presentation의 약자로, verifiable credential 키에 VC 값들을 요소로 하는 배열을 지니고 있다.
VP는 하나 이상의 VC의 데이터를 표현하며, 데이터의 소유권을 검증할 수 있는 방식으로 포장된다. VC가 직접 제공되면 VP가 된다. 암호학으로 검증할 수 있지만 VC를 포함하지 않는 VC에서 파생된 데이터 형식도 VP 일 수 있다.
DID 기술
DID가 어떻게 동작하는지 알아보기 위해 다음의 그림을 살펴보자.
이용자가 발급기관에 자신의 신원 인증을 위한 신분증(VC)을 요청하면 발급기관은 이용자의 개인 정보를 확인하여 신분증을 발급해 주며 DID 블록체인에 인증서가 발급됐음을 전달한다. 이 과정에서 인증서 자체가 전달되는 것이 아닌 발급 이력이 저장된다.
이후 자신의 신원을 인증해야 하는 상황에서 이용자는 서비스 제공자(검증 기관)에게 자신의 신분증의 일부 데이터를 제공한다. 이때 검증 기관은 DID에 신분증 발급 여부를 검증함으로써 전달받은 데이터의 진위 여부를 검증한다.
다시 원래 질문으로 돌아가 보자. 왜 블록체인 기술이 필요한가? 내가 나임을 증명하되 나의 정보를 모두 제공하고 싶지 않기 때문에 DID기술을 활용해야 하며, DID 기술을 위해서는 신분증 발급 사실을 암호화하여 기록할 블록체인 기술이 필요하다.
DID 기술의 실제 응용 사례
이러한 DID 기술을 현재 한국조폐공사에서 응용하여 모바일 신분증 서비스를 출시하였는데, 현재는 모바일 운전면허증이 있으며 추후 모바일 주민등록증 등으로 넓혀나갈 것이라고 한다.
실물 신분증과 모바일 신분증의 가장 큰 차이는 인증 방식이 다양해질 수 있다는 점이다. 실물 신분증을 통해 신원 인증을 할 경우, 자신의 신분증을 온전히 노출해야 하지만, 모바일 신분증을 통해 인증할 경우, QR-MPM(검증자가 QR을 띄워주어 사용자가 카메라로 코드를 스캔하여 인증하는 경우), QR-CPM(사용자가 QR을 띄워주어 검증자가 카메라로 코드를 스캔하여 인증하는 경우), APP to APP, Web to App 등 다양한 방식을 통해 자신의 신분증을 노출하지 않으면서 신분증을 통해 본인 인증이 가능하다.
또한, 신분증을 통해 인증하고자 하는 정보에 따라 선별적으로 정보를 제공하는 것 또한 가능하다. 예를 들어, 성인인증을 하고자 한다면, 자신의 주민등록번호를 모두 노출할 필요 없이 자신의 생년월일만 인증해도 될 것이다. 이러한 경우 실물 신분증은 자신의 신분증을 온전히 노출하기 때문에 주민등록번호가 모두 노출됨에 반해, 모바일 신분증은 자신의 생년월일만 인증하는 것이 가능하다. 따라서 자신이 인증하는 데 사용된 정보가 유출된다 하더라도 실물 신분증을 통해 제공하는 정보가 유출되었을 때 보다 피해의 정도를 크게 줄일 수 있다.
또한, 실물 신분증을 들고 다닐 필요 없이 휴대폰을 통해 인증할 수 있기 때문에 언제 어디서나 가능하다는 장점이 있다. 지금은 운전면허증만이 제공되지만, 여권이 모바일 신분증으로 제공된다면 여행을 갈 때, 여권을 잃어버릴까 걱정하지 않아도 된다는 장점이 있다. 또한, 자신이 여행한 국가를 인증할 때도 여권을 들고 다니며 개인정보를 노출하며 인증할 필요 없이 모바일로 여행 국가 정보만 전달할 수 있을 것이다.
조금 더 자세히 들여다보기 위해 모바일 신분증의 SP(Service Provider)가 요청할 수 있는 정보에 대해 알아보자.
위 리스트는 영지식을 통해 정보가 가려지는 것이 아닌 정보가 그대로 전달되는 VC들의 리스트이다. 위 정보를 SP가 요청하고 이용자가 이에 동의하는 경우 해당 정보를 전달할 수 있다.
그러나 SP가 항상 구체적인 정보를 알아야 하는 것은 아니다. 성인이라는 것을 증명하기 위해 생년월일을 직접적으로 전달받을 필요는 없다. 이러한 경우 SP는 영지식 VC를 요청할 수 있다. 다음은 SP가 요청 가능한 영지식 VC의 리스트이다.
일반 VP로 요청한 정보의 경우 SP가 본인 식별이 가능하지만 영지식 VP로 인증할 경우 Holder의 정보가 전혀 포함되지 않아 본인 식별이 불가능하다. 예를 들어 ‘zkpbirth’를 제출받을 경우 SP가 제시한 기준일 보다 이전에 태어났는지만 파악이 가능하다.
앞으로는 이 기술이 어떻게 응용될 수 있을까?
앞으로의 산업 트렌드는 초연결성, 초지능화, 초현실화가 될 것이다. 이 산업 트렌드에 블록체인 기술이 어떻게 응용될 수 있을까? 두 가지 예시를 들어 미래에 블록체인 기술이 응용될 수 있는 방향성을 제시하고자 한다.
- 무인 편의점
최근 들어 최저임금이 높아짐에 따라 저녁 시간대에 무인으로 편의점을 운영하는 경우가 늘어나고 있다. 무인 편의점을 활용했을 때 필자가 느낀 불편함은 주류와 담배 등의 성인인증이 필요한 제품은 구매가 불가능하다는 것이다. 블록체인 기술을 통해 모바일 신분증이 보급된다면 자신의 정보를 전부 전달할 필요 없이 생년월일만을 인증하여 구매할 수 있는 무인 주류 자판기 등을 통해 무인 편의점에서도 주류 및 담배 등을 구매할 수 있을 것이다.
2. 원격진료
의료, 보건에 관한 정보는 굉장히 민감한 개인 정보이다. 서울 용산 경찰서장이 피의자를 검거할 목적으로 국민건강보험공단에게 피의자의 요양급여내역의 제공을 요청한 사건은 헌법재판소에서 위헌확인을 한 바 있다(헌법재판소 2018. 8. 30. 선고 2014헌마368 전원재판부 결정 [건강보험 요양급여내역 제공 요청 및 제공 행위 등 위헌확인] [헌집30–2, 363]). ‘개인정보자기결정권’을 침해하였다는 이유였는데, 개인의 의료 정보가 얼마나 민감한 정보인지 알 수 있는 사례다.
의료기기와 통신 기술의 발전과 함께 의료 서비스를 제공받지 못하는 지역에 원격진료를 통해 의료 서비스를 제공하는 것이 해결책으로 떠오르고 있는데, 문제는 이 과정에서 해킹 등을 통한 개인정보의 유출로 인한 피해이다.
모바일 신분증을 통해 원격진료를 위해 제공하는 정보를 암호화하고, 본인 식별을 위한 최소한의 정보만 전달할 수 있다면 이러한 피해를 예방할 수 있을 것이다.
결론
현재의 모바일 신분증을 통한 DID 솔루션이 완벽한 것은 아니다. 우선 프라이빗 블록체인이기 때문에 이를 이용한 개발을 하기 위해 허가를 받는 것이 쉽지 않다. 아무래도 신분증을 기반으로 하는 서비스이다 보니, 누구나 접근할 수 있는 것이 아니라, 미리 연계 서비스를 신청한 법인 사업자에 한정되고 있다.
그러나 이제껏 있던 그 어떠한 서비스보다 실생활에 응용 가능하다는 것이 필자의 생각이며, 앞으로 이 서비스를 이용한 다양한 IoT 솔루션들이 생기길 기대한다.