코어 이더리움 프로그래밍 1 Day 과정  후기 



지난 21일 코어 이더리움 1Day 강의가 블로터 아카데미에서 진행이 되었습니다. 일반 개발자 분들을 대상으로 블록체인과 이더리움에 대한 이론과 이더리움 구축 , 스마트 컨트랙과 Dapp 작성을 1Day로 정리하면서 직접 실습을 하는 과정으로 준비를 하였습니다. 


40여분이  오전 9시 부터 저녁 6시 30분까지 한분도 중간에 빠지시는 분 없이  열정적으로 참여를 하셨습니다.  특히, 고등학생 부터 나이가 좀 지긋하신 분들까지 다양한 연령과 학교/연구소/대기업/블록체인 스타트업 등 다양한 조직에 속하신 분들이 참석하셔서 더욱 흥미로웠습니다. 






주요 강의 내용으로 블록체인과 이더리움 플랫폼에 대한 상세 이해를 바탕으로 직접 이더리움을 구축하고 컨트랙과 Dapp을 작성하고 마지막에 현재 이더리움의 문제점과 이에 대한 개선 사항들이 어떻게 진행되고 있고 향후 어떻게 발전할 것인가에 대한 내용이었습니다. 


워낙 많은 양의 내용을 1Day 에 준비하다 보니 시간이 부족해서 무척 아쉬웠습니다. 특히, 이더리움의 개발 환경이 아직 열악하다 보니 참석자 분들이 개발 및 운영 환경 셋팅에 다소 많은 시간을 사용하셨던 것 같습니다. 그래도 개발 및 운영 환경 셋팅을 직접 하려면 한 주 정도는 고생을 하셔야 하는 데 그 고비들을 잘 넘기신 것 같습니다. 


현재 Jpub에서 "코어 이더리움" 개발서 출판을 진행중입니다. 모든 강의 내용들은 해당 책의 내용을 체계적으로 정리하였습니다. 이론과 운영, 개발이 잘 정리되어 큰 도움이 되실 것 입니다. 



     


etheredu 슬랙방(ether-edu.slack.com)을  통해 지속적인 정보 교류를 할 계획이니 관심있는 분들은 함께 참여하셔도 좋을 듯 합니다. 




Posted by 박재현

블록체인 도입시 고려 사항

 

 

비트코인, 이더리움 같은 암호화폐의 기반이 되는 블록체인은 새로운 기술이다. 따라서 일부는 블록체인을 과장되게 설명하여 마치 모든 것을 해결할 수 있는 만능 플랫폼으로 이해하기도 하고 , 일부는 부정적인 시각을 갖고 있는 혼돈된 상태이다. 이러한 혼돈속에서 가장 많이 할 수 있는 질문 중  하나가 바로블록체인을 꼭 써야 하는 가?” , “다른 기술로도 가능하지 않은가?” 라는 것이다.

 

특히, 최근에 언론 기사를 보면 많은 정부 기관 등에서 블록체인 기반의 시스템 구축 계획을 발표하고 있고 이 경우 대부분이 블록체인을 중앙의 DBMS를 공유 원장으로 대체하려는 목적이 강하기 때문에 적용하는 과정에서 기대했던 것과 실제 다를 수 있기 때문이다.  블록체인 플랫폼이 만능 플랫폼이 될 수는 없다. 그러나 특정 상황에서 큰 효과를 가져다 줄 수 있는 혁신적인 플랫폼이 될 수 있다. 따라서 기술 수준을 잘 이해하고 적용하는 것이 필요하다. 현재 블록체인 플랫폼의 문제점들로 언급되는 것은 다음과 같다.

 

가장 큰 문제는 처리 성능과 용량(scalability)을 높여야 한다는 것이다. 현재 이더리움의 경우 초당 트랜잭션 처리 속도가 15~20 TPS(Transaction Per Second) 이고 가장 낮은 가스 비용을 기준으로 트랜잭션이 처리되는 데 평균 13분이 소요되고 있다.  페이팔이 193 TPS , 비자 네트워크가 1667 TPS 라는 것을 감안해 볼 때 현재  처리 용량으로는 일반 전자상거래나 빠른 처리 속도를 요하는 시스템 개발에 적용하기 어려운 실정이다. 이 문제를 해결하기 위해서는 현재 작업 증명 방식의 동의 방식을 지분에 의한 증명 방식으로 전환하는 등의 개선이 필요하고 블록 생성 시간을 줄이고 트랜잭션을 처리 능력을 개선해야 한다. 현재 이 문제 해결을 위해 PoS 방식의 합의 방식인 캐스퍼 , 블록내 트랜잭션의 병렬 처리를 가능하게 하는 샤딩 , 거래 당사자간의 직거래를 가능하게 하는 라이덴 네트워크 등 여러 프로젝트를 진행중에 있으나 문제 해결에는 다소 시간이 걸릴 것이다.

 

그리고 현재 스마트 컨트랙은 복잡한 내용을 처리에는 여러 어려움이 있다. 가령, 일단 배포된 바이트코드는 업데이트를 할 수 없고 EVM 에서 지원하는 반복 호출 횟수(Call Depth) 크기가 1024 불과하고 컨트랙에 입력되는 데이터의 신뢰성 확보 , 보안 문제 , 부족한 개발 환경 등 실제 개발에 있어 많은 어려움이 있다. 아마 과거 자바 언어의 초기 상태라 이해하면 될 것이다. 

 

다음은 현재 수준의 블록체인 도입시 필요한 검토 사항들을 정리해 보았다. 

 

[ 블록체인 도입시 검토사항들 ]

 

(1) 데이터가 시간순으로 정렬되고 감사(audit)가 필요하고 필요한가?

만약 필요하다면 , 블록체인 기술을 사용하는 것이 적합하다. 기존의 관계형 DBMS같은 시스템상에서 모든 데이터의 위.변조를 막고 투명한 관리 기능을 구현하고 운영하는 데에는  막대한 개발 및 운용 비용이 발생한다. 따라서 본질적으로 모든 데이터를 시간순으로 기록하고 이를 구성원들과 공유를 하여 위변조를 막는 블록체인을 사용하는 것이 유리하다.

 

(2) 중앙에서 데이터에 대한  관리가 필요한가?

중앙에서 사용자 인증과 권한 제어 등 강력한 관리가 필요하다면 블록체인 보다는 기존 시스템을 사용하는 것이 유리하다. 비록 , 하이퍼레저 페브릭같은 설치형 블록체인 플랫폼이 기존 블록체인에 사용자 인증과 권한 제어 기능을 제공한다지만 현재 수준에서는 기존 시스템을 사용하는 것이 더 경제적이고 안정적이다.

 

(3) 트랜잭션의 처리 속도가 중요한가?

초당 수 천 이상의 트랜잭션 처리를 필요로 할 경우 현재 수준의 블록체인 기술로는 지원하지 못한다. 따라서 이런 경우 블록체인보다는 기존 방식의 시스템을 사용하는 것이 현명하다. 가령, 전자 상거래의 상품 주문이나 결제 같은 서비스는 초당 많은 트랜잭션의 실시간 처리를 필요로 한다. 이런 경우에는 블록체인 보다 기존 시스템을 사용하는 것이 적합하다.

 

(4) 암호 화폐나 운영 토큰 등이 필요한가?

이더같은 암호 화폐와 가스같은 운영 토큰은 해당 플랫폼이나 서비스의 운영과 성장에 기여한 대가로  관련된 구성원들에게 지급되고 플랫폼의 이용 대가를 지불하는 데 사용되는 중요한 수단이다. 특히, 해당 플랫폼의 성장에 따라 그 가치 또한 증가하고 비트코인 같은 다른 암호 화폐나 실물 화폐와 교환이 가능하기 때문에 더욱 중요하다. 만약, 이러한 암호 화폐와 운영 토큰을 기반으로 한 인센티브와 운영 방안이 필요하다면 블록체인 특히 , 이더리움 플랫폼을 사용하는 것이 좋다.

 

(5) 안정적으로 기술지원을 받을 수 있는가?

현재 블록체인과 이더리움 기술은 상대적으로 개발자와 전문가가 부족한 상태다. 따라서 이를 활용한 서비스 개발을 위해서는 블록체인과 이더리움 등에 능통한 전문가를 확보해야 적용 과정에서 시행착오를 줄일 수 있다. 따라서 안정적으로 기술 지원을 받을 수 있는 전문 회사나 전문가를 사전에 확보해야 한다. 만약 확보가 안된다면 적용을 보류하는 것이 바람직하다.

 

(6) POC 등의 예비 도입 단계를 통해 기대했던 것을 확인했는가?

블록체인 특히, 이더리움 플랫폼 사용이 적합하고 전문가가 준비되었다면 본격적인 적용에 앞서 POC(Proof of Concept)나 프로토타이핑을 하여 기술 타당성을 검증해야 한다. 해당 작업을 통해 타당성을 검증한 후에 실제 본격 적용을 하는 것이 성공 가능성을 높일 수 있다.

 

블록체인 플랫폼이 만능은 아니다. 그러나 분명 기존의 시스템을 블록체인 기반으로 전환하거나 신규 개발할 때 얻을 수 있는 많은 것들이 있다. 물론, 현재 블록체인 플랫폼 기반의 많은 서비스들이 개발되고 있으나 아직 명확한 성공을 거둔 서비스가 없는 것 또한 사실이다. 따라서 블록체인 기술 적용시 보다 신중한 접근과 고민이 필요하다.


Posted by 박재현

암호화폐 사기 ICO 판별해보자. 


본 글을 ZDnet에 기고된 글 입니다. 



암호화폐 선판매(ICO, Initial Coin Offerings) 암호화폐 기반 프로젝트와 회사들이 초기 사업 자금을 확보하기 위해 미리 암호화폐를 발행하고 이를 투자자들에게 선판매하여 자금을 확보하는 방법을 말한다. ICO 대한 보다 자세한 내용은암호화폐 선판매 ICO 필요한 이유컬럼을 참고하기 바란다.


이더리움 플랫폼처럼 ICO 통해 성공적으로 혁신적인 플랫폼을 개발해 나갈 있다. 코인 스케줄. 의하면 실제 2017 올해만 해도 203 ICO에서 32 5 6 7십만$ 가량이 모금되었다( $3,256,704,359 ).



그러나 성공적이고 건실한 ICO 많지만 사기 ICO 통해 많은 피해자를 양산하고 사회 문제가 되는 것도 현실이다. 실제 디클라우드(DECLOUDS) 사기 ICO 통해 300 비트코인 이상을 모집하였다. 


심지어 디클라우드는 ICO 과정에서 투자자들에게 에스크로를 통해 안전하게 투자 자금을 집행할 것이라고 속였다. DECLOUDS 멀티시그(Multisig) 사용한 에스크로우를 지원했으나 실제 지급을 담당한 에스크로의 서명 키를 직원 중의 한명이 갖고 있어 비트코인을 빼돌릴 있었다. 참고로 멀티시그(multisig, Multisignature) 트랜잭션 처리시 2 또는 이상의 프라이빗 서명을 받아서 처리하는 보안 기술이다. 


또한 각종 자료에 나오는 사진 또한 위조를 하였다. 아래 사진은 얼마나 손쉽게 사진 같은 자료를 조작할 있는 보여준다. 아래 그림 상단의 이미지는 하단의 원본이미지를 디클라우드에서 조작한 것이다. 

출처 : https://www.cryptocompare.com/coins/guides/how-to-avoid-scam-icos/


ICO 성공여부, 어떻게 검증할 것인가?


그렇다면 많은 ICO 어떤 것이 사기ICO인지 어떻게 구별할 있을까? 다음은 사기 ICO 구별하는 도움이 만한 가이드이다.


(1) ICO 목표 검증을 하자.  


ICO 에서 해결하려고 하는 문제가 정확히 무엇인지? 그리고 해당 목표가 현실적인지 살펴본다. 사기 ICO 경우 목표가 구체적이지 않고 아무리 설명을 읽어 봐도 이해가 되지 않는다. 특히, 최근에 유행하는 모든 기술 용어를 동원하여 포장된 내용이라면 의심해 보는 것이 좋다. 다음은 대표적인 사기 ICO 디클라우드에서 사용한 설명이다 - 분산화된 블록체인 노드들을 블록체인 클라우드에 통합하는 아이디어를 기반으로 작동되는 비중앙화된 클라우드 기반 암호화폐 플랫폼이 디클라우드이다. 조금만 블록체인에 대한 지식이 있다면 무슨 말인지 이해가 되지 않고 이게 뭐지? 라고 의문이 들어야 정상이다. 


“DECLOUDS is a decentralized cloud‐based crypto‐platform for issuing, exchanging and trading assets and custom tokens on a blockchain using smart contracts backed by main precious metals. The platform operation is based on the idea of uniting decentralised blockchain nodes into blockchain clouds, which ………”


(2) 블록체인을 반드시 써야 하는 점검하자.


해당 문제 해결과 목표 달성을 위해 반드시 블록체인 기술을 사용하는 맞는지 확인해 본다. 가령, 다음은 이에 대한 점검항목이다.


-데이터가 시간순으로 정렬될 필요가 있고 데이터에 대한 감사가 필요한가?

-중앙에서 데이터를 관리할 필요가 없고 자율 관리가 필요한 것인가?

-트랜잭션의 처리 속도 빠른 성능이 필요한 것은 아닌가?

-암호화폐나 운영 토큰이 반드시 필요한가?

-블록체인외에 다른 대안 기술이 없는가? 


(3) 실현 가능성 따져보자.


실제 목표와 블록체인을 사용하여 개발하는 것에 수긍이 간다면 다음으로는 실제 실현할 가능성이 있는지에 대한 점검이 필요하다. 다음은 이에 대한 점검 항목들이다. 


-기술백서는 상세하고 구체적인가? 기술 백서는 최대한 구체적이고  명확하며 구현 계획이 상세해야 한다. 그렇지 않고 블록체인 기술을 장황하게 설명하고 실제 본인들이 어떻게 실현할 것인가에 대한 설명이 부족하다면 실현가능성이 낮다.


-가장 중요한 항목으로  해당 프로젝트를 팀원들이 수행할 충분한 기술과 경험이 있는 ? , 해당 팀원들이 인터넷상의 암호 화폐 관련 커뮤니티 등에서 관련 기술이나 비즈니스 등에 대해 활발히 활동을 하고 있는지? 실제 오랜 기간 동안 암호화폐 분야에서 활동을 하고 있는지? 외부 발표한 문서 등은 없는지 등에 대해 꼼꼼히 살펴본다.  


-암호화폐나 운영 토큰의 운영 방법이 구체적인가? 발행된 암호화폐나 운영 토큰의 목적이 명확히 무엇이고 조달된 자금과 남은 암호화폐나 운영 토큰을 어떻게 운영할 것인지에 대한 구체적인 계획이 있어야 한다. 


-POC 프로토타이핑된 시스템이 있고 Github 공개된 소스코드 저장소에 지속적으로 개발된 코드가 업데이트가 되고 있는 살펴본다.  만약 POC등이 없고 지속적으로 자체 개발한 소스코드가 업데이트 되지 않거나 기밀 사항이라 공개할 없다라고 하면 십중팔구는 문제가 있는 ICO이다. 


-커뮤니티는 활성화되어 있는가? 보통 활성화된 프로젝트는 깃허브(Github), 페이스북, 슬랙 다양한 커뮤니티를 운영하며 공개적으로 활동을 한다. 따라서 커뮤니티를 적극 운영하고 있는지도 점검해 본다. 


(4)기타 점검사항

해당 프로젝트 관련 사기(scam) 건이 발생하는 수시로 인터넷 검색을 통해 확인을 한다. 또한 icorating.com 처럼 ICO 과제를 평가하는 전문 사이트 등을 통한 점검도 필요하다.


사기 ICO 때문에 ICO 긍정적이 면보다 부정적인 면이 부각되는 현실이 안타깝다. 그러나 ICO 관리 위한 제도도 필요하나,  ICO 참여하는 투자가들이 해당 ICO 정확히 파악하고 가치를 판단하는 것이 더욱 중요하다.


Posted by 박재현


이더리움 연구회 정기 발표회 자료 


11월 10일 이더리움 연구회 정기 발표회가 있었습니다. 200 분이 넘는 개발자분들과 함께 이더리움 플랫폼에 대한 이론과 실습이 진행되었습니다. 시간이 부족하다 보니 준비된 내용을 전달하고 실습을 하는 데 다소 부족했던 것 같습니다. 2018년 3월 계획되어 있는 봄 정기 발표회에는 좀 더 다양하고 내실있는 내용이 되도록 노력하겠습니다. 아래 발표회 자료를 공유합니다.


다시 한번 , 끝까지 자리 함께 해주신 많은 개발자분들께 감사드립니다.  


이더리움 연구회 드림


정기 발표회 프로그램






예제 소스 파일 다운로드 - https://github.com/etherstudy/smartcontract





Posted by 박재현