3 편 시나리오 기획하기
안녕하세요. 중간고사 기간에 작성하는 Skkvote 3편입니다.
지난번에 알아봤던 내용중 블록체인 투표를 하기위해서 조직의 익명성의 정도에 따른 신원인증과정이 중요하다는 생각을 했습니다.
그래서 총학생회 투표를 한다는 가정하에
투표시나리오를 만들고
화면을 구상하고
필요한 API를 생각해 시나리오를 작성하도록 하겠습니다.
1. 투표시나리오
총학생회 투표는 단과대 투표와 비교했을때 신원인증의 강도가 약합니다. 왜냐하면 단과대는 학교 학생인지와 해당 과가 맞는지 확인해야하지만 총학생회 투표는 학교 학생인지만 판단하면 되기 때문입니다. 그렇기 때문에 학교 학생인지를 인증하는 몇가지 방법이 있습니다.
학생증 사진인증: 에브리타임의 경우 학교이메일 인증과 학생증 인증 2 factor authentication을 진행합니다.
GLS 로그인: 성균관대학교 DB에 있는 학생정보를 확인하는방법입니다.
GLS로그인을 한다면 확실하게 인증을 할 수 있지만, 학교 데이터는 보안이 중요하기 때문에 외부기관에게 GLS로그인 API를 제공받는것은 어렵다고 판단했습니다. 또한 에브리타임같이 학생증인증까지 한다면 실제 비교하는 과정에서 인건비가 발생하고, 전자투표의 장점인 비용감소의 측면을 달성하지못한다고 생각했습니다. 따라서 g.skku.edu 계정은 1인1개이기 때문에 이메일 인증만을 통해서 신원인증을 하기로 생각했습니다.
이메일 인증을 마친 학우는 지갑을 생성합니다. 이때 PK를 직접 저장하지 않고 Vault service를 이용하게 하려합니다. Vault service를 통해 지갑을 안전하게 저장하게 하려합니다.
저장을 마친 후 투표를 하고 볼트에 저장된 키스토어 파일을 가지고 트랜잭션을 생성 한 다음 토큰을 받고 확인하는 것으로 시나리오를 마치고자 합니다.
2. 화면 구상하기
원래는 리액트 기반으로 만들어보고 싶었으나, 리액트는 SPA용도로는 적합하지만 페이지가 독립적인 경우는 어렵다는 이야기가 있어서, HTML, CSS, Javascript를 직접 사용해 만들어보겠습니다.
저의 스팩을 말씀드리자면
생활코딩 HTML, CSS, Javascript를 들었습니다.
개발자한테 빨리 해달라고 부탁을 잘합니다.
그래서 페이지를 총 4개를 만들생각입니다.
인증페이지 - g.skku.edu 형식의 이메일을 통해 인증메일을 발송하는 페이지
지갑생성페이지 - 지갑생성버튼을 누르면 화면에 지갑주소와 PK를 보여주고(Lunivers PKMS), Vault service 사용하기를 할 수 있는 페이지
투표페이지 - 두명의 후보자의 간단한 약력과 공약을 보고 투표를 진행합니다. PK를 입력할 필요가 없습니다.
마이페이지 - 코인잔고를 확인하고 결제하기가 가능한 페이지 입니다.
3. 필요 API
루니버스는 API document(https://apidocs.luniverse.io)에서 사용가능한 다양한 API를 제공하고있습니다.
지갑생성 페이지- 지갑생성 Wallet(REOA) API와 Vault API를 사용합니다.
투표페이지 - Transaction API를 사용합니다.
마이페이지- Token transaction을 정의하고 wallet API를 통해 잔고를 조회합니다.
다음 편에는 퍼블리싱한 화면을 보여드리도록 하겠습니다.
"위 게시물은 람다256의 루니버스 Dev plan을 무료로 제공받아 작성하였습니다.”
김현명(hyunmyung137@gmail.com)