[프로젝트 후기 3부작] 레시피 공유 및 블록체인 공부 - 3부 블록체인

개발개발·2021년 7월 16일
0

1부 로그인 및 회원가입
2부 레시피 쓰기
4부 후기

깃허브 프로젝트 : cook-king
3부에서는 블로첵인에 대해서 소개한다. 현재 계속해서 진행중에 있다. 지금까지 만든 내용과 방향에 대해서 작성하려고 한다.

👉 2차 마감 작업 내용 (진행 중......)
블록체인에 대한 개념을 이해하고 어떻게 구현했는지 파악하기 위해서 열심히 인터넷을 찾아보았다. 그 과정에서 암호화, 합의 알고리즘, 이더리움과 스마트컨트렉트, 엉클 블록, 분산원장 등 여러가지 개념에 대해서 공부했다. 코드를 구현하는 것도 문제이지만 개념 자체를 온전히 이해하는데 시간이 많이 걸렸다.
블록체인에 대해 이해한 바를 토대로 프라이빗 체인을 만들고 분산원장의 개념을 구현하려고 시도했다. 지금까지는 체인을 만들고 전송, 트랜잭션 조회까지 구현했다. 추후에 보상하는 방법을 정리해서 그에 맞춰 보상을 줄 수 있도록 구현할 예정이다. aha와 같이 열심히 활동하는 사용자들에게 보상으로 주어지고 보상으로 받은 코인을 활용할 수 있도록 하는 방법을 구상중이다.

  1. 지갑 생성하기

    zxing을 이용해서 QRcode 만들기
    비대칭 암호화를 통해 공개키와 개인키 만들기

  • 보안성이 좋고, rsa보다 키가 짧아서 블록체인에서 많이 쓰인다는 타원곡선전자서명 알고리즘을 사용했다.(ECDSA)
  • 실제로 쓰이는 블록체인지갑 주소들을 보면 훨씬 짧은데 공개키를 다른 암호화된 문장과 1:1로 매칭시켜서 간소화한게 아닐까 추측중이다.
  • 키를 간소화하게 보여줄 수 있도록 추후 진행 예정
  1. 전송하기
    상대방의 공개키를 이용해서 원하는 금액을 전송한다.
  • 트랜잭션 정보들을 rdbms에 저장하지 않고 자체 메모리에 저장했다.
  • static에 저장되어 있어서 있다. 이때 껐다가 키면 메모리가 사라지는데 @bean어노테이션의 'initMethod'와 'destroyMethod'를 활용했다. bean의 수명이 다할때 있는 정보들을 서버내에 txt파일로 만들어 저장하고 bean을 생성할때 내용들을 불러온다.
  • 분산원장을 목적으로 하므로 bean이 소멸할때 회원들의 메일로 txt파일을 보내고 서버에 저장한다.
  1. 트랜잭션 결과 조회하기
    원장에 적힌 내용을 모두가 볼 수 있도록 트랜잭션을 모두 공개한다.
  • 첫번째 트랜잭션은 genesis 트랜잭션으로 전체 발행량을 담고 있다.
  • 두번째 트랜잭션은 genesis에서 test계정에 10000 cook을 보낸 것이다.
  • 세번째 트랜잭션은 test 계정에서 a45hvn 계정으로 50 cook을 보냈다. 영상 녹화에서 실수가 생겨서 한번더 전송했다
  • 네번째 트랜잭션으로 33 cook을 보내면서 다시 녹화했다.

직접 만들고 전송까지 활용하면서 블록체인에 대해서 많이 공부가 되었다. 내가 아는것이 어느정도고 어느 부분을 어떻게 모르는지 분명하게 한것이 그동안 고통받았던 것들에 대한 보상이라고 생각한다.

4부 후기

profile
청포도루이보스민트티

0개의 댓글