분실, 파손, 도용 위험이 있는 인증에 필요한 소지품 없이 얼굴만을 통해서 인증함으로써 효율적이고 간편하며, 인증데이터와 인증 기록에 대해서도 무결성을 보장할 수 있는 시스템을 목표로 한 프로젝트입니다.
해당 프로젝트는 카메라 내의 사람얼굴을 인식하여 사람에 대한 정보와 인증시간을 블록체인에 저장하며, 이더리움의 스마트 컨트랙트를 통해 발급한 토큰을 통한 결제를 할 수 있는 프로그램입니다.
사용자는 인증 프로그램을 통해 얼굴 인식을 한 뒤 입출입 허용을 받을 수 있고, 결제 프로그램을 통해 얼굴 인식을 한 뒤 메뉴선택을 하고 결제를 할 수 있다. 또한 사용자는 로그인을 통해 본인의 인증기록을 열람할 수 있다.
관리자는 로그인을 통해 전체 회원목록에서 특정 사용자에 대한 인증기록들을 조회할 수 있고 사용자 정보를 입력하여 새로운 사용자를 등록 할 수 있다.
- FaceRecognition: 얼굴 전처리 후 얼굴 인식을 통한 인증을 수행한다.
- FacePay: 얼굴 전처리 후 얼굴 인식을 통한 결제를 수행한다.
- App: 얼굴 인증과 결제를 하기 위한 웹 서버와 파이썬 파일의 소켓통신을 수행한다.
- Attendance: 인증이력 조회 및 추가를 수행한다.
- UseHistory: 웹 서버와 이더리움 네트워크 사이의 인증정보에 대한 통신을 수행한다.
- IdentifyInfo: 인증 데이터에 대한 해쉬 코드 조회 및 추가를 수행한다.
- IdentifyInformation: 웹 서버와 이더리움 네트워크 사이의 인증에 사용되는 데이터에 관한 통신을 수행한다.
- Pay: 유저의 잔액을 조회하고 결제하는 기능을 수행한다.
- Token: 웹 서버와 이더리움 네트워크 사이의 결제에 관한 통신을 수행한다.
- Admin: 관리자 뷰이다.
- User: 일반 사용자의 뷰이다.
- ApiCryto: 일반 사용자가 자신의 계좌 및 비밀키를 설정할 경우 암호화를 도와준다.
- 관리자는 인증에 쓰일 사람들의 정보를 저장한다.
- 중앙 서버에 저장한다.
- 개인 별 식별 코드, 이름을 저장한다.
- 수정 및 삭제가 가능하다.
- 해당 인증데이터에 대한 해쉬 값을 블록체인에 저장한다.
- 출입시 본인확인을 위한 얼굴 인증을 수행한다.
- 딥러닝 기반의 얼굴 인식 API를 구축한다.
- 인식 성공 시 고유한 식별코드값이 추출된다.
- 인식 성공 시 해당 데이터에 대한 검증을 실시한다.
- 인증에 사용된 데이터의 해시값과 블록체인에 저장된 해쉬값을 비교함으로써 위변조를 검증한다.
- 검증 성공 시 해당 데이터를 블록체인에 저장한다.
- 인증 이력(중요정보가 아닌 메타데이터)을 이더리움 기반의 블록체인에 저장한다.
- 따라서, 수정 및 삭제가 불가능하다.
- 개인은 자신의 인증이력을 조회할 수 있다.
- 회원가입 후 본인의 아이디를 통해 조회한다.
- 관리자는 모든 사람의 인증이력을 조회할 수 있다.
- 주어진 관리자 키를 사용하여 관리자 인증을 수행한다.
- 사내, 학교 내에서 이더리움 기반의 토큰을 발급해 커뮤니티 화폐로 사용한다.
- 약속된 단체 내에 식당, 카페와 같은 곳에서 결제 시 사용할 수 있다.
- 결제내역은 메타마스크 및 이더스캔에서 확인가능하다.