28
묶음 강좌명 : 블록체인 14. 솔리디티로 스마트계약 작성 14-2. 스마트계약과 가상화폐 블록체인응용과 실습

블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

묶음 강좌명 : 블록체인

14. 솔리디티로 스마트계약 작성14-2. 스마트계약과 가상화폐

블록체인응용과 실습

Page 2: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

1. 블록체인 플랫폼에서 스마트계약 작성

방법

2. 솔리디티에서 문자열 병합 방법

스마트계약을 위한 솔리디티 문법의

특징을 설명할 수 있다.

Page 3: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

1. 스마트계약과가상화폐(1)

Page 4: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

거래소를 통해 직접 만든 로직으로 가상화폐를 트레이딩

트레이딩 로직을 만들기 위해 가상화폐 거래 정보 저장/가공/분석

• 데이터 저장소와 저장된 데이터를 가공/분석하기 위한 도구가필요함

시스템에서 발생한 이벤트를 스마트폰으로 전달

가상화폐연계시스템개발

출처 박재현, 암호화폐자동거래시스템, 위키북스

Page 5: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

출처 박재현, 암호화폐자동거래시스템, 위키북스

가상화폐연계시스템개발

메신저

트레이딩 로직 모듈

메신저 모듈 거래소 모듈

주피터 DB 모듈

파이썬 저장소

리눅스

거래소

Page 6: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

REST API

코빗, 코인원, 빗썸 거래소 API를 이용하여 거래하기 위하여RESTful 방식 지원

사용자정보 조회, 생성, 업데이트, 삭제하는 API 를 가정함

HTTP 메소드인 GET, PUT, POST, DELETE 로 접근함

• 전체 사용자 API(https://api.example.com/users/)

• 개별 사용자 API (https://api.example.com/id)

URL을 정의함

Page 7: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

REST API

URL GET PUT POST DELETE

https://api.example.com/users/

사용자리스트 정의하지 않음새로운 사용자를

생성함모든 사용자 삭제

https://api.example.com/users/id

Id에 해당하는사용자 정보

Id에 해당하는사용자 정보

업데이트정의하지 않음 개별 사용자 삭제

Page 8: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

REST API의특징

Stateless

• 서버에 클라이언트의 컨텍스트를 저장하지 않음

Cacheability

• 클라이언트가 응답을 캐싱할 수 있어야 함

Page 9: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

REST API의특징

Layered System

• REST는 클라이언트-서버 아키텍쳐이면서 계층형시스템인 관계로, 클라이언트가 연결하는 곳이 대상서버인지 로드 밸런스나 캐시 기능을 제공하는서버인지 구분하지 못하며 시스템 확장성을 향상함

Self-descriptiveness

• 각 메시지는 자신을 어떻게 처리할 것인지에 대한 정보를제공하여야 함

Page 10: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

KORBIT 회원가입및 API 사용

이메일주소로회원가입

본인인증 : google OTP 또는전화인증

출처 박재현, 암호화폐자동거래시스템, 위키북스, http://www.korbit.co.kr

Page 11: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

API Key 발급

API key 발급을위해서는 Key와 Secret key가필요함

Key는 API 호출시 client_id에기재함(USER ID)

Secret Key는 API 호출시 client_secret에기재함(Password)

[KORBIT]Client_id = haKNsFc47uea…Client_secret = qdJ4hxhmKj…username = [email protected] = xW1t@3G2

Page 12: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

분류

코빗 API 소개

• 인증(Authentication)

• 회원거래소(Exchange: User)

• 공개거래소(Exchange : Public)

• 지갑(Wallet)

Page 13: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

사용자 인증 API

코빗 API 소개

API 종류 API 역할

인증 : id/PW 직접전달

액세스 토클을 발급받는 API

Access Token 갱신

만료 전인 액세스 토큰을 재발급 받기 위한 API

사용자 정보가져오기

개인정보 조회를 위한 API, email., 본인인증완료시각, 사용자 이름, 휴대전화 번호, 생년월일, 성별, 입출금 알림 받기 여부, 체결내역 알림 받기 여부, 사용자 등급

Page 14: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

현재 거래소의 거래와 관련된 정보를 조회할 수 있는 API

공개거래소 API

액세스 토큰이 필요하지 않음

Page 15: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

공개거래소 API

API 종류 API 역할

시장 현황 상세정보

최종 체결시각, 가격, 매수주문 중 가장 높은가격, 매도주문 중 가장 낮은 가격, 최근24시간 동안 체결가격 중 가장 낮은 가격, 최근24시간 동안 체결가격 중 가장 높은 가격, 거래량 등

매수/매도 호가 암호화폐의 매수, 매도, 예약정보

체결내역암호화폐의 분, 시, 일 단위별 체결 가격과 체결수량 정보

각종 제약조건암호화폐별 최소, 최대 주문 가능 정보, 출금수수료 등 코빗에서 제한하고 있는 상수 값에대한 정보 (잘 사용하지 않음)

Page 16: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

회원거래소 API

Require()

API 종류 API 역할

매도주문 매도주문을 할 수 있는 API

주문취소 매수/매도주문을 취소할 수 있는 API

미 체결 주문내역 매수/매도주문 중 체결되지 않은 주문을 조회

거래소 주문 조회 주문 id별로 주문의 상태를 조회할 수 있음

입출금 내역 조회입출금 내역을 조회할 수 있는 APIKRW, BTC, ETH, ETC, XRP 지원

거래량과 거래수수료

30일간의 거래량(KRW)과 거래량별로적용되는 수수료 정책을 조회할 수 있음

Page 17: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

지갑 API

지갑 잔액 조회 API 사용, 다른 거래소에 개설되어 있는 자신의비트코인 계좌로 비트코인 전송 가능

API 종류 API 역할

지갑정보 조회 모든 화폐의 지갑정보를 조회할 수 있는 API

비트코인 주소할당

거래소 내에 비트코인 지갑 주소를 할당 받을수 있는 API, 비트코인만 지원

비트코인 출금 비트코인을 다른 지갑으로 송금하는 API

비트코인 입출금건별 상태 조회

비트코인 임금 내역과 출금 요청 개별 건에대해 현재 상태를 조회할 수 있는 API

비트코인 출금요청 취소

진행 중인 출금 요청을 취소하는 API

Page 18: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

액세스토큰받기 REST API

REST API 서버 접속을 위해서 액세스 토큰을 발급받음

Curl –D –X post –d “client_id=$client_id&client_secret=$client_secret&username=$email&password=$password&grant_type=password” https://api.korbit.co.kr/v1/oauth2/access_token{

“token_type”:”Bearer”,“access_token”:”1t1LgTslDrGznxPxhYz7RldsNVIxxxx”,“expires_in”:3600,“refresh_token”:”vn5xo0f4PzckgnqjQSL9Sb3KxWJxxxx”}

Page 19: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

2. 스마트계약과가상화폐(2)

Page 20: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

액세스토큰받기/OAuth

액세스 토큰 받기

• POSTMAN으로 접속

OAuth

• 인증을 위한 Open Standard Protocol

• Oauth가 사용되기 전 ID와 PW를 사용함

• Oauth는 3rd party를 위한 범용 인증표준

Page 21: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

액세스토큰받기/OAuth

Page 22: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

외부 사이트와 인증기반의 데이터를 연동할 때 ID, Password를 넘기는 방법은 매우 위험하고, 보안에 취약함

ID, Password는 그사용자의 모든 권한을 얻는 것이므로 도용위험이 높음

Oauth는사용자 임시 인증을 위한 Token을 제공하는 방식임

• 각 서비스마다 그 방법이 제각각인 관계로 개발자들은 인증연동을 각 서비스 별로 따로 구현하던 상황임

OAuth

표준 인증방법이 필요하고, Oauth이 등장함

Page 23: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

OAuth

등록년도

• 2007년 OAuth1.0 발표함

• 2010년 IETF standard로 Oauth 1.0a을 등록함

• 2012년 Oauth 2.0이 IETF standard 로 등록함

OAuth

• OAuth token is like that valet key. You get to tell the consumers what they can use and what they can’t use from each service provider.

• You can give each consumer a different valet key.

Page 24: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

OAuth

출처 https://www.varonis.com/blog/what-is-oauth/

Page 25: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

Client 가 Resource Owner에게Authorization Request01

Client는 Authorization Grant 를받음02

Access token 요청03

Authorization server는Authorization Grant의유효성검증후Access Token 발급

04

Oauth 인증절차

Page 26: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

Oauth 인증절차

Page 27: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

Oauth 1.0과 2.0 차이점

Access Token 갱신

• OAuth1.0에서 Access Token을 받으면 Access Token을계속 사용 가능

일례로 트위터의 경우 Access Token을 만료시키지 않음

OAuth 2.0에서는 보안강화를 위해 Access Token의 Life-time을지정할 수 있음

출처 https://www.varonis.com/blog/what-is-oauth/

Page 28: 블록체인응용과실습 · 2019. 8. 21. · Access Token 갱신 만료전인액세스토큰을재발급받기위한API 사용자정보 가져오기 개인정보조회를위한API,

Oauth 1.0과 2.0 차이점

출처 https://www.varonis.com/blog/what-is-oauth/

API 종류 API 역할

시장 현황 상세정보

최종 체결시각, 가격, 매수주문 중 가장 높은가격, 매도주문 중 가장 낮은 가격, 최근 24시간동안 체결가격 중 가장 낮은 가격, 최근 24시간동안 체결가격 중 가장 높은 가격, 거래량 등

매수/매도 호가 암호화폐의 매수, 매도, 예약정보

체결내역암호화폐의 분, 시, 일 단위별 체결 가격과 체결수량 정보

각종 제약조건암호화폐별 최소, 최대 주문 가능 정보, 출금수수료 등 코빗에서 제한하고 있는 상수 값에대한 정보 (잘 사용하지 않음)