스크립토가 루니버스와 함께 두가지 프로젝트를 진행합니다!
안녕하세요Skkrypto입니다.
이번학기는 테조스에 이어 루니버스와 산학 협력 프로그램을 진행하게 됐습니다!!
저희는 신입기수와 기존기수가 각각 하나의 프로젝트를 진행할 것 입니다.
1. 신입기수는 Luniverse User Guide와 API document를 처음 블록체인을 사용하는 입장에서 공 부해나가는 과정을 실습하고, 후기를 작성하며
2. 기존기수는 Skkvote라는 투표 인센티브 시스템을 기획하고 개발하는 과정을 작성할 예정입니다.
이번글에서는 루니버스를 시작할때 어떤 과정이 필요한지 설명하도록 하겠습니다.
루니버스는 람다 256이 개발한 블록체인 서비스로 DApp을 쉽게 개발하고 운영하는데 필요한 환경을 제공하기 위해 만들어진 플랫폼입니다.
루니버스는 DApp 개발자들이 블록체인 플랫폼을 선정하고 블록체인 개발 환경을 구축하고 개발하는 과정에서 겪는 어려움을 대폭 줄이고, 본업인 서비스의 개발,운영에 집중할 수 있는 차세대 BaaS(Blockchain as a Service)입니다. 기존 BaaS 의 경우 이더리움이나 하이퍼레저 , 쿼럼 같은 오픈소스 블록체인을 클라우드 인프라 상에서 쉽게 설치 , 운영하는 관리형 블록체인 서비스를 지향하는 반면 , 루니버스는 자체 개발한 고성능 블록체인 외에도 편리하고 안전한 개발 Tool, 블록체인 인프라 운영 환경과 그리고 사용자들이 보다 편리하게 블록체인 서비스를 사용할 수 있도록 지원해주는 다양한 Wallet 등 DApp 개발에 필요한 모든 환경을 제공하고 있습니다.
즉 루니버스는 타 블록체인과 다르게 서비스 운영자가 보다 쉽게 블록체인 서비스를 운영할 수 있는 환경을 제공한다는 차별점이 있습니다. 실제로 가입 후 Console 창을 보면 웹상으로 구현되어 있어서 문과생에서 공포의 존재인 Terminal에서 명령어를 통해 제어하거나 별도의 Front page를 만들 필요가 없습니다. 단순히 회원가입만 하면 됩니다!!
2019 UDC의 슬로건은 Proof of Service입니다. 왜 우리는 오늘날 서비스의 증명이 필요한걸까요?
2017년 비트코인 열풍 이후에 블록체인이란 무엇인가? 라는 질문은 끊임없이 나오고 있습니다. 또한 다양한 블록체인 프로잭트들이 비트코인, 이더리움등이 가진 한계점을 보완하기위해 블록체인 플랫폼 측면에서 다양한 시도들을 해왔습니다. 비탈릭 부테린이 이야기했던 Blockchain Thrillema의 문제를 해결하기위해서 다양한 플랫폼들이 나타났습니다.
3마리 토끼를 다 잡을 수 없다면 어떤 토끼를 잡을건지에 대한 부분은 본인의 신념 혹은 블록체인에 대한 관점의 차이로 다를것 입니다.
하지만 일반인 즉 서비스 사용자 입장에서 플랫폼이라는것이 서비스 선택에 있어서 중요한 판단 기준일까요? 여러분은 앱스토어에 있는 어플리케이션을 다운 받을때 apple이 제공하는 appstore가 어떤 모습인지 판단하고 어플리케이션을 구매하시나요?
블록체인 DApp들은 지금까지 낮은 Transaction speed, 어려운 UX와 같은 장애물 때문에 Mass adoption에 실패한것으로 미루어 보았을때 오늘날 사용자들은 서비스를 이용할때 해당 서비스가 얼마나 본인에게 편리하고, 만족스러운 가치를 안겨 줄 수 있는지가 중요하다고 생각합니다.
서비스 제공자 즉 비즈니스의 입장에서도 동일합니다. 블록체인 서비스를 기획할때 어떤 플랫폼을 선택하느냐는 결국 사용자가 얼마나 편리하게 해당 서비스를 제공할 수 있는지가 최우선적으로 고민 되어야 합니다. 또한 블록체인 서비스를 개발하기 위해서는 블록체인을 능숙하게 다룰 수 있는 개발자가 필요하고 전체적으로 블록체인 자체에 상당히 많은 시간을 소비하게 됩니다.
그렇기 때문에 서비스 제공자와 사용자에게 편리함을 안겨주는 BaaS는 blockchain mass adoption을 위해 꼭 필요합니다. 우리는 완벽한 블록체인 플랫폼보다는 성공적인 블록체인 서비스를 원합니다.
블록체인은 프로토콜의 비중이 크지만 시장이 Application case를 원하면 그에 맞게 변화해야합니다.
이제 블록체인 시장이 성숙해졌다는 평가를 받고있는 만큼 대중적인 서비스로서 증명해야하는 시기이며 사용이 편리하고 서비스제공을 편리하게 만들어 줄 수 있는 BaaS는 앞으로 블록체인 비즈니스를 생각하고 있는 사람들에게 좋은 선택지가 될것이라고 생각합니다.
Luniverse는 이러한 Proof of Service를 실현하기위해 플랫폼적으로 필요한 서비스를 제공합니다.
(1) 쾌적하고 안전한 독자적인 고성능 사이드체인 - 2000 TPS, 1초 블록타임 등
(2) 편리한 토큰 발행 및 관리 도구 - 토큰 발행 및 토큰 이코노미 디자인 및 운영 등
(3) API기반의 친숙하고 편리한 개발 환경 - Atom, Remix 등
(4) 빠르고 정확한 스마트 컨트랙트 보안 감리 솔루션 - 실시간 컨트랙트 보안 진단 등
(5)DApp의 편의성 강화를 위한 사용자 관리 서비스 - 원격 개인키 서명, 다양한 지갑 연동, 개인키 백업&복구 등
회원가입과 지갑생성을 통해 EOA(external owner account)를 생성합니다.
회원가입은 필요한정보를 담은 후 이메일 인증을 통해 진행하는것이기 때문에 생략하고
지갑 생성부터 살펴보겠습니다(이미 가입을 해서 User guide의 사진을 첨부하겠습니다)
3단계로 나눠져있습니다.
- Passphrase: Private key를 암호화하기 위해 사용됩니다.
- Keystore file: 암호화된 Private key 파일입니다. 트랜잭션을 서명할때 필요합니다
- Private key: 개인키 입니다
1) 루니버스 Console Login
2) Passphrase 입력
암호화된 개인키(Private Key) 는 키스토어(Keystore) 파일로 다운로드 받을 수 있습니다.
패스프레이즈(Passphrase)는 변경할 수 없으며 패스프레이즈(Passphrase) 를 분실한 경우에는 키스토어(Keystore) 파일이 있더라도 트랜젝션 사인이 불가합니다.
따라서 상당히 중요하기 때문에 손바닥에 적어서 보관해주세요
3) Back up & Vault
Passphrase를 통해 암호화된 PK를 키스토어 파일에 담아서 저장합니다.
또한 Lunverse는 Vault라는 키스토어 파일 분실을 대비해 안전하게 저장해주는 서비스를 제공하고있습니다.(이부분은 추후 자세히 설명할 예정입니다.)
4) Private key
개인키를 복사하거나 인쇄해 안전하게 보관합니다.
EOA의 개인키(Private Key)가 유실될 경우 를 습득한 타인이 DApp의 트랜잭션에 서명할 수 있는 등 많은 위험이 존재합니다.
루니버스는 회원의 패스프레이즈(Passphrase), 키 스토어 파일(Keystore File), 개인키(Private Key)를 최초 생성 후 별도로 보관하거나 백업하지 않기 때문에 각별한 주의가 필요합니다.
즉 이런 흐름으로 루니버스는 Private key를 보호합니다. 키스토어 파일을 통해 트랜잭션을 서명합니다.
하지만 이 키스토어 파일에 적힌 암호를 풀기위해서는 두가지가 필요합니다. 바로 Private key와 Passphrase죠
이때 두가지 상황을 가정해보겠습니다.
1) PK를 알고 Passphrase를 모르는경우
2) Passphrase를 알고 PK를 모르는 경우
어느경우가 더 위험할까요?
물론 두 경우 다 일어나면 안되지만, 1번의 경우가 더 위험하다고 할 수 있습니다. PK의 경우 복잡한 알고리즘을 통해서 생성되며 길이가 매우 깁니다. 따라서 유추하기 더 어렵습니다. 단뱡향 Hashing을 통해 키스토어 파일을 생성하기 떄문에 키스토어파일에 있는 암호화된 정보로 Passphrase, PK를 유추할 수 없기 때문에 안심하고 사용하셔도 됩니다 !!
저희는 일단 skkrpyto1@gmail.com라는 대표계정으로 EOA를 생성했습니다. 그리고 이제 Skkrypto라는 회사 조직을 만들어야겠죠? 조직에서 권한과 책임의 설정은 매우 중요한 이슈입니다.(라고 조직행동에서 이야기합니다.) 저희는 Skkrypto 라는 이름의 조직을 생성했습니다,
이에 맞춰 루니버스는 맴버를 구성할때
- Organizationmanagement
- Billing management
- Billing Viewer
- Create chain
이렇게 4가지 권한을 부여할 수 있습니다.
따라서 조직구성원의 권한을 고려해서 부여해주셔야합니다.
저희는 두개의 프로잭트 그룹이 있고, 기존 기수 2명은 회장과 총무기 때문에 모든 권한을 부여했고, 신입기수 분들은 chain create 기능만 부여했습니다.
이제 조직 구성이 끝났으니 실습을 위한 체인을 구축해보겠습니다. 저희는 두개의 프로잭트를 진행할 1개의 side chain을 생성했습니다.
이것부터 과금이 시작되니 꼭 각자 서비스의 규모를 고려해 Plan을 선택하시기 바랍니다.
저희는 Dev plan을 선택했습니다!
Skkvote의 Side chain을 생성하는 과정을 통해 어떤식으로 진행되는지 보여드리겠습니다.
Chain 이름과 간단한 설명을 기입한 후 가장 중요한 side chain validator을 설정해야합니다. 3개의 validator를 설정할 수 있는데
- 루니버스
- Organization owner
- 사용자 지정 1명
이렇게 3명의 플레이어가 validator로 참여합니다. 저희는 개발자분을 Validator로 임명했습니다.
생성 완료 후 manage chain으로 이동합니다
이제 validator의 권한을 설정해야합니다. 기본적으로 chain owner는 모든 권한을 가지고 있으며
Validator로 참여하는 Woong님의 권한은 제가 마음대로 설정할 수 있습니다.
권한은 5가지입니다.
- Chain management: 체인정보, 구성원초대 등의 기능을 수행합니다
- Contract review: 요청된 스마트컨트랙을 볼 수 있는 권한입니다. 즉 개발자가 일을 잘했는지 확인할 수 있다는 말입니다.
- Contract deploy: 요청된 스마트컨트랙에 문제가 없다면 블록체인 네트워크에 Deploy 할 수 있는 권한입니다. 즉 잘못된 컨트랙은 블록체인에 올리지 못하게 예방하는 권한이죠
- DApp create: DApp을 생성하고 관리 할 수 있는 권한
- ST(side chain token) create: side token을 만들고 관리할 수 있는 권한입니다.
지금까지 PM의 입장에서 블록체인 서비스를 시작할때 어떤식으로 조직을 구성하고, 블록체인 서비스 런칭을 위한 기본적인 절차들을 알아봤습니다.
다음주부터 매주 목요일 혹은 금요일에 각자 팀이 Luniverse를 실습하는 과정과 느끼는 생생한 후기들을 전달 드리도록 하겠습니다.
USER guide & API documents에도 충분한 설명이 있지만 실제 사용하는 예시와 설명을 통해서 어려움을 겪고 있는 분들에게 도움이 될 수 있는 글을 쓸 수 있도록 노력하겠습니다.
감사합니다.
"위 게시물은 람다256의 루니버스 Dev plan울 무료로 제공받아 작성하였습니다."
작성자: 김현명(hyunmyung137@gmail.com)