develop custom_top_html:no
default debug random = 1 / type = READ / detected = READ
개발
2018-02-12 21:49:29

이더리움과 스마트 컨트랙(1)

안녕하세요. 파이리입니다. 이더리움과 스마트 컨트랙이라는 주제로 글을 써보려고 합니다. 어디까지 쓰게 될지는 모르겠지만, 나중에 묶어서 책이 되었으면 하는 작은 소망이 있네요.
 
이더리움에 대해서는 땡글에 계신 분들에게 굳이 설명을 드리지 않아도 될 것 같습니다. 이더리움을 모르시는 분은 없겠죠. 하지만 저도 그랬던 것처럼 채굴하는 입장에서 굳이 스마트 컨트랙이 뭐고, 어떻게 개발해야 하는지에 대해서는 크게 관심이 없을 수밖에 없죠. 이 글은 채굴하시는 분들에게는 지적 호기심을 충족하는 수단이 될 것이고, 개발에 도전해보려고 하시는 분들에게는 먼저 출발한 사람이 놓고간 표지판 정도로 생각하시면 될 것 같습니다.
 
스마트 컨트랙은 쉽게 생각해서 계약을 코드로 옮겨둔 것입니다. 특정한 조건이 충족되면 계약을 이행하게 해둔 것이죠. 하지만 계약을 코드로 옮기려는 행위는 이전에도 존재해왔습니다. 인터넷 뱅킹이나 공인인증서 같은 것들이 바로 그것이죠. 다들 아시겠지만 블록체인을 이용한 스마트 컨트랙과 이전의 형태의 계약의 근본적인 차이는 분산 원장에 있습니다. 이전의 계약들은 단일 혹은 소수의 DB에 데이터가 저장되기 때문에 한번의 공격으로 무너질 수 있지만, 분산 원장을 해킹하기는 대단히 어렵죠. 증명이나 데이터의 정합성이 중요한 영역에서 블록체인이 떠오르는 이유도 바로 그것입니다.
 
이더리움 네트워크에 스마트 컨트랙을 제출하기 위해서는 solidity라는 언어로 만들어진 스마트 컨트랙을 만들어야 합니다. solidity는 javascript와 C언어를 섞어놓은 것처럼 보이는 묘한 형태인데, 컴파일한 결과를 바이트 코드로 옮겨서 사용하는 것을 보면 java와 비슷한 점도 있습니다. 이 solidity는 대중적인 언어가 아니기 때문에 처음 접하는 개발자들에게는 낯설게 느껴질 수 있습니다. syntax 자체를 익히는데도 약간의 시간이 필요하고, 이더리움 네트워크와 연결지어서 생각해야 하기 때문에 사전지식이 없는 사람에게는 이게 대체 어떻게 돌아가는지 이해하기 어려울 수 있습니다. 저도 물론 그랬고요.
 
개발자들을 가장 괴롭히는 것들 중에 하나는 개발 환경을 구축하는 것입니다. 더구나 뭐부터 구축해야 하는지 모르겠다면 상황은 더 심각해지죠. 아래는 이더리움 네트워크와 통신하고 solidity 언어 환경 구축을 하기 위해서 필요한 것들입니다.
 
 
web3 : 이더리움 자바스크립트 API입니다. 이더리움 네트워크와 통신하기 위해서 사용됩니다.
web3j : 이더리움 자바 API입니다. 
solc : solidity 컴파일러입니다.
 
 
 
그리고
Image.png

 

 
 
truffle : solidity의 빌드부터 테스트, 스마트 컨트랙 등록까지를 도와주는 framework입니다. nodejs 기반으로 사용하실 수 있습니다.
 
사용하실 수 있는 syntax의 폭이 넓지 않거나 이미 javascript에 익숙하신 분이라면 web3와 truffle을 사용하시는 것을 권장합니다. 빌드와 테스트까지 종합적으로 지원하는 framework가 별로 없기도 하고, javascript 하나로 개발 / 테스트 / 사용 환경을 구성할 수 있기 떄문이죠. 다만 이더리움 네트워크와 통신이 실패했을 때와 같은 예외처리가 많이 까다로운 부분이긴 합니다. 이더리움 네트워크 자체가 ICO가 몰린다거나 하면 낮은 gas로는 처리가 안되는 경우가 생기고, web3는 아직도 고쳐지지 않은 자잘한 버그들이 많으니까요.
 
다음에는 이어서 환경 구축에 대해서 보다 자세히 써볼까 합니다.
 
환경구축을 위한 주소
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

-------------------------------------

꼬리말

* 게시글 내용 삭제레벨 강등

* 질문은 각 주제별 게시판에.

 

비트코인 암호화화폐 커뮤니티 땡글~ 땡글~

-------------------------------------

222

파이리님의 서명

Blockchainnovation

ERC20 토큰 개발, 암호화폐 지갑 개발, 스마트 컨트랙 개발

댓글 11
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
920 개발 빗썸 ticker api에서 현재값 또 에러 나네요 빗썸 ticker api 현재값 또 에러 나네요 오늘 오전 오후 계속 말썽 이네요   시스템 매매 하시눈 분들 조심 하세요 3 0 714
둔산
2018.02.13
919 개발 개발자를 위한 세대별 블록체인 소개 1세대 블록체인 비트코인 2세대 블록체인 이더리움 - 계속 변화하고 있지만, 한계가 있긴하네요. 3세대 블록체인(Hashgraph) 4세대 블록체인(Openhash)   아래 주소를 누르고 오른쪽 리스트를 쭉... 4 0 2940
nicola
2018.02.13
918 개발 스마트컨트랙트 공부중인데 node.js 공부할 필요가 있나요?     node, npm이런 부분들이 나오는데 처음 접해보는 것입니다. 따로 node강좌를 간단하게 듣는것을 추천하나요? npm쪽에서 좀 막히기는 하는데, node강좌를 들으면 도움이 될까요 https://opent... 6 1 1242
호야핑
2018.02.13
917 개발 7시쯤부터 빗썸 ticker 이상하네요;;; 지금 보니 빗썸 ticker api에서 계속 같은값만 오고 있는데요. 다들 그러신가요??? 빗썸 진짜 답이 없네요;;;;;                   ------------------------------------- 꼬리말 * 게시글 내용... 7 0 901
superplain
2018.02.13
916 개발 solidity-browser 에서 계약 실행 후 로그 부분 질문드려요     안녕하세요, 코린이입니다. 이더리움 개발 공부를 하면서 궁금한 점이 있어 글을 적습니다..   위 사진은 계약을 실행 하고 난 뒤 로그(Details) 부분이에요..   여기서 궁금한 점은 아래와 ... file 0 520
바보쿠우
2018.02.13
915 개발 이더리움과 이더제로 소스코드 비교 이더리움 소스코드와 이더제로 소스코드를 간단히 비교해보았습니다.   https://steemit.com/kr/@hackyminer/difference-between-ethereum-and-etherzero-souce-code   요약하자면,   - 리브렌딩... 6 9 3705
ethminer
2018.02.13
914 개발 개발완료된 코인이 있습니다.   현재 코인 개발은 완료 되었으며 채굴중에 있습니다.   ico 나 거래소 상장도 가능하지만 우선적으로는 저희가 개발한 코인을 활용한 2차   서비스 제공을 목적으로 서버 구축중에 있습니다.  ... 1 0 1771
cryptomonkey
2018.02.13
913 개발 코인개발부터 상용화까지 팀꾸려봅니다. 안녕하세요 코인개발자 및 보안관련개발자 , 거래소구축개발자등등 코인관련해서 팀을 꾸려보고싶습니다. 코인개발관련 전문지식 없습니다 저는 단지 거래가능한 코인과 거래소만 있으면 거래 활... 3 0 1636
땁두가
2018.02.12
개발 이더리움과 스마트 컨트랙(1) 안녕하세요. 파이리입니다. 이더리움과 스마트 컨트랙이라는 주제로 글을 써보려고 합니다. 어디까지 쓰게 될지는 모르겠지만, 나중에 묶어서 책이 되었으면 하는 작은 소망이 있네요.   이더리... 11 file 12 5629
파이리
2018.02.12
911 개발 HD wallet 을 사용하는 거래소 지갑?   안녕하세요,  뒤늦게(?) 비트코인을 공부하고 있는 1인입니다.   bitcoin core를 PC에 설치해 보니, 지갑이 자동생성되고 상태바에 HD enable 됐다고 표시되더라구요. testnet에서 새로운 지갑... 3 0 2138
샤브라니
2018.02.12
910 개발 상승장에서만 투자하는 봇     아래쪽에 이런 캡쳐를 올렸더랬습니다.       크로스에서 사고 팔게 로봇을 구현했더니... 저 사각형 왼쪽위에서 사서, 오른쪽 아래에서 팔더군요. ㅜㅜ     그래서 몇번의 수정을 (손실을 ... 17 file 2 2701
jaypark
2018.02.12
909 개발 바이낸스 api 질문이요^^ 빗썸같은 경우에는 서로 다른 계정으로 api키를 발급받고 한 컴퓨터에서 봇을 각각 실행하면 12초 딜레이가 걸리는데   혹시 바이낸스 아시는 분있나요? 보통 1분에 1200회, 1초에 10개 오더로 ... 3 0 2175
시니가미
2018.02.12
908 개발 이더리움 강의가 유튜브에 있었네요   땡글에서 '민빠' 라는 닉네임으로 활동하시는 분께서    강의를 진행하셨네요. 쌍둥아빠님 유튜브 계정에 올려져 있습니다.   https://www.youtube.com/watch?v=ddZ4wBfHGIo     이정도 깊이로... 4 5 2270
트라트
2018.02.12
907 개발 파이썬 봇 중간에 멈춰버림 해결어떻게 하나요... 파이썬3을 사용하여 폴로닉스 트레이딩봇을 제작중입니다 별건아니고 while True:문으로 시세를 감시하다가 상황봐서 분할매수 분할 매도를 하는 프로그램인데요 cmd창에서 실행도중 그냥 멈춰버... 9 0 1194
squid
2018.02.11
906 개발 누구나 따라할 수 있는 ETN 마이닝 풀 구축 가이드 입니다. 일렉트로니움 마이닝풀 운영을 위한 설치 가이드 입니다.   ETN 마이닝 풀 서버 설치를 해보려고 했는데 node 버전 문제로 여러번의 실패로 우분투를 재설치하면서 여러번의 삽질을 하여 성공하... 61 60 11998
번트마이너
2018.02.11
905 개발 빗썸 분봉 캔들값 관련 문의입니다. 안녕하셔요.. 오늘도 질문 드려봅니다^^   bithumb 거래소 거래 체결 완료 내역 API를 가져와서 DB에 쌓아놓고 1분씩 잘라서 1분봉 캔들의 값을 구해보고 있는데요..   트레이딩뷰나 빗썸메인의 ... 7 file 0 1762
비만타쿠미
2018.02.11
904 개발 빗썸 api로 ZEC 출금시 되다 말다 하네요 빗썸 api로 ZEC 출금시 되다 말다 하네요 현재 5번 중 3번은 자동으로 취소처리 되네요 다른 코인은 잘 됩니다. 사용 해보신분 있나요?                       --------------------------------... 0 828
둔산
2018.02.11
903 개발 바이낸스 전용 오토 매매 를 제작중입니다 .     국내 거래소랑 여기저기 보고 있는대 .. 바이낸스가 API는 체계적으로 잘 제공해 주네요 ...   국내보다 더 잘 되어 있어서 살짝 ? 놀랐네요   3월초면 베타 테스트 해볼수 있을거같네요 시... 8 3 1763
바이낸스
2018.02.11
902 개발 [질문]AMD GPU 상태 조회 command line tool 안녕하세요   채굴기 모니터링 프로그램을 개발중입니다. NVIDIA의 경우에는 nvidia-smi 라는 command line tool이 제공되는 데요, AMD는 검색해 보아도 시원한게 답변을 찾을 수 가 없네요 혹시... 0 632
inireland
2018.02.10
901 개발 erc20 토큰 질문드려요..   안녕하세요. 코린이입니다.    이더리움 개발 입문 책을 보며 궁금한점이 생겨서 질문드려요. 답변 해주시면 감사하겠습니다.   거래내역이  있어야 블럭을 만들기위한 작업증명(채굴)을 하는... 6 0 1540
바보쿠우
2018.02.10
Board Pagination Prev 1 ... 42 43 44 45 46 47 48 49 50 51 ... 92 Next
/ 92
default debug random = 0 / type = READ / detected = READ