-
SmartContract 개발에 유의해야할 점 (1/2)IT 지식 2019. 4. 25. 13:58
오늘은 그 동안 블록체인 SmartContract를 개발하며 느낀 점들을 정리해보려고 한다.
블록체인은 잘 알지 못하지만 개발면에서 우수한 개발자분들이 미리 작성해주신 Contract Code를 볼 때
그리고, 블록체인 서비스 관련 자문을 드릴 때 기존 기획자분들도 블록체인 환경에 대해서 이해가 없어 기획이 잘 못되는 모습을 자주 볼 수 있다.
블록체인은 만능이 아니지만, 블록체인을 활용해야한다면 어떤 부분을 고민하면 좋을지.
이 글이 조금이라도 도움이 되었으면 좋겠다.
1. SmartContract 무엇이 다른가
(1-1) [장점] 서버 대체 가능
- 기존 서비스는 규모에 관계 없이 공지 사항이라도 만들기 위해서는 서버 구축이 필요했다. 기존 사내 서버가 존재 했다면 번거로운 작업은 줄어들지만 그것이 아니라면 [1]서버 스펙 작성 [2]서버 구매 [3]서버 환경 구축 등 많은 비용과 시간이 소모된다. 물론 이와 같은 단점들을 해결하기 위한 제품들이 많이 나와있다. (firebase와 같은 서비스)
- 이전 안드로이드 아이폰 개발에는 서버가 필요하지 않았다. 세월이 흘러 계정 연동등 기능은 필수가 되버리면서 서버를 구축할 수 밖에 없게 되버렸다. 하지만 정말 나의 서비스가 '공지사항' 그 외 사소한 데이터 때문에 서버를 구축해야한다면, 블록체인에 기록하는 방법도 염두해볼 필요가 있다. (현재 이더리움에서 약 2,500자를 기록하는데 500원도 들지 않는다.)
아래 이야기는 매일 듣는 "블록체인은 말이야~" 이니. 생략하도록 하자.
(1-2) [장점] 보안 강화(1-3) [장점] Token Economy 적용 가능(1-4) [장점] 투명성(1-5) [장점] 영원성사실 기존 서비스에 SmartContract를 적용한다고 해서 장점으로 작용될 만한 것은 없다. (아! 물론, 블록체인의 특징을 잘 살리거나, 토큰을 사용하기 위함이라면 문제 없다.) 위에서 이야기한 '서버 대체 가능'의 장점도 Firebase와 같은 서비스를 이용하는 것이 더 효율적이고 비용절감을 할 수 있다. 물론, 정말 가끔 '공지사항'의 예처럼 "기존 시스템 보다 블록체인을 활용해서 더 좋아졌어요!!" 라는 예시가 나올 수 있겠지만.. 대부분은 '억지'라고 생각한다.
나는 SmartContract로 무엇을 만드려고 하는 것 일까?
차기 인스타그램을 만들고 싶은 류기혁은 류스타그램을 만들기로 했다. 해당 서비스는 유저들에게 블록체인의 '영원성'을 강조하며 당신의 추억을 평생 간직하라고 말한다.
현재 블록체인에 사진 데이터를 직접 올리는 것은 비효율적이다. IPFS를 사용하면 조금 나아질 것이지만 확실한 것은 기존 인스타그램보다 속도면에서 심하게 뒤떨어질 것이다. 그럼 속도 문제를 해결하기 위해서는 어떻게 해야할까?
'어떤 데이터를 블록체인에 기록할 것인가?'를 생각해보아야 한다.
속도 / 수수료 문제를 고민해 보면 블록체인 '서버'로 활용하기 보다는 '검증용'으로 활용해야한다. 하나의 포스팅을 해시함수로 해시화하여 해시값만 블록체인에 저장하는 방법이다. 그렇게 되면 블록체인에는 '글 + 사진'이 저장되는 것이 아닌, 64자리의 16진수 32bytes만 기록 될 것이다.
우와~! 해결 됬다. 이렇게 한다면 블록체인을 활용할 수 있잖아! 라고 외치며
[XX신문] 'XX업체 블록체인을 활용한 XXX을 만들어..!' 라고 기사를 낼 수 있지만.. 우린 다시 한번 생각해볼 필요가 있다.
류스타그램 : "기존 SNS는 특정 서버에 여러분의 추억을 기록합니다!! 그 추억은 삭제 될 위험이 있으며, SNS만 해당 데이터를 가지고 있어 중앙화 되어 있습니다! 저희 DApp은 블록체인의 영원성을 활용하여 여러분의 추억을 블록체인에 반영구적으로 기록합니다!"
Hash는 원본 데이터가 있다면 진위 여부를 검증하는 용도로 활용할 수 있지만, Hash 값으로 원본 데이터를 복호화 해낼 수는 없다.
(기혁이의 Hash 글 참조 : 링크)
사람들의 일상을 기록하는 App에서 검증용 수단이 활용될 필요가 있을까? 물론, 무(無)보단 유(有)가 좋겠지만 개발 비용, 수수료 어느 한 곳에서도 블록체인을 써서 좋아진 부분은 없을 것이다.
우리는 블록체인 서비스 DApp을 만들기 위하여 SmartContract를 개발하게 된다.
블록체인 VS 기존 서버 시스템을 사용할까에 대한 고민은
Unity3D VS Unreal 과는 다른 문제이다.
추후에는 같은 고민이 되겠지만 현재에는 블록체인 성능이 많이 뒤쳐지기 때문이다.
성능이 비슷해지기 전까지 우리가 블록체인을 활용함으로서 얻을 수 있는 것이 무엇인지 명확하게 파악하고 구현 가능성을 따져보아야한다.
SmartContract 개발에 유의해야할 점 (2/2)
'IT 지식' 카테고리의 다른 글
React Styled-Components Font Reloading (1) 2020.05.04 SmartContract 개발에 유의해야할 점 (2/2) (2) 2019.05.10 기혁이의 HTTPS 검열 사태 이해해보기 - 1부 (0) 2019.02.14