자바로 구현하는 내멋대로 블록체인 #1

    어제 불현듯, 이런 생각이 들었습니다. "내가 왜 Dapp만 공부하고 있지? 그냥 블록체인을 만들어 볼까?"

    사실, 블록체인의 개념은 프로토타입으로 만들기엔 어려운 내용은 아니라고 생각했습니다. 그리고, 자바로 충분히 구현할 수 있다고 생각이 들어서 한번 무모하게 도전을 해보려고 합니다.


    이 프로젝트가 중간에 엎어질 지, 아니면 성공할 지 모르겠으나 개인적인 생각으로는 99%는 현재 내 지식과 프로그래밍 실력으로 구현 가능하다 보고 있고, 블록체인에 대해서 설명할 때 프로그램으로 설명하는 것만큼 좋은 것이 없다고 생각이 들기 때문에, 한번 토큰 개발이 아닌 코인 개발에도 도전을 할 생각입니다.




    일단 진행사항은 포스팅과 유튜브 모두 올릴 생각이긴 하나, 선 유튜브 정리되면 포스팅을 하려고 합니다. 포스팅을 하고 유튜브를 올리는 것보다 유튜브를 올리고, 해당 내용을 포스팅으로 정리하는게 시간적으로 좀 더 절약되는 느낌이 강해서, 혹시나 관심 있으신 분들은 제 유튜브 채널을 구독하시면 감사하겠습니다 :)


    유튜브 채널은 맨하단 유튜브 영상으로 들어가셔서, 구독을 하시면 될 것 같습니다.


    코인 정식명칭 : STEEL-J(스틸자바), 코인단위 STLJ(스틸제이)


    제가 만들어볼 코인은 STEEL(강철)-J(자바)라는 코인으로, 코인 단위는 STLJ라는 단위를 제 멋대로 쓸 겁니다. 채굴 노드는 회사에서만 돌릴 예정이고, 회사 직원들 컴퓨터에 강제로 띄우게 만든 후 같이 채굴을 할 것입니다.



    수량 : 총 10,000,000 STLJ (재단보유 6,846,400)

    채굴 알고리즘 : PoW

    채굴 : 1년 채굴양, 3,153,600이며 채굴이 끝나면 PoS로 전환

    가격 : 8640 STLJ당 100원 인정, 누가 저만큼 채굴해서 저한테 보내주면 제가 100원 드림


    비트코인은 사라지면 0원이 될 수 있지만, STLJ는 8640개를 저한테 보내주시면 제가 무조건 해당 직원에게 100원을 줄 것이라서, 꽁으로 돈 벌기 참 좋아요.



    계획, STEEL-J v 0.1


    제가 일단 일정을 잡은것은 8월 10일까지 노드 처리(싱크 확인 등), 그리고 다음주까지는 계좌 생성 및 블록 구조를 설계, 8월 24일까지는 PoW 기반의 채굴 알고리즘 구현 및 해시파워를 체크하는 API 개발, 채굴에 따른 난이도 자동 조절 알고리즘까지 입니다.


    일단 8월 24일까지는 노드를 구동하면, 본인의 계좌를 생성하여 채굴을 하는 것까지 만들어 질 것입니다. 노드의 연결된 컴퓨터의 총 해시파워 기반으로 난이도를 자동 조절 할 계획입니다.



    채굴이 완료되면, 이제 계좌에서 다른 계좌로 전송하는 것을 만들어 볼 생각입니다. 아직 이 부분에 대한 생각이 많아서 어떻게 구현해야 할지, 좀 더 연구를 해봐야 될 것 같습니다.


    이체가 완료되면, 이중 지불을 방지하기 위해서 타임스탬프를 적용하고, 장부를 체크할 것입니다. 그래서 51프로의 선의의 노드(즉, 다수결)를 구현하여, 이중 지불을 테스트 해보았을 때 정상적으로 잘못된 지불을 취소 시키는지 볼 예정입니다.


    마지막 주는 스트레스 테스트를 수행하여, 장부가 어느정도 찼을 경우 느려지는지 그리고 트랜잭션이 어느정도 동시에 들어올 경우, 임계치가 어디까지인지 테스트를 해 볼 생각입니다.



    왜 하는가?


    순전히 100% 지적 호기심으로 만드는 것으로서, Dapp만 만드는 것에서 흥미가 좀 떨어지고 있기 때문입니다. 그렇다고, 이더리움 Dapp강의를 안한다는 것이 아니라, Dapp도 계속 진행하며 이더리움 Dapp 강의가 모두 완료되면, 다른 플랫폼 코인들을 연구하여 진행해보도록 하겠습니다.



    유튜브 영상



    유튜브로 먼저 진행이 되기 때문에, 해당 프로젝트에 관심이 있으신 분들은 유튜브 채널 구독해주시면 감사하겠습니다 :)

    댓글

    Designed by JB FACTORY