블록체인 기반 출입관리시스템
- 발주처 : 한국항공대
- 프로젝트 기간 : 2019.03~2019.12
- 역할
- 팀 리더 수행하며 프로젝트의 기획, 개발 총괄
- 하이퍼레저 패브릭 도커 컴포즈 구성 및 빌드
- MSP를 통한 기관별 노드 권한부여
- 출입이력 트랜잭션 체인코드 설계
- dApp 설계 및 SDK를 활용한 체인코드 연동
- 개요
- 배경
- 현재 출입관리 시스템은 출입관리를 통제하는 Controller 비용과 출입이력 데이터 서버 비용이 상당함.
- 또한 고객 개인정보유출에 대한 위험성 (*2p 기존 시스템/서비스 환경 문제점 참고)이 존재
- 임베디드시스템 기반의 하이퍼레저 패브릭 블록체인을 활용한 출입관리시스템을 만들어 위와 같은 문제를 해결하고자 함
- 장점
- 중앙 서버 비용이 필요 없음
- Controller가 서버로부터 데이터를 네트워크를 통해 전달받지 않고 직접 원장을 비교하므로 네트워크 비용 절감
- 체인코드를 통해 블록체인 분산원장에 출입이력을 관리하므로 거래의 안전성과 데이터 무결성 보장
- 출입이력 중 프라이버시에 민감한 내용은 DID를 활용해 암호화하여 저장하여 개인정보보호 보장
- 배경
-
블록체인 플랫폼
- 컨트롤러(라즈베리파이)와 데스크탑 모두 동등한 하나의 피어로서 출입 트랜잭션에 대한 검증 수행
- 이 때, 서버 없이 모든 피어가 같은 분산원장을 공유하고 있기에 서버 비용 절감
- 컨트롤러는 핵심적인 기능(트랜잭션 검증)만 수행하여 컨트롤러 비용을 절감
- 블록 생성에 관여하여 컴퓨팅 연산 비용이 많은 노드는 성능이 좋은 데스크탑을 따로 둠으로서 비용절감 및 효율성 증대
-
출입관리가 필요한 기관들을 하나의 채널로 묶어서 One-Stop 방식으로 트랜잭션을 병렬처리함으로서 경제적인 효과 증대
-
프로세스
Getting started
임베디드 시스템과 블록체인을 활용하여 블록체인 모델을 만들 때 어떤 것이 좋을지 고민을 많이 하였습니다.
가장 간단하게 실험할 수 있는 NFC 모듈과 라즈베리파이, 하이퍼레저 패브릭 블록체인을 결합하는 모델을 생각하다보니 임베디드 기반의 출입관리시스템 을 생각하게 되었습니다.
Network Flow
-
라즈베리파이들과 데스크탑, 모두 동등한 하나의 피어로서 네트워크에 참여하고 있습니다.
-
모든 피어들은 모두 같은 분산원장을 공유하고 있습니다.
Application Workflow
-
게이트에 출입하고 싶은 사용자는 NFC 카드키를 단말에 접촉시킵니다.
-
인터럽트가 들어오면 NFC 프로그램은 문을 열어주고 블록체인 네트워크에 해당 출입 로그를 저장하려고 합니다.
-
하지만, 이 태그키가 애초에 등록이 되지 않은 태그 키이거나, 또는 가입 후 탈퇴한 태그 키 일 수 있습니다. 이럴 경우 문을 열어주면 안되됩니다.
-
따라서 첫번째로, 이 태그 키의 주인이 출입 가능한 인물인지 쿼리를 진행합니다.
-
먼저,Wallet을 통한 검사로 해당 NFC 키가 우리가 알고있는 키인지 확인합니다. 만약, 전혀 엉뚱한 키라면 이곳에서 차단받습니다.
-
그 다음, 사용자가 유효한지 검사합니다.
-
분산원장에서 NFC 키를 통해 쿼리를 하여 확인하는 것입니다. 탈퇴 된 회원은 이곳에서 차단받습니다.
-
이에 비해, 아무 이상이 없다면 해당 사용자는 출입이 가능하다는 뜻이므로 문을 열어주게 되고, 현재의 출입 로그를 블록체인에 넣을 준비를 하게 됩니다.