지난 토요일 나의 첫 세미나를 다녀왔다.


앞서 말했다 싶이, 현재 회사에서 하는 업무와 블록체인은 1도 상관이 없고

앞으로 몇년간 블록체인과 관련된 사업은 하지 않을 것이지만,

내 앞으로의 일은 어떻게 될지 모르기에,, 또 개발자라면 관심을 가질만한

기술이지 않은가? 해서 세미나가 있는걸 알게되고 바로 신청하여 다녀오게 되었다.


다녀온 세미나 링크 : https://okky.kr/article/453991


*세미나의 취지


지금 꼭 배워두어야 할 블록체인 지식과 기술에 대해 개발자 관점에서 이야기하는 시간을 가지기 위해 열렸다고 한다.



1부 : 블록체인과 개발자


  • 블록체인?! : 블록체인에 대한 구조와 생태계에 대한 전반적인 이야기
: 블록체인이랑 블록형태로 연결되어 분산데이터베이스에 P2P 네트워크를 기반으로 데이터를 저장하는 기법

블록체인 생태계엔 사용자와 개발자, 인프라제공자가 있으며 그 중심에는
블록체인 기술(EX비트코인)이 있다.

  • 코인의 시대 : 블록체인에서 코인의 필요성과 현재의 코인 중심 블록체인 환경
: 수많은 비트코인이 탄생했고 탄생하고 있으며, 현재는 3세대 코인까지 포함하여 무수히 많은 코인이 있다.

그 중 2세대 코인(기술)인 이더리움의 특징은 기존 1세대 비트코인(기술) 같은 경우엔 데이터(노드)에 담기는 정보가 단순 거래 정보만 담을 수 있었으나,
이더리움은 거래정보 뿐만 아니라 그 노드안에 클래스 혹은 함수,메서드 등을 담을 수 있어 여러 종류의 데이터를 담을 수 있으니, 앞으로 발전 가능성이 더 크다고 판단된다.

코인과 토큰을 혼동하는 경우가 많으나 코인은 사용자가 비트코인 거래에 사용하는 실제 화폐단위이고 토큰은 개발자가 개발할 때 환경을 구성할 수 있는 부분이라, 화폐단위가 될 수 있지만 그게 아닌 단순 어플리케이션이 될 수도 있다.

  • 디앱(dApp)의 시대 : 새롭게 시작되는 블록체인 시대
: 블록체인 플랫폼기반으로 개발하는 어플리케이션을 일컫는다.
스마트 컨트랙트(전자계약)이 동반하여야 하고, 아직 이렇다고 할만한( 실제로 돈을 받고 수익구조를 낼 수 있는) 어플리케이션은 거의 없다고 한다.

  • 개발자가 준비해야 하는 것 : 어떤 블록체인을 활용할 것인가, 어떤 기술 요소들이 있는가
: 세대에 따라 혹은 플랫폼에 따라 어떤 환경이 기반이냐에 따라 어떤 부분을 개발하느냐에 따라 기반언어가 달라진다.
대표적으로는 R3기반에서는 kotlin과 Java
Hyperledger 기반에서는 Go와 파이썬
EEA 기반에서는 solidity가 있다.
해서 블록체인에 관심이 있는 개발자라면 집중분야(플랫폼)을 설정하여
그 분야에 맞는 언어를 공부하고 공부한걸 바탕으로 dApp을 만든다면
솔루션, 커뮤니티, 오픈소스 측면에서 가능성이 있는지 여부를 판단해야 한다.




2부 : 블록체인 인사이드

  • 신뢰란 무엇인가
: 하마님이 말씀하신 신뢰는 서로 필요한 가치를 교환(거래) 할 때의 기대와 믿음     
  • 신뢰비용이란 무엇인가
: 신뢰비용은 신뢰(믿음)으로 부터 생기는 비용 (기회비용과 비슷했다.)           비트코인에서 필요한 것은 신뢰가 아닌 암호학적 증명(cryptographic proof)        
  • 비잔틴 장군 문제
: 문제의 해결법을 이전 작업을 기반으로 이후 작업을 만드는 방법을 제시했다.        
  • 신뢰비용으로 노력(작업물)이 들어갔다.
: 최종 작업물이 이전 작업물의 노력 기반하에 만들어지기 때문에 속이기 어렵다.                                                                                                                  
  • 블록체인과 비트코인
: 블록체인 기법을 통해 
어떤 내용이 담겨지는가 : 단순거래(가치이동)
어떻게 만들어 지는가 : 막대한 리소스(노력) 투입
위 내용이면 비트코인 어떤내용과 어떻게가 바뀌면 다른것도 만들 수 있다.         
  • 비트코인에서 가치이동
: 철수는 50원이 있다. 영희 50원- > 철수.
일반적인 수학에선 영희 = -50원 , 철수 = 50+50 = 100원
비트코인에서는      영희 = -50원 , 철수 = 50 50
비트코인에선 가치를 나열해서 저장한다.( UTXO 풀에 저장 )                                     
  • 대칭키/공개키 암호화
:대칭키 (A가 B에게 메시지를 보낼 때)
나(A)의 메시지를 암호화 하기 위해선 나(A)의 대칭키를 사용하고 전달
나(A)의 메시지를 복호화 하기 위해선 나(A)의 대칭키를 사용한다.
문제점은 대칭키를 탈취당하면 보안이 취약해진다.

공개키 (A가 B에게 메시지를 보낼 때)
나(A)의 메시지를 암호화 하기 위해선 너(B)의 공개키를 사용하고 전달
나(A)의 메시지를 복호화 하기 위해선 너(B)의 개인키를 사용한다.
문제점은 누구나 나(A)라고 속이고 너(B)에게 메시지를 보낼 수 있다.

서명 (위의 문제점들이 있어 서명을 도입.)
나(A)의 메시지를 나(A)의 개인키로 서명
서명된 나(A)의 메시지를 너(B)의 공개키로 암호화 전달
너(B)의 개인키로 메시지를 복호화
나(A)의 공개키로 복호화된 메시지를 서명확인
문제점은 상대방의 공개키를 믿을 수 없다, 시간이 오래걸린다.

비트코인에서는 공개키 알고리즘으로 
ECDSA(Elliptic Curve Digital Signature Algorithm)를 사용한다.


  • 해시
: 입력값을 난수화시켜서 해시값을 출력해준다.
동일한 입력값일시 동일한 해시값을 출력해주는 것말고는
해시값을 입력값으로 복호화 하는 기술은 현재로선 무리다.

비트코인에서는 해시 알고리즘으로 SHA256을 사용한다.

  • 가쉽 네트워킹
: 분산 시스템중 하나이며, 소문이 퍼지는 모양새가 유기적으로 여러 사람과 동시에 연결됨을 본떠서 설명한 네트워킹 짜임새.
한 노드에 문제가 생겨도 다른 노드의 역할에는 지장을 주지 않기 위해서 고안됨

비트코인 네트워킹도 유기적으로 연결되어 있으며, 다음과 같은 특징을 갖는다.
1. 모든 노드는 동등한 지위(권한)을 갖는다.
2. 모든 노드는 거래와 블록을 검증하고 전파하는 기능을 갖는다(예외 있음)
3. 동등한 위치지만 역할은 달라질 수 있다.
4. 비트코인 네트워크는 지리적 영향을 받지 않는다.
5. 새롭게 참여하는 노드는 종자 노드로부터 접속정보를 가져온다.

2.번 항목의 노드는 풀노드 예외노드는 SPV(또는 라이트웨이트) 노드

  • 분산데이터베이스
: 데이터 집합체를 여러 물리적 위치에 저장하는 것,.
블록 데이터 따로, 메타 데이터 따로, UTXO 데이터 따로 저장한다.                  
  • 주소 만들기
: 원래주소에 개인키를 사용 ( 서명 )
서명된 주소에 공개키를 사용 ( 암호화 )
암호화된 주소에 해쉬 알고리즘(SHA256)를 사용 ( 해싱 )
해싱된 주소에 해쉬 알고리즘(RIPEMD160)을 사용 ( 한번 더 해싱 )
결과 : Public key hash (160bit) 완성 ( 암호화와 해싱처리가 된 주소 )

  • 머클트리
: 내(자기자신 노드)가 이 거래(A)에 포함되어 있는 거래인지 판단하기 위해
거래(A)의 모든 노드를 파악할 필요는 없다. (특정 몇몇 노드만 알면된다,)

  • 블룸필터
원소가 집합에 속하는지 여부를 검사하는데 사용되는 확률적 자료구조이다.

  • 스크립트
: 블록체인에서 '거래'란 기록물의 변경 ( UPDATE가 아닌 INSERT, DELETE )

새로운 거래가 생기면 (A가 B에게 100원을 주었다.)
1.A가 누군가에게 준다는 행동이 진짜인지 검증 (거래 구문 검증)
2.A가 B에게 100원을 주는게 진짜인지 검증
3.A가 100원을 가지고 있는지 검증 ( UTXO의 풀에 있는지 거래검증 )

  • 거래검증
: A가 100원을 가지고 있는지 검증하려면
UTXO풀에 A의 데이터들을 종합해서 100원이 넘으면 검증 완료

*UTXO는 가치의 합을 저장하는게아닌 가치의 나열을 저장하며
가치의 이동(거래)이 있으시엔 가지고 있는 가치 중 가장 큰 값부터
계산에 적용하는 알고리즘을 사용한다.
 
  • 거래확정
: 위 검증들을 절차적으로 검증한 후(스크립트를 통해) 이상이 없으면 그 거래는 블록형태로 기존에 있던 블록들 뒤에 연결된 뒤 다른 사용자들에게 전파된다.

  • 전체 조망
: 단순히 비트코인 만으로 현재 수익구조를 낼 수 있는 방법은 없고,
만약 비트코인의 가상화폐를 실제사회에서 사용하고 있는 화폐로 교환해주는 은행이 나타난다면 얘기가 달라질 수 있다.
제가 듣기로는 이더리움에서는 이더리움코인으로 밥을 주는 고양이를 키우는 앱을 개발하여 고양이와 고양이를 교배시 더 나은 유전자를 고양이가 나온다면 가치가 상승하는 개념이 있다고 들은적이 있다.


2부 발표자료 : https://okky.kr/article/457376

마치며

난해한 시간이였다,, 스스로 세미나에 참석하기전 블록체인과 비트코인에 관심이 생겨 조사한 개념들은 빙산의 일각이였다는걸 알았다. 블록체인 기술의 문외한에겐 꽤나 어렵고 생소한 개념이 많았으나 훌륭한 강연자님 덕분에 이해를 하는데 크나큰 도움이 되었다. 젤 크게 느낀건 세미나를 듣기전에도 생각했던 대로 분명 이 기술은
현재 상업적으로 돈을 벌만한 기술은 아니지만 분명 널리 쓰일날이 올꺼 같다는 생각에 확신을 얻었다. 앞으로 블록체인 기술을 공부하면서 어떤 플랫폼에서 어떤 언어를 기반으로 할지 정한 뒤 스크립트 소스를 통해 나만의 비트코인을 만드는 것부터 차근차근 실습할 예정이다. ( 예정은 자유니까,,,)

첫 경험이였고, 너무 좋았다 재밌었다.
후에 있을 2개의 세미나도 기대된다.




























블로그 이미지

춤과파티

,

아마 내가 첫번째로 참석하게 될 it세미나의 참가신청을 마쳤다.


일정 : 2018년 4월 14일 토요일 오후 2시


장소 : 개발자 공간, eBrain Space

  서울시 강남구 봉은사로 303 TGL 경복빌딩 502호


홈페이지 : https://okky.kr/article/453991


참가비 : 40000원



요즘 자주 활동하고 있는 okky : 개발자 커뮤니티에서 진행하는

"개발자, 블록체인과 마주하다" 세미나를 알게 되었다.

블록체인을 주제로 앞으로 개발자들이 블록체인을 어떻게 활용할 것인가

개발자가 준비해야 할 것은 무엇인가 에 대해서 구성되어 있는 세미나이다.


신입 개발자 입장에서는 하는거나 잘하지 신기술이라고 볼 수 있는 블록체인을

알아서 어따 쓰려고 그러냐 할 수 있지만, 요즘 비트코인(전자화폐)에 관심이 없는

사람을 찾기가 더 힘들 정도로 비트코인은 큰 화제에 올랐었고, 이에 나도 개인적인

호기심에 도대체 블록체인이 뭐고 비트코인이 뭘까? 찾아본적도 있었다.


해서 내가 현재 개발하고 있는 기술은 아니지만 it업계에서 앞으로 더 빈번하게

사용될 기술이라고 생각하고 있으며, 내가 담고있는 업종의 미래를 생각해서

공부하기엔 더 없이 좋은 세미나라고 생각이 들어 한치 망설임 없이 참가신청 하였다.



'세미나 > 세미나 등록' 카테고리의 다른 글

2018 SPRING CAPM at 쿠팡  (0) 2018.04.04
블로그 이미지

춤과파티

,

2018년 나의 커리어 쌓기 계획의 시발점이 된 세미나

2018스프링캠프 표를 구매하는데 성공해따



날짜 : 2018년 4월 21일 토요일 정오(12시)


행사장 : 쿠팡 본사 17층


홈페이지 : http://www.springcamp.io/2018/index.html


티켓은 현재 매진 ㅜ 

그치만 나는 티켓 구매가능 당일날 대기타서 티켓을 구했당

쿠팡이라는 it기업에 방문하는 것도 설레지만 개발자 선배님들의 세미나를 듣는것도 기대되고 무엇보다 끝나고 수제맥주와 피자(or치킨)을 먹는 저녁시간은 그야말로 나를위한 세미나가 아닌가 싶다. ㅎ



블로그 이미지

춤과파티

,