Edit

Amazon Managed Blockchain

220.Blockchain 블로그 이더리움 ethereum aws qldb 티스토리

11/28일, AWS 에서 AWS Blockchain Template 에 이어 Amazon Managed Blockchain 서비스와 QLDB 를 소개하였다. 지금 시점에는 Preview 상태인데 이마저도 Sign Up 을 해야 하기는 하다.

일단 Preview Signup 을 하고나면 시간이 좀 지났더니 아래 처럼 메일이 온다

위 메일이 왔다고 해서 Preview Applicant 가 되었다는게 아니다. 기다려야 한다..
Apply 를 했지만 이틀 째 아직 회신이 오거나 하지 않는다 그냥 계속 기다려야 한다.

혹시나 사용 가능해지면 써보고 바로 다시 글을 올려보겠다

어디에 있나

AWS Console 에 들어가면 아래 처럼 Amazon Managed Blockchain 이 있는걸 볼 수 있다

마치 될 것 같은 느낌이지만 클릭하면 다시 Preview sign up 페이지로 넘어간다

현재 AMB Preview 가 지원되는 Region 은 US East (Virginia) 뿐이다
현 시점에 QLDB 메뉴는 어디에 있는지 발견하지 못하였다

Amazon Managed Blockchain

아직은 들어가보지도 못하고 자료도 거의 전무한 상태이므로, AWS 상의 서비스 소개 페이지를 참고하여 어떤것인가 정리해놓겠다

전체 구성

AMB 는 독립된 Member 별로 Peer Node 를 구성하게 하고, Ordering Service 와 Client 를 Fabric Network 으로 연결해주기 위한 VPC Endpoint Service 등은 공용할 수 있는 컴포넌트 형태로 제공하는 것으로 보인다.

아래 가격표를 보아도 알겠지만, Ordering Service 를 위한 별도의 Node 는 구매하지 않는다. 이부분은 AWS 에서 제공하는 것으로 보이며, 대신 Membership 금액을 시간당으로 받는 것으로 생각된다

Benefits (&Features)

Fully Managed

  • 여러 AWS 계정에 걸쳐 Blockchain Network 을 쉽게 생성
  • 멤버 그룹과 Account 의 Transaction 실행, 데이터 공유를 설정
  • Infra 와 S/W 설치 등이 필요 없다
  • 모니터링 기능 제공한다
  • 멤버 추가와 삭제를 위한 투표 기능 API를 제공한다

Fabric 과 Ethereum 중 선택

  • Privacy 와 Permission 중요한 곳에 Fabric 추천
  • Transparency 와 분산화 중요한 곳에 Ethereum 추천
  • Ethereum 은 Public / Private Network 지원할 것으로 보임

Scalable and Secure

  • Peer node 추가를 위한 API 를 제공
  • 원하는 H/W spec 을 조합
  • AWS KMS(Key Management System)를 통한 Key 관리로 안전

Easily analyze Blockchain Activity (향후 예정)

  • Blockchain network 활동을 QLDB 에 저장할 수 있음
  • 변경되거나 삭제될 수 없는 형태로 영구히 남게됨
  • 누가 Transaction 을 발생하였는지, Transaction Rate 이 어떻게 되는지 등 Query 가능

Reliability

  • Ordering service 에 QLDB 를 접목, Transaction 의 Full History 를 조회 가능하도록 함

가격

N. Virginia Region 에 대한 가격만 나와있는 상황으로, 아래와 같이 가격표가 나온다

Membership

  • Starter Edition : $0.30/h (337원/시간)
    • 네트워크 상 최대 5개 멤버
    • 멤버 당 최대 2개 Peer Node
    • bc.t3.small 또는 medium 타입 Peer Node 가능
    • 최대 1 TB 의 Peer node storage
    • Orderer 성능 제약(Standard 에 비해 떨어짐. 수치는 안나옴)
  • Standard Edition : $0.55/h (617원/시간)
    • 네트워크 상 최대 30개 멤버
    • 멤버 당 최대 10개 Peer Node
    • bc.t3, bc.m5, bc.c5 타입 Peer Node 가능
    • 최대 15 TB 의 Peer node storage

On Demand peer node pricing

  • 38 원 ~ 1,220 원 / 시간

Peer node storage
최소 10GB 부터 최대 15TB 까지 선택할 수 있음

  • $0.10 / 월 (112원/월)

Data Written
Fabric Network 에 Write 되는 모든 Transaction Payload 를 포함한 Data 총량

  • $0.10 / GB (112원/GB)

가격 예시

✸ Starter Edition 기준으로 아래와 같이 세팅 한다고 하자

2 개 Starter Member
각 멤버가 bc.t3.small 1개씩 운영
20GB Storage
시간당 9MB 의 Network 사용

위 Spec 이면 간단한 내부 PoC 정도가 가능한 사양이라고 봐야 하겠다. 음.. 사실 PoC 를 위한 개발 정도?

✸ Standard Edition 으로 가보자. 상용에서는 자신의 Org 에 대한 비용만 내는 경우가 많은것이므로 아래와 같이 구성했다고 가정한다

1 개 Standard Member
3 개 Peer Node (m5.2xlarge)
Node 당 1TB Storage
시간당 200MB Network 사용

위 Spec 이면 상용 서비스를 위한 구성 으로 알맞는다고 본다. Offchain 시스템을 위한 부분은 추가로 갖추어져야 한다.

이상이 AMB(Amazon Managed Blockchain) 의 소개 이다. 대략 어떤 서비스가 가능한지 감이 온다. 설치와 설정을 위한 노가다가 줄어들고, 모니터링 기능이 추가될 것이고, Key 저장을 안전하게 해주고, QLDB 를 활용하여 모든 Transaction 과 Activity 가 저장되니 의미있는 데이터를 QLDB 에서 뽑아쓸 수 있다 정도가 핵심일듯 싶다.

그리고 소개 페이지나 Guide 등에 보면 대부분 Fabric 중심으로 설명되어 있어서 사실 Ethereum 은 기존의 Blockchain Template 기능 정도를 재탕하여 해주지 않을까 생각이 든다

사용 가능한 상태가 되면 실제 사용해보고 (설마 돈내라는건 아니겠지..) 추가로 글을 써보도록 하겠다

%23%20Amazon%20Managed%20Blockchain%20%0A@%28220.Blockchain%29%5B%uBE14%uB85C%uADF8%2C%20%uC774%uB354%uB9AC%uC6C0%2C%20ethereum%2C%20aws%2C%20qldb%2C%20%uD2F0%uC2A4%uD1A0%uB9AC%5D%0A%0A11/28%uC77C%2C%20AWS%20%uC5D0%uC11C%20AWS%20Blockchain%20Template%20%uC5D0%20%uC774%uC5B4%20Amazon%20Managed%20Blockchain%20%uC11C%uBE44%uC2A4%uC640%20QLDB%20%uB97C%20%uC18C%uAC1C%uD558%uC600%uB2E4.%20%uC9C0%uAE08%20%uC2DC%uC810%uC5D0%uB294%20Preview%20%uC0C1%uD0DC%uC778%uB370%20%uC774%uB9C8%uC800%uB3C4%20Sign%20Up%20%uC744%20%uD574%uC57C%20%uD558%uAE30%uB294%20%uD558%uB2E4.%0A%0A%21%5BAlt%20text%5D%28./1543543140559.png%29%0A%21%5BAlt%20text%5D%28./1543542273179.png%29%0A%0A%uC77C%uB2E8%20Preview%20Signup%20%uC744%20%uD558%uACE0%uB098%uBA74%20%uC2DC%uAC04%uC774%20%uC880%20%uC9C0%uB0AC%uB354%uB2C8%20%uC544%uB798%20%uCC98%uB7FC%20%uBA54%uC77C%uC774%20%uC628%uB2E4%0A%0A%21%5BAlt%20text%5D%28./1543543183836.png%29%0A%0A%uC704%20%uBA54%uC77C%uC774%20%uC654%uB2E4%uACE0%20%uD574%uC11C%20Preview%20Applicant%20%uAC00%20%uB418%uC5C8%uB2E4%uB294%uAC8C%20%uC544%uB2C8%uB2E4.%20**%uAE30%uB2E4%uB824%uC57C%20%uD55C%uB2E4..**%0AApply%20%uB97C%20%uD588%uC9C0%uB9CC%20%uC774%uD2C0%20%uC9F8%20%uC544%uC9C1%20%uD68C%uC2E0%uC774%20%uC624%uAC70%uB098%20%uD558%uC9C0%20%uC54A%uB294%uB2E4%20%uADF8%uB0E5%20%uACC4%uC18D%20%uAE30%uB2E4%uB824%uC57C%20%uD55C%uB2E4.%0A%3E%20%uD639%uC2DC%uB098%20%uC0AC%uC6A9%20%uAC00%uB2A5%uD574%uC9C0%uBA74%20%uC368%uBCF4%uACE0%20%uBC14%uB85C%20%uB2E4%uC2DC%20%uAE00%uC744%20%uC62C%uB824%uBCF4%uACA0%uB2E4%0A%0A%23%23%20%uC5B4%uB514%uC5D0%20%uC788%uB098%0AAWS%20Console%20%uC5D0%20%uB4E4%uC5B4%uAC00%uBA74%20%uC544%uB798%20%uCC98%uB7FC%20Amazon%20Managed%20Blockchain%20%uC774%20%uC788%uB294%uAC78%20%uBCFC%20%uC218%20%uC788%uB2E4%0A%0A%21%5BAlt%20text%5D%28./1543543250433.png%29%0A%0A%uB9C8%uCE58%20%uB420%20%uAC83%20%uAC19%uC740%20%uB290%uB08C%uC774%uC9C0%uB9CC%20%uD074%uB9AD%uD558%uBA74%20%uB2E4%uC2DC%20Preview%20sign%20up%20%uD398%uC774%uC9C0%uB85C%20%uB118%uC5B4%uAC04%uB2E4%0A%0A%3E%20%uD604%uC7AC%20AMB%20Preview%20%uAC00%20%uC9C0%uC6D0%uB418%uB294%20Region%20%uC740%20**US%20East%20%28Virginia%29**%20%uBFD0%uC774%uB2E4%0A%3E%20%uD604%20%uC2DC%uC810%uC5D0%20QLDB%20%uBA54%uB274%uB294%20%uC5B4%uB514%uC5D0%20%uC788%uB294%uC9C0%20%uBC1C%uACAC%uD558%uC9C0%20%uBABB%uD558%uC600%uB2E4%0A%0A%23%23%20Amazon%20Managed%20Blockchain%0A%uC544%uC9C1%uC740%20%uB4E4%uC5B4%uAC00%uBCF4%uC9C0%uB3C4%20%uBABB%uD558%uACE0%20%uC790%uB8CC%uB3C4%20%uAC70%uC758%20%uC804%uBB34%uD55C%20%uC0C1%uD0DC%uC774%uBBC0%uB85C%2C%20%5BAWS%20%uC0C1%uC758%20%uC11C%uBE44%uC2A4%20%uC18C%uAC1C%20%uD398%uC774%uC9C0%5D%28https%3A//aws.amazon.com/ko/managed-blockchain/%29%uB97C%20%uCC38%uACE0%uD558%uC5EC%20%uC5B4%uB5A4%uAC83%uC778%uAC00%20%uC815%uB9AC%uD574%uB193%uACA0%uB2E4%0A%0A%23%23%23%20%uC804%uCCB4%20%uAD6C%uC131%0A%21%5BAlt%20text%5D%28./1543623032865.png%29%0A%0AAMB%20%uB294%20%uB3C5%uB9BD%uB41C%20Member%20%uBCC4%uB85C%20Peer%20Node%20%uB97C%20%uAD6C%uC131%uD558%uAC8C%20%uD558%uACE0%2C%20Ordering%20Service%20%uC640%20Client%20%uB97C%20Fabric%20Network%20%uC73C%uB85C%20%uC5F0%uACB0%uD574%uC8FC%uAE30%20%uC704%uD55C%20VPC%20Endpoint%20Service%20%uB4F1%uC740%20%uACF5%uC6A9%uD560%20%uC218%20%uC788%uB294%20%uCEF4%uD3EC%uB10C%uD2B8%20%uD615%uD0DC%uB85C%20%uC81C%uACF5%uD558%uB294%20%uAC83%uC73C%uB85C%20%uBCF4%uC778%uB2E4.%20%0A%0A%uC544%uB798%20%uAC00%uACA9%uD45C%uB97C%20%uBCF4%uC544%uB3C4%20%uC54C%uACA0%uC9C0%uB9CC%2C%20Ordering%20Service%20%uB97C%20%uC704%uD55C%20%uBCC4%uB3C4%uC758%20Node%20%uB294%20%uAD6C%uB9E4%uD558%uC9C0%20%uC54A%uB294%uB2E4.%20%uC774%uBD80%uBD84%uC740%20AWS%20%uC5D0%uC11C%20%uC81C%uACF5%uD558%uB294%20%uAC83%uC73C%uB85C%20%uBCF4%uC774%uBA70%2C%20%uB300%uC2E0%20Membership%20%uAE08%uC561%uC744%20%uC2DC%uAC04%uB2F9%uC73C%uB85C%20%uBC1B%uB294%20%uAC83%uC73C%uB85C%20%uC0DD%uAC01%uB41C%uB2E4%0A%0A%23%23%23%20Benefits%20%28%26Features%29%0A**Fully%20Managed**%0A-%20%uC5EC%uB7EC%20AWS%20%uACC4%uC815%uC5D0%20%uAC78%uCCD0%20Blockchain%20Network%20%uC744%20%uC27D%uAC8C%20%uC0DD%uC131%0A-%20%uBA64%uBC84%20%uADF8%uB8F9%uACFC%20Account%20%uC758%20Transaction%20%uC2E4%uD589%2C%20%uB370%uC774%uD130%20%uACF5%uC720%uB97C%20%uC124%uC815%0A-%20Infra%20%uC640%20S/W%20%uC124%uCE58%20%uB4F1%uC774%20%uD544%uC694%20%uC5C6%uB2E4%0A-%20%uBAA8%uB2C8%uD130%uB9C1%20%uAE30%uB2A5%20%uC81C%uACF5%uD55C%uB2E4%0A-%20%uBA64%uBC84%20%uCD94%uAC00%uC640%20%uC0AD%uC81C%uB97C%20%uC704%uD55C%20%uD22C%uD45C%20%uAE30%uB2A5%20API%uB97C%20%uC81C%uACF5%uD55C%uB2E4%0A%0A**Fabric%20%uACFC%20Ethereum%20%uC911%20%uC120%uD0DD**%0A-%20Privacy%20%uC640%20Permission%20%uC911%uC694%uD55C%20%uACF3%uC5D0%20Fabric%20%uCD94%uCC9C%0A-%20Transparency%20%uC640%20%uBD84%uC0B0%uD654%20%uC911%uC694%uD55C%20%uACF3%uC5D0%20Ethereum%20%uCD94%uCC9C%0A-%20Ethereum%20%uC740%20Public%20/%20Private%20Network%20%uC9C0%uC6D0%uD560%20%uAC83%uC73C%uB85C%20%uBCF4%uC784%0A%0A**Scalable%20and%20Secure**%0A-%20Peer%20node%20%uCD94%uAC00%uB97C%20%uC704%uD55C%20API%20%uB97C%20%uC81C%uACF5%0A-%20%uC6D0%uD558%uB294%20H/W%20spec%20%uC744%20%uC870%uD569%0A-%20AWS%20KMS%28Key%20Management%20System%29%uB97C%20%uD1B5%uD55C%20Key%20%uAD00%uB9AC%uB85C%20%uC548%uC804%0A%0A**Easily%20analyze%20Blockchain%20Activity**%20%28%uD5A5%uD6C4%20%uC608%uC815%29%0A-%20Blockchain%20network%20%uD65C%uB3D9%uC744%20QLDB%20%uC5D0%20%uC800%uC7A5%uD560%20%uC218%20%uC788%uC74C%0A-%20%uBCC0%uACBD%uB418%uAC70%uB098%20%uC0AD%uC81C%uB420%20%uC218%20%uC5C6%uB294%20%uD615%uD0DC%uB85C%20%uC601%uAD6C%uD788%20%uB0A8%uAC8C%uB428%0A-%20%uB204%uAC00%20Transaction%20%uC744%20%uBC1C%uC0DD%uD558%uC600%uB294%uC9C0%2C%20Transaction%20Rate%20%uC774%20%uC5B4%uB5BB%uAC8C%20%uB418%uB294%uC9C0%20%uB4F1%20Query%20%uAC00%uB2A5%0A%0A**Reliability**%0A-%20Ordering%20service%20%uC5D0%20QLDB%20%uB97C%20%uC811%uBAA9%2C%20Transaction%20%uC758%20Full%20History%20%uB97C%20%uC870%uD68C%20%uAC00%uB2A5%uD558%uB3C4%uB85D%20%uD568%0A%0A%23%23%23%20%uAC00%uACA9%0AN.%20Virginia%20Region%20%uC5D0%20%uB300%uD55C%20%uAC00%uACA9%uB9CC%20%uB098%uC640%uC788%uB294%20%uC0C1%uD669%uC73C%uB85C%2C%20%uC544%uB798%uC640%20%uAC19%uC774%20%5B%uAC00%uACA9%uD45C%5D%28https%3A//aws.amazon.com/ko/managed-blockchain/pricing/%29%uAC00%20%uB098%uC628%uB2E4%0A%0A**Membership**%0A-%20Starter%20Edition%20%3A%20%240.30/h%20%28337%uC6D0/%uC2DC%uAC04%29%0A%09-%20%uB124%uD2B8%uC6CC%uD06C%20%uC0C1%20%uCD5C%uB300%205%uAC1C%20%uBA64%uBC84%0A%09-%20%uBA64%uBC84%20%uB2F9%20%uCD5C%uB300%202%uAC1C%20Peer%20Node%0A%09-%20bc.t3.small%20%uB610%uB294%20medium%20%uD0C0%uC785%20Peer%20Node%20%uAC00%uB2A5%0A%09-%20%uCD5C%uB300%201%20TB%20%uC758%20Peer%20node%20storage%0A%09-%20Orderer%20%uC131%uB2A5%20%uC81C%uC57D%28Standard%20%uC5D0%20%uBE44%uD574%20%uB5A8%uC5B4%uC9D0.%20%uC218%uCE58%uB294%20%uC548%uB098%uC634%29%0A-%20Standard%20Edition%20%3A%20%240.55/h%20%28617%uC6D0/%uC2DC%uAC04%29%0A%09-%20%uB124%uD2B8%uC6CC%uD06C%20%uC0C1%20%uCD5C%uB300%2030%uAC1C%20%uBA64%uBC84%0A%09-%20%uBA64%uBC84%20%uB2F9%20%uCD5C%uB300%2010%uAC1C%20Peer%20Node%0A%09-%20bc.t3%2C%20bc.m5%2C%20bc.c5%20%uD0C0%uC785%20Peer%20Node%20%uAC00%uB2A5%0A%09-%20%uCD5C%uB300%2015%20TB%20%uC758%20Peer%20node%20storage%0A%0A**On%20Demand%20peer%20node%20pricing**%0A%0A%21%5BAlt%20text%5D%28./1543623968662.png%29%0A%0A-%2038%20%uC6D0%20%7E%201%2C220%20%uC6D0%20/%20%uC2DC%uAC04%0A%0A**Peer%20node%20storage**%0A%uCD5C%uC18C%2010GB%20%uBD80%uD130%20%uCD5C%uB300%2015TB%20%uAE4C%uC9C0%20%uC120%uD0DD%uD560%20%uC218%20%uC788%uC74C%0A-%20%240.10%20/%20%uC6D4%20%28112%uC6D0/%uC6D4%29%0A%0A**Data%20Written**%0AFabric%20Network%20%uC5D0%20Write%20%uB418%uB294%20%uBAA8%uB4E0%20Transaction%20Payload%20%uB97C%20%uD3EC%uD568%uD55C%20Data%20%uCD1D%uB7C9%0A-%20%240.10%20/%20GB%20%28112%uC6D0/GB%29%0A%0A**%uAC00%uACA9%20%uC608%uC2DC**%0A%0A%u2738%20Starter%20Edition%20%uAE30%uC900%uC73C%uB85C%20%uC544%uB798%uC640%20%uAC19%uC774%20%uC138%uD305%20%uD55C%uB2E4%uACE0%20%uD558%uC790%0A%3E%202%20%uAC1C%20Starter%20Member%0A%3E%20%uAC01%20%uBA64%uBC84%uAC00%20bc.t3.small%201%uAC1C%uC529%20%uC6B4%uC601%0A%3E%2020GB%20Storage%20%0A%3E%20%uC2DC%uAC04%uB2F9%209MB%20%uC758%20Network%20%uC0AC%uC6A9%0A%0A%21%5BAlt%20text%5D%28./1543627868394.png%29%0A%0A%uC704%20Spec%20%uC774%uBA74%20**%uAC04%uB2E8%uD55C%20%uB0B4%uBD80%20PoC%20%uC815%uB3C4**%uAC00%20%uAC00%uB2A5%uD55C%20%uC0AC%uC591%uC774%uB77C%uACE0%20%uBD10%uC57C%20%uD558%uACA0%uB2E4.%20%uC74C..%20%uC0AC%uC2E4%20PoC%20%uB97C%20%uC704%uD55C%20%uAC1C%uBC1C%20%uC815%uB3C4%3F%0A%0A%u2738%20Standard%20Edition%20%uC73C%uB85C%20%uAC00%uBCF4%uC790.%20%uC0C1%uC6A9%uC5D0%uC11C%uB294%20%uC790%uC2E0%uC758%20Org%20%uC5D0%20%uB300%uD55C%20%uBE44%uC6A9%uB9CC%20%uB0B4%uB294%20%uACBD%uC6B0%uAC00%20%uB9CE%uC740%uAC83%uC774%uBBC0%uB85C%20%uC544%uB798%uC640%20%uAC19%uC774%20%uAD6C%uC131%uD588%uB2E4%uACE0%20%uAC00%uC815%uD55C%uB2E4%0A%0A%3E%201%20%uAC1C%20Standard%20Member%0A%3E%203%20%uAC1C%20Peer%20Node%20%28m5.2xlarge%29%0A%3E%20Node%20%uB2F9%201TB%20Storage%0A%3E%20%uC2DC%uAC04%uB2F9%20200MB%20Network%20%uC0AC%uC6A9%0A%21%5BAlt%20text%5D%28./1543628282848.png%29%0A%0A%uC704%20Spec%20%uC774%uBA74%20**%uC0C1%uC6A9%20%uC11C%uBE44%uC2A4%uB97C%20%uC704%uD55C%20%uAD6C%uC131**%20%uC73C%uB85C%20%uC54C%uB9DE%uB294%uB2E4%uACE0%20%uBCF8%uB2E4.%20Offchain%20%uC2DC%uC2A4%uD15C%uC744%20%uC704%uD55C%20%uBD80%uBD84%uC740%20%uCD94%uAC00%uB85C%20%uAC16%uCD94%uC5B4%uC838%uC57C%20%uD55C%uB2E4.%0A%0A%uC774%uC0C1%uC774%20AMB%28Amazon%20Managed%20Blockchain%29%20%uC758%20%uC18C%uAC1C%20%uC774%uB2E4.%20%uB300%uB7B5%20%uC5B4%uB5A4%20%uC11C%uBE44%uC2A4%uAC00%20%uAC00%uB2A5%uD55C%uC9C0%20%uAC10%uC774%20%uC628%uB2E4.%20**%uC124%uCE58%uC640%20%uC124%uC815%uC744%20%uC704%uD55C%20%uB178%uAC00%uB2E4%uAC00%20%uC904%uC5B4%uB4E4%uACE0%2C%20%uBAA8%uB2C8%uD130%uB9C1%20%uAE30%uB2A5%uC774%20%uCD94%uAC00%uB420%20%uAC83%uC774%uACE0%2C%20Key%20%uC800%uC7A5%uC744%20%uC548%uC804%uD558%uAC8C%20%uD574%uC8FC%uACE0%2C%20QLDB%20%uB97C%20%uD65C%uC6A9%uD558%uC5EC%20%uBAA8%uB4E0%20Transaction%20%uACFC%20Activity%20%uAC00%20%uC800%uC7A5%uB418%uB2C8%20%uC758%uBBF8%uC788%uB294%20%uB370%uC774%uD130%uB97C%20QLDB%20%uC5D0%uC11C%20%uBF51%uC544%uC4F8%20%uC218%20%uC788%uB2E4**%20%uC815%uB3C4%uAC00%20%uD575%uC2EC%uC77C%uB4EF%20%uC2F6%uB2E4.%20%0A%0A%uADF8%uB9AC%uACE0%20%uC18C%uAC1C%20%uD398%uC774%uC9C0%uB098%20Guide%20%uB4F1%uC5D0%20%uBCF4%uBA74%20%uB300%uBD80%uBD84%20Fabric%20%uC911%uC2EC%uC73C%uB85C%20%uC124%uBA85%uB418%uC5B4%20%uC788%uC5B4%uC11C%20%uC0AC%uC2E4%20Ethereum%20%uC740%20%uAE30%uC874%uC758%20%20Blockchain%20Template%20%uAE30%uB2A5%20%uC815%uB3C4%uB97C%20%uC7AC%uD0D5%uD558%uC5EC%20%uD574%uC8FC%uC9C0%20%uC54A%uC744%uAE4C%20%uC0DD%uAC01%uC774%20%uB4E0%uB2E4%0A%0A%uC0AC%uC6A9%20%uAC00%uB2A5%uD55C%20%uC0C1%uD0DC%uAC00%20%uB418%uBA74%20%uC2E4%uC81C%20%uC0AC%uC6A9%uD574%uBCF4%uACE0%20%28%uC124%uB9C8%20%uB3C8%uB0B4%uB77C%uB294%uAC74%20%uC544%uB2C8%uACA0%uC9C0..%29%20%uCD94%uAC00%uB85C%20%uAE00%uC744%20%uC368%uBCF4%uB3C4%uB85D%20%uD558%uACA0%uB2E4%0A%0A

반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,
Edit

Multisig Wallet #1

Ethereum multisigwallet ethereum

Multisig Wallet 을 구현해보자. 블록체인의 응용을 이야기 하거나 할 때 빠지지 않는 단골 메뉴이기도 한 Multi Signature 를 활용하는 Wallet 을 만들어 보고, gnosis, consensys 애들이 만든 Multisign Wallet 은 어떤 구조를 갖고 있는지도 봐보는 재미진 시간을 가져보자

Blockchain 의 Wallet

일단 Wallet 의 개념은 다 알것이다. 특히 Blockchain 의 Wallet 또한 모두 잘 알 것이다. Blockchain 의 Wallet 은

  • Key Pair (Private / Public Key) 를 생성하여 안전하게 보관
  • Transaction 을 생성하고 여기에 본인의 전자서명을 첨부 (보통 Transaction 의 Hash 값을 원문으로 함)
  • Account 기반의 State Model 인 경우, Account Nonce 를 관리

를 기본 기능으로 가지며, 추가적으로

  • 복수의 계좌(Account)를 생성/관리 하는 HD Wallet 의 경우 KDF(Key Derivation Function)를 통한 루트 키와 Derived Key 관리
  • Mnemonic 기반의
  • Web 기반 dApp 실행을 위한 Web View 와 web3.js 등의 JS Injection
  • (Ethereum) ERC 20 기반의 Token 및 기타 EIP 제안 중 널리 쓰이는 ERC 지원(ERC721 등)

등의 기능을 가지는 Wallet 들이 많아지고 있다.

Wallet 에 관해서는 이번 주제 끝나고 다음에 한번 상세히 다루어 보도록 하겠다
HD Wallet 이나 Cold Wallet 에 대해서도 재미난 것들이 많이 있으니 그때 또~

일반 Crypto Wallet 의 Transfer Transaction

Multisig Wallet 은 Crypto Wallet 자체에서 지원하는 기능은 아니다. UTXO 내의 Script 혹은 Smart Contract 의 코드로 Blockchain 내에 존재한다.

일단 아래는 단순화 된 일반적인 Wallet 의 Transfer 과정이다

그림을 단순화 해서 그렇지 Wallet 내부에서는 아래와 같은 과정을 거친다

  1. (secp256k1 으로 Private Key 는 이미 생성 되었다고 가정한다. 즉, 주소는 이미 생성 되었다고 가정한다)
  2. ECDSA 전자서명이 붙지 않은, 100 Ether 를 Value 로 하는 Raw Transaction 을 구성한다
  3. Raw Transaction 의 keccak256 Hash 를 원문으로 한 ECDSA 전자서명 값 r,s,v 를 추가하여 Transaction 을 만든다
  4. Wallet 서비스를 하는 Gateway 를 거치거나 혹은 직접 Node 에게(이런경우는 흔치 않다) Transaction 을 Submit 한다
  5. 100 Ether 는 to address 에 해당하는 Account 의 State 에 더해진다

UTXO 기반 모델의 Blockchain 도 Wallet 의 기능은 마찬가지이다

Multisig Wallet 의 Transfer Transaction

일반적으로 Multisig Wallet 은 2개 이상의 서명이 있어야 실제 Token 의 이체가 일어나게 할 수 있는 기능을 갖는 Wallet 을 말한다.

Bitcoin Wallet 개발하시는 분들은 Multisig Wallet 하면, Wallet 에서 생성한 Tx(Transaction) 내 Output 의 Locking Script(Pubkey Script) 부분에 OP_CHECKMULTISIG 를 포함하도록 만드는 것을 생각 할 수 있겠다.

Ethereum 과 같이 Smart Contract 를 지원하는 블록체인의 경우는 좀더 세련된 방식으로 Multisig Wallet 을 만든다. 또한, Token Asset 의 이체를 위한 Transfer Transaction 뿐만이 아니라 Smart Contract 실행을 위한 Message Transaction 또한 조건을 만족하는 복수개의 서명이 Submit 되었을때에만 실행되게 할 수 있다(보통 이렇게 만든다).

왜 갑자기 Wallet 얘기를 하는데 Smart Contract 얘기가 나오는가 할 수도 있다. 예전부터 많은 사람들이 이부분을 헷갈려 한다는걸 느꼈다. Multisig Wallet 은 결국 내가 제출한 Transaction 에 대해, 미리 지정된 복수의 Account Owner 가 전자서명을 통해 허락해야지만 실제로 그 Transaction 이 실행되어야 하는 규칙 이다.

이러한 규칙은 Wallet App 에 구현되고 저장되는 경우 충분히 위변조 될 수 있으며 중요한 돈거래의 경우 보안성과 범용성의 측면에서 뭐하나 이로울게 없다. 그 얘기는, 블록체인 기술과 Smart Contract 의 필요성이 가장 강한 형태의 dApp 중 하나가 바로 Multisig Wallet 인 것이다.

아래의 Diagram 은 Multisig Wallet 의 동작을 단순화 해본 그림이다
상황은 0xa0c9… 주소를 갖는 EOA 가 0x039b… 에게 100 Ether 를 이체하려고 하며, 이때 미리 지정한 0x0248… EOA 의 최종 승인 이 있어야지만 실제로 100 Ether 가 0x039b… 에게 이체되는 Transaction 이 실행되게 해야 한다.

구성요소

  • Wallet - Account 소유자가 설치한 Browser Plug-in, Desktop, Mobile 용의 Wallet App (Metamask, MEW, Jaxx, Exodus …) 이거나 Smart Contract 실행을 위한 Message Transaction 을 만들어낼 수 있는 어떠한 dApp 도 될 수 있다
  • Multisig Wallet Contract
    • 이체하고자 하는 Token 을 보관
    • 제출 된 Transaction 실행 요건 지정 (n of m 개의 전자서명 요구와 같은)
    • 전자서명 주체가 되는 Wallet Owner 들의 등록 및 관리
    • Transaction 제출 알림
    • 요건을 만족한 경우 Transaction 의 실제 실행

이외에도 Wallet 앱을 개발하고 서비스 하는 회사의 경우, 아무나 자신들이 운영하는 Node 에 수많은 Transaction 을 날려 DoS Attack 을 하거나 부하를 일으키지 않도록 하고 부가적인 서비스를 제공하기위한 목적으로 Wallet Service Gateway 를 둘 수도 있겠지만 Offchain 시스템은 모두 생략하였다

위 구성요소의 설명을 보면 알겠지만 핵심은 Multisig Wallet Contract 이다. Multisig Wallet의 모든 핵심 기능은 이 Contract 에서 이루어진다. 예전에 문제가 된 Parity 의 Multisig Wallet 도 물론 Smart Contract 이다.

흐름

위 Multisig Wallet Contract 를 사용하는 흐름을 보면 간단하다 하지만 이전 글에서는 다루지 않았던 새로운 요소가 하나 등장한다

  1. submitTransaction
    submitTranaction() 을 실행하기 위한 Message Transaction 의 Parameter 를 이용하여 실제 Token(Ether) 을 받을 주소를 넣어준다

    이때, Token 을 받을 대상이 다른 Smart Contract 이고 Transaction 종류가 Message Transaction 인 경우, submitTransaction() 의 파라미터 중 하나에 실행해야 하는 Smart Contract 의 Method 와 파라미터를 포함하는 Data Payload 를 넣어준다 (web3 의 .getData() 사용)

    추가적으로, 예의상 submitTransaction() 이 되면 Event 로 transaction 이 submit 되었다고 알려주는 센스 정도는 설명하지 않아도 구현 되어야 한다고 느낌이 올 것이다

이부분은 구현 부분에서 설명하겠다. 향후 CALL, CALLCODE, DELEGATECALL 과 관련 있는 부분이니 그때 또 설명 하겠다 (음.. 오랜만이 시작하려니 설명할게 산더미같다..)

  1. confirmTransaction
    위 submitTransaction() 으로 제출 된 Transaction 을 승인 하는 단계이다. Contract 에 등록된 승인 권한이 있는 EOA 가 confirmTransaction() 을 통해 confirm 해주면 된다. 이때, 각 confirm 시 마다 등록된 조건(최소 n 개의 confirm 필요)을 만족하는 confirm 을 받았는지 check 한다

  2. executeTransaction
    confirmTransaction() 실행 시 만족하는 confirm 수가 채워졌으면 submitTransaction() 시에 제출 된 token 의 양 만큼을 원래 보내고자 했던 주소로 보내주도록 Transaction 의 value 값을 채우며, submitTransaction() 단계에서 제출 된 Message Transaction 이 있었다면 Wallet Contract 가(msg.sender == Wallet Contract) 해당 Message Transaction 을 실행한다

Multisig 인데, 서명은 언제하는가?

전에 Multisig Wallet 에 대해 차분히 설명 해주고 나서 들었던 질문이 있었다. “그런데 다른사람들(EOA)이 전자서명은 언제 해줘요?” 전자서명은 이미 Smart Contract 를 실행하는 submitTransaction(), confirmTransaction() 단계에서 Message Transaction 을 보내기 위해 Raw Transaction 에 대고 다 했다. 그래야 Transaction 이 submit 되었지 않겠는가..요.. 라고 답을 해줬던 기억이 난다.

(단, Smart Contract 이 internal call 을 하는 구간에는 전자서명이 당연히 없다. EOA 에서 이미 했지않은가. Smart Contract 는 서명할 수 있는 놈이 아니다. Smart Contract 을 실행한 놈이 이미 전자서명을 해서 Message Transaction 을 보낸 것이다)

이름이 문제다. Multisig.. 사실 confirmTransaction() 단계에서 파라미터로 메시지와 전자서명값 r,s,v 를 넣어줄 수도 있다. 그러나 다른 EOA 의 전자서명을 전달하는 상황이 아니고 confirmTransaction() 을 실행하는 주체 자체가 승인 권한을 가진 EOA 이므로 이미 transaction 내에 들어있는 전자서명을 Multisig Wallet Contract 의 파라미터로 보낼 이유가 없는 것이다

마치며

오랜만에 올리는 글 치고는 매우 기본적인 주제를 올려본다. 사실 0xProtocol, Plasma, Raiden, ERC20 Token 기반으로 돌아가는 dApp 만들기, plasma-mvp … 또는 Enterprise Blockchain, Quorum 등등 무엇부터 시작할까를 많이 고민해보았다.

그리고 이전에 올렸던 글들을 다시 훑어보다가, 블로그의 흐름이 갑자기 끊기는것 보다는 이전의 Context 를 이어나아가면서 좀더 빠르게 진행해보는 것으로 일단 마음을 먹어본다. (그래도 기본은 기본대로 가고, 중간중간 발표자료도 좀 올리고, 이런저런 구현 샘플들도 짬짬이 올리겠다^^;;)

다음은 Multisig Wallet 구현 예제를 1회 정도 올리고 퀵하게 마무리 하고 또 그 다음으로 넘어가 보도록 하는걸 목표로 해보겠다

%23%20Multisig%20Wallet%20%231%0A@%28220.Blockchain%29%5B%uC774%uB354%uB9AC%uC6C0%2C%20Ethereum%2C%20%uD2F0%uC2A4%uD1A0%uB9AC%2C%20multisigwallet%2C%20ethereum%5D%0A%0A%3Cimg%20src%3D%22./1543316979811.png%22%20width%3D%22300%22%20align%3D%22middle%22%20/%3E%0A%0AMultisig%20Wallet%20%uC744%20%uAD6C%uD604%uD574%uBCF4%uC790.%20%uBE14%uB85D%uCCB4%uC778%uC758%20%uC751%uC6A9%uC744%20%uC774%uC57C%uAE30%20%uD558%uAC70%uB098%20%uD560%20%uB54C%20%uBE60%uC9C0%uC9C0%20%uC54A%uB294%20%uB2E8%uACE8%20%uBA54%uB274%uC774%uAE30%uB3C4%20%uD55C%20Multi%20Signature%20%uB97C%20%uD65C%uC6A9%uD558%uB294%20Wallet%20%uC744%20%uB9CC%uB4E4%uC5B4%20%uBCF4%uACE0%2C%20gnosis%2C%20consensys%20%uC560%uB4E4%uC774%20%uB9CC%uB4E0%20Multisign%20Wallet%20%uC740%20%uC5B4%uB5A4%20%uAD6C%uC870%uB97C%20%uAC16%uACE0%20%uC788%uB294%uC9C0%uB3C4%20%uBD10%uBCF4%uB294%20%uC7AC%uBBF8%uC9C4%20%uC2DC%uAC04%uC744%20%uAC00%uC838%uBCF4%uC790%20%0A%0A%23%23%20Blockchain%20%uC758%20Wallet%0A%uC77C%uB2E8%20Wallet%20%uC758%20%uAC1C%uB150%uC740%20%uB2E4%20%uC54C%uAC83%uC774%uB2E4.%20%uD2B9%uD788%20Blockchain%20%uC758%20Wallet%20%uB610%uD55C%20%uBAA8%uB450%20%uC798%20%uC54C%20%uAC83%uC774%uB2E4.%20Blockchain%20%uC758%20Wallet%20%uC740%20%0A-%20Key%20Pair%20%28Private%20/%20Public%20Key%29%20%uB97C%20%uC0DD%uC131%uD558%uC5EC%20%uC548%uC804%uD558%uAC8C%20%uBCF4%uAD00%0A-%20Transaction%20%uC744%20%uC0DD%uC131%uD558%uACE0%20%uC5EC%uAE30%uC5D0%20%uBCF8%uC778%uC758%20%uC804%uC790%uC11C%uBA85%uC744%20%uCCA8%uBD80%20%28%uBCF4%uD1B5%20Transaction%20%uC758%20Hash%20%uAC12%uC744%20%uC6D0%uBB38%uC73C%uB85C%20%uD568%29%0A-%20Account%20%uAE30%uBC18%uC758%20State%20Model%20%uC778%20%uACBD%uC6B0%2C%20Account%20Nonce%20%uB97C%20%uAD00%uB9AC%0A%0A%uB97C%20%uAE30%uBCF8%20%uAE30%uB2A5%uC73C%uB85C%20%uAC00%uC9C0%uBA70%2C%20%uCD94%uAC00%uC801%uC73C%uB85C%0A-%20%uBCF5%uC218%uC758%20%uACC4%uC88C%28Account%29%uB97C%20%uC0DD%uC131/%uAD00%uB9AC%20%uD558%uB294%20HD%20Wallet%20%uC758%20%uACBD%uC6B0%20KDF%28Key%20Derivation%20Function%29%uB97C%20%uD1B5%uD55C%20%uB8E8%uD2B8%20%uD0A4%uC640%20Derived%20Key%20%uAD00%uB9AC%20%0A-%20Mnemonic%20%uAE30%uBC18%uC758%20%0A-%20Web%20%uAE30%uBC18%20dApp%20%uC2E4%uD589%uC744%20%uC704%uD55C%20Web%20View%20%uC640%20web3.js%20%uB4F1%uC758%20JS%20Injection%0A-%20%28Ethereum%29%20ERC%2020%20%uAE30%uBC18%uC758%20Token%20%uBC0F%20%uAE30%uD0C0%20EIP%20%uC81C%uC548%20%uC911%20%uB110%uB9AC%20%uC4F0%uC774%uB294%20ERC%20%uC9C0%uC6D0%28ERC721%20%uB4F1%29%0A%0A%uB4F1%uC758%20%uAE30%uB2A5%uC744%20%uAC00%uC9C0%uB294%20Wallet%20%uB4E4%uC774%20%uB9CE%uC544%uC9C0%uACE0%20%uC788%uB2E4.%0A%0A%3E%20Wallet%20%uC5D0%20%uAD00%uD574%uC11C%uB294%20%uC774%uBC88%20%uC8FC%uC81C%20%uB05D%uB098%uACE0%20%uB2E4%uC74C%uC5D0%20%uD55C%uBC88%20%uC0C1%uC138%uD788%20%uB2E4%uB8E8%uC5B4%20%uBCF4%uB3C4%uB85D%20%uD558%uACA0%uB2E4%0A%3E%20HD%20Wallet%20%uC774%uB098%20Cold%20Wallet%20%uC5D0%20%uB300%uD574%uC11C%uB3C4%20%uC7AC%uBBF8%uB09C%20%uAC83%uB4E4%uC774%20%uB9CE%uC774%20%uC788%uC73C%uB2C8%20%uADF8%uB54C%20%uB610%7E%0A%0A%23%23%23%20%uC77C%uBC18%20Crypto%20Wallet%20%uC758%20Transfer%20Transaction%0AMultisig%20Wallet%20%uC740%20Crypto%20Wallet%20%uC790%uCCB4%uC5D0%uC11C%20%uC9C0%uC6D0%uD558%uB294%20%uAE30%uB2A5%uC740%20%uC544%uB2C8%uB2E4.%20UTXO%20%uB0B4%uC758%20Script%20%uD639%uC740%20Smart%20Contract%20%uC758%20%uCF54%uB4DC%uB85C%20Blockchain%20%uB0B4%uC5D0%20%uC874%uC7AC%uD55C%uB2E4.%0A%0A%uC77C%uB2E8%20%uC544%uB798%uB294%20%uB2E8%uC21C%uD654%20%uB41C%20%uC77C%uBC18%uC801%uC778%20Wallet%20%uC758%20Transfer%20%uACFC%uC815%uC774%uB2E4%0A%0A%3Cimg%20src%3D%22./multisig00.png%22%20width%3D%22600%22/%3E%0A%0A%uADF8%uB9BC%uC744%20%uB2E8%uC21C%uD654%20%uD574%uC11C%20%uADF8%uB807%uC9C0%20Wallet%20%uB0B4%uBD80%uC5D0%uC11C%uB294%20%uC544%uB798%uC640%20%uAC19%uC740%20%uACFC%uC815%uC744%20%uAC70%uCE5C%uB2E4%0A1.%20%28secp256k1%20%uC73C%uB85C%20Private%20Key%20%uB294%20%uC774%uBBF8%20%uC0DD%uC131%20%uB418%uC5C8%uB2E4%uACE0%20%uAC00%uC815%uD55C%uB2E4.%20%uC989%2C%20%uC8FC%uC18C%uB294%20%uC774%uBBF8%20%uC0DD%uC131%20%uB418%uC5C8%uB2E4%uACE0%20%uAC00%uC815%uD55C%uB2E4%29%0A2.%20ECDSA%20%uC804%uC790%uC11C%uBA85%uC774%20%uBD99%uC9C0%20%uC54A%uC740%2C%20100%20Ether%20%uB97C%20Value%20%uB85C%20%uD558%uB294%20Raw%20Transaction%20%uC744%20%uAD6C%uC131%uD55C%uB2E4%0A3.%20Raw%20Transaction%20%uC758%20keccak256%20Hash%20%uB97C%20%uC6D0%uBB38%uC73C%uB85C%20%uD55C%20ECDSA%20%uC804%uC790%uC11C%uBA85%20%uAC12%20r%2Cs%2Cv%20%uB97C%20%uCD94%uAC00%uD558%uC5EC%20Transaction%20%uC744%20%uB9CC%uB4E0%uB2E4%0A4.%20Wallet%20%uC11C%uBE44%uC2A4%uB97C%20%uD558%uB294%20Gateway%20%uB97C%20%uAC70%uCE58%uAC70%uB098%20%uD639%uC740%20%uC9C1%uC811%20Node%20%uC5D0%uAC8C%28%uC774%uB7F0%uACBD%uC6B0%uB294%20%uD754%uCE58%20%uC54A%uB2E4%29%20Transaction%20%uC744%20Submit%20%uD55C%uB2E4%0A5.%20100%20Ether%20%uB294%20**to**%20address%20%uC5D0%20%uD574%uB2F9%uD558%uB294%20Account%20%uC758%20State%20%uC5D0%20%uB354%uD574%uC9C4%uB2E4%0A%0AUTXO%20%uAE30%uBC18%20%uBAA8%uB378%uC758%20Blockchain%20%uB3C4%20Wallet%20%uC758%20%uAE30%uB2A5%uC740%20%uB9C8%uCC2C%uAC00%uC9C0%uC774%uB2E4%0A%0A%23%23%20Multisig%20Wallet%20%uC758%20Transfer%20Transaction%0A%uC77C%uBC18%uC801%uC73C%uB85C%20Multisig%20Wallet%20%uC740%202%uAC1C%20%uC774%uC0C1%uC758%20%uC11C%uBA85%uC774%20%uC788%uC5B4%uC57C%20%uC2E4%uC81C%20Token%20%uC758%20%uC774%uCCB4%uAC00%20%uC77C%uC5B4%uB098%uAC8C%20%uD560%20%uC218%20%uC788%uB294%20**%uAE30%uB2A5**%uC744%20%uAC16%uB294%20Wallet%20%uC744%20%uB9D0%uD55C%uB2E4.%20%0A%0ABitcoin%20Wallet%20%uAC1C%uBC1C%uD558%uC2DC%uB294%20%uBD84%uB4E4%uC740%20Multisig%20Wallet%20%uD558%uBA74%2C%20Wallet%20%uC5D0%uC11C%20%uC0DD%uC131%uD55C%20Tx%28Transaction%29%20%uB0B4%20Output%20%uC758%20Locking%20Script%28Pubkey%20Script%29%20%uBD80%uBD84%uC5D0%20OP_CHECKMULTISIG%20%uB97C%20%uD3EC%uD568%uD558%uB3C4%uB85D%20%uB9CC%uB4DC%uB294%20%uAC83%uC744%20%uC0DD%uAC01%20%uD560%20%uC218%20%uC788%uACA0%uB2E4.%20%0A%0AEthereum%20%uACFC%20%uAC19%uC774%20Smart%20Contract%20%uB97C%20%uC9C0%uC6D0%uD558%uB294%20%uBE14%uB85D%uCCB4%uC778%uC758%20%uACBD%uC6B0%uB294%20%uC880%uB354%20%uC138%uB828%uB41C%20%uBC29%uC2DD%uC73C%uB85C%20Multisig%20Wallet%20%uC744%20%uB9CC%uB4E0%uB2E4.%20%uB610%uD55C%2C%20Token%20Asset%20%uC758%20%uC774%uCCB4%uB97C%20%uC704%uD55C%20Transfer%20Transaction%20%uBFD0%uB9CC%uC774%20%uC544%uB2C8%uB77C%20Smart%20Contract%20%uC2E4%uD589%uC744%20%uC704%uD55C%20Message%20Transaction%20%uB610%uD55C%20%uC870%uAC74%uC744%20%uB9CC%uC871%uD558%uB294%20**%uBCF5%uC218%uAC1C%uC758%20%uC11C%uBA85**%uC774%20Submit%20%uB418%uC5C8%uC744%uB54C%uC5D0%uB9CC%20%uC2E4%uD589%uB418%uAC8C%20%uD560%20%uC218%20%uC788%uB2E4%28%uBCF4%uD1B5%20%uC774%uB807%uAC8C%20%uB9CC%uB4E0%uB2E4%29.%0A%0A%uC65C%20%uAC11%uC790%uAE30%20Wallet%20%uC598%uAE30%uB97C%20%uD558%uB294%uB370%20Smart%20Contract%20%uC598%uAE30%uAC00%20%uB098%uC624%uB294%uAC00%20%uD560%20%uC218%uB3C4%20%uC788%uB2E4.%20%uC608%uC804%uBD80%uD130%20%uB9CE%uC740%20%uC0AC%uB78C%uB4E4%uC774%20%uC774%uBD80%uBD84%uC744%20%uD5F7%uAC08%uB824%20%uD55C%uB2E4%uB294%uAC78%20%uB290%uAF08%uB2E4.%20Multisig%20Wallet%20%uC740%20%uACB0%uAD6D%20**%uB0B4%uAC00%20%uC81C%uCD9C%uD55C%20Transaction%20%uC5D0%20%uB300%uD574%2C%20%uBBF8%uB9AC%20%uC9C0%uC815%uB41C%20%uBCF5%uC218%uC758%20Account%20Owner%20%uAC00%20%uC804%uC790%uC11C%uBA85%uC744%20%uD1B5%uD574%20%uD5C8%uB77D**%uD574%uC57C%uC9C0%uB9CC%20%uC2E4%uC81C%uB85C%20%uADF8%20Transaction%20%uC774%20%uC2E4%uD589%uB418%uC5B4%uC57C%20%uD558%uB294%20**%uADDC%uCE59**%20%uC774%uB2E4.%0A%0A%uC774%uB7EC%uD55C%20**%uADDC%uCE59**%uC740%20Wallet%20App%20%uC5D0%20%uAD6C%uD604%uB418%uACE0%20%uC800%uC7A5%uB418%uB294%20%uACBD%uC6B0%20%uCDA9%uBD84%uD788%20%uC704%uBCC0%uC870%20%uB420%20%uC218%20%uC788%uC73C%uBA70%20%uC911%uC694%uD55C%20%uB3C8%uAC70%uB798%uC758%20%uACBD%uC6B0%20%uBCF4%uC548%uC131%uACFC%20%uBC94%uC6A9%uC131%uC758%20%uCE21%uBA74%uC5D0%uC11C%20%uBB50%uD558%uB098%20%uC774%uB85C%uC6B8%uAC8C%20%uC5C6%uB2E4.%20%uADF8%20%uC598%uAE30%uB294%2C%20%uBE14%uB85D%uCCB4%uC778%20%uAE30%uC220%uACFC%20Smart%20Contract%20%uC758%20%uD544%uC694%uC131%uC774%20%uAC00%uC7A5%20%uAC15%uD55C%20%uD615%uD0DC%uC758%20dApp%20%uC911%20%uD558%uB098%uAC00%20%uBC14%uB85C%20Multisig%20Wallet%20%uC778%20%uAC83%uC774%uB2E4.%0A%0A%uC544%uB798%uC758%20Diagram%20%uC740%20Multisig%20Wallet%20%uC758%20%uB3D9%uC791%uC744%20%uB2E8%uC21C%uD654%20%uD574%uBCF8%20%uADF8%uB9BC%uC774%uB2E4%0A%uC0C1%uD669%uC740%200xa0c9...%20%uC8FC%uC18C%uB97C%20%uAC16%uB294%20EOA%20%uAC00%200x039b...%20%uC5D0%uAC8C%20100%20Ether%20%uB97C%20%uC774%uCCB4%uD558%uB824%uACE0%20%uD558%uBA70%2C%20%uC774%uB54C%20%uBBF8%uB9AC%20%uC9C0%uC815%uD55C%200x0248...%20EOA%20%uC758%20%uCD5C%uC885%20**%uC2B9%uC778**%20%uC774%20%uC788%uC5B4%uC57C%uC9C0%uB9CC%20%uC2E4%uC81C%uB85C%20100%20Ether%20%uAC00%200x039b...%20%uC5D0%uAC8C%20%uC774%uCCB4%uB418%uB294%20Transaction%20%uC774%20%uC2E4%uD589%uB418%uAC8C%20%uD574%uC57C%20%uD55C%uB2E4.%0A%0A%3Cimg%20src%3D%22./multisig01.png%22%20width%3D%22600%22%20/%3E%0A%0A%23%23%23%20%uAD6C%uC131%uC694%uC18C%0A-%20**Wallet**%20-%20Account%20%uC18C%uC720%uC790%uAC00%20%uC124%uCE58%uD55C%20Browser%20Plug-in%2C%20Desktop%2C%20Mobile%20%uC6A9%uC758%20Wallet%20App%20%28Metamask%2C%20MEW%2C%20Jaxx%2C%20Exodus%20...%29%20%20%uC774%uAC70%uB098%20Smart%20Contract%20%uC2E4%uD589%uC744%20%uC704%uD55C%20Message%20Transaction%20%uC744%20%uB9CC%uB4E4%uC5B4%uB0BC%20%uC218%20%uC788%uB294%20%uC5B4%uB5A0%uD55C%20dApp%20%uB3C4%20%uB420%20%uC218%20%uC788%uB2E4%0A-%20**Multisig%20Wallet%20Contract**%0A%09-%20%uC774%uCCB4%uD558%uACE0%uC790%20%uD558%uB294%20Token%20%uC744%20%uBCF4%uAD00%0A%09-%20%uC81C%uCD9C%20%uB41C%20Transaction%20%uC2E4%uD589%20%uC694%uAC74%20%uC9C0%uC815%20%28n%20of%20m%20%uAC1C%uC758%20%uC804%uC790%uC11C%uBA85%20%uC694%uAD6C%uC640%20%uAC19%uC740%29%0A%09-%20%uC804%uC790%uC11C%uBA85%20%uC8FC%uCCB4%uAC00%20%uB418%uB294%20Wallet%20Owner%20%uB4E4%uC758%20%uB4F1%uB85D%20%uBC0F%20%uAD00%uB9AC%0A%09-%20Transaction%20%uC81C%uCD9C%20%uC54C%uB9BC%0A%09-%20%uC694%uAC74%uC744%20%uB9CC%uC871%uD55C%20%uACBD%uC6B0%20Transaction%20%uC758%20%uC2E4%uC81C%20%uC2E4%uD589%0A%0A%3E%uC774%uC678%uC5D0%uB3C4%20Wallet%20%uC571%uC744%20%uAC1C%uBC1C%uD558%uACE0%20%uC11C%uBE44%uC2A4%20%uD558%uB294%20%uD68C%uC0AC%uC758%20%uACBD%uC6B0%2C%20%uC544%uBB34%uB098%20%uC790%uC2E0%uB4E4%uC774%20%uC6B4%uC601%uD558%uB294%20Node%20%uC5D0%20%uC218%uB9CE%uC740%20Transaction%20%uC744%20%uB0A0%uB824%20DoS%20Attack%20%uC744%20%uD558%uAC70%uB098%20%uBD80%uD558%uB97C%20%uC77C%uC73C%uD0A4%uC9C0%20%uC54A%uB3C4%uB85D%20%uD558%uACE0%20%uBD80%uAC00%uC801%uC778%20%uC11C%uBE44%uC2A4%uB97C%20%uC81C%uACF5%uD558%uAE30%uC704%uD55C%20%uBAA9%uC801%uC73C%uB85C%20Wallet%20Service%20Gateway%20%uB97C%20%uB458%20%uC218%uB3C4%20%uC788%uACA0%uC9C0%uB9CC%20Offchain%20%uC2DC%uC2A4%uD15C%uC740%20%uBAA8%uB450%20%uC0DD%uB7B5%uD558%uC600%uB2E4%0A%0A%uC704%20%uAD6C%uC131%uC694%uC18C%uC758%20%uC124%uBA85%uC744%20%uBCF4%uBA74%20%uC54C%uACA0%uC9C0%uB9CC%20%uD575%uC2EC%uC740%20**Multisig%20Wallet%20Contract**%20%uC774%uB2E4.%20Multisig%20Wallet%uC758%20%uBAA8%uB4E0%20%uD575%uC2EC%20%uAE30%uB2A5%uC740%20%uC774%20Contract%20%uC5D0%uC11C%20%uC774%uB8E8%uC5B4%uC9C4%uB2E4.%20%uC608%uC804%uC5D0%20%uBB38%uC81C%uAC00%20%uB41C%20Parity%20%uC758%20Multisig%20Wallet%20%uB3C4%20%uBB3C%uB860%20Smart%20Contract%20%uC774%uB2E4.%20%0A%0A%23%23%23%20%uD750%uB984%0A%uC704%20Multisig%20Wallet%20Contract%20%uB97C%20%uC0AC%uC6A9%uD558%uB294%20%uD750%uB984%uC744%20%uBCF4%uBA74%20%uAC04%uB2E8%uD558%uB2E4%20%uD558%uC9C0%uB9CC%20%uC774%uC804%20%uAE00%uC5D0%uC11C%uB294%20%uB2E4%uB8E8%uC9C0%20%uC54A%uC558%uB358%20%uC0C8%uB85C%uC6B4%20%uC694%uC18C%uAC00%20%uD558%uB098%20%uB4F1%uC7A5%uD55C%uB2E4%0A1.%20**submitTransaction**%20%0AsubmitTranaction%28%29%20%uC744%20%uC2E4%uD589%uD558%uAE30%20%uC704%uD55C%20Message%20Transaction%20%uC758%20Parameter%20%uB97C%20%uC774%uC6A9%uD558%uC5EC%20%uC2E4%uC81C%20Token%28Ether%29%20%uC744%20%uBC1B%uC744%20%uC8FC%uC18C%uB97C%20%uB123%uC5B4%uC900%uB2E4%0A%0A%20%uC774%uB54C%2C%20Token%20%uC744%20%uBC1B%uC744%20%uB300%uC0C1%uC774%20%uB2E4%uB978%20Smart%20Contract%20%uC774%uACE0%20Transaction%20%uC885%uB958%uAC00%20Message%20Transaction%20%uC778%20%uACBD%uC6B0%2C%20submitTransaction%28%29%20%uC758%20%uD30C%uB77C%uBBF8%uD130%20%uC911%20%uD558%uB098%uC5D0%20**%uC2E4%uD589%uD574%uC57C%20%uD558%uB294%20Smart%20Contract%20%uC758**%20Method%20%uC640%20%uD30C%uB77C%uBBF8%uD130%uB97C%20%uD3EC%uD568%uD558%uB294%20**Data%20Payload**%20%uB97C%20%uB123%uC5B4%uC900%uB2E4%20%28web3%20%uC758%20.getData%28%29%20%uC0AC%uC6A9%29%20%0A%0A%20%uCD94%uAC00%uC801%uC73C%uB85C%2C%20%uC608%uC758%uC0C1%20submitTransaction%28%29%20%uC774%20%uB418%uBA74%20Event%20%uB85C%20transaction%20%uC774%20submit%20%uB418%uC5C8%uB2E4%uACE0%20%uC54C%uB824%uC8FC%uB294%20%uC13C%uC2A4%20%uC815%uB3C4%uB294%20%uC124%uBA85%uD558%uC9C0%20%uC54A%uC544%uB3C4%20%uAD6C%uD604%20%uB418%uC5B4%uC57C%20%uD55C%uB2E4%uACE0%20%uB290%uB08C%uC774%20%uC62C%20%uAC83%uC774%uB2E4%0A%0A%3E%20%uC774%uBD80%uBD84%uC740%20%uAD6C%uD604%20%uBD80%uBD84%uC5D0%uC11C%20%uC124%uBA85%uD558%uACA0%uB2E4.%20%uD5A5%uD6C4%20CALL%2C%20CALLCODE%2C%20DELEGATECALL%20%uACFC%20%uAD00%uB828%20%uC788%uB294%20%uBD80%uBD84%uC774%uB2C8%20%uADF8%uB54C%20%uB610%20%uC124%uBA85%20%uD558%uACA0%uB2E4%20%28%uC74C..%20%uC624%uB79C%uB9CC%uC774%20%uC2DC%uC791%uD558%uB824%uB2C8%20%uC124%uBA85%uD560%uAC8C%20%uC0B0%uB354%uBBF8%uAC19%uB2E4..%29%0A%0A%0A2.%20**confirmTransaction**%0A%uC704%20submitTransaction%28%29%20%uC73C%uB85C%20%uC81C%uCD9C%20%uB41C%20Transaction%20%uC744%20**%uC2B9%uC778**%20%uD558%uB294%20%uB2E8%uACC4%uC774%uB2E4.%20Contract%20%uC5D0%20%uB4F1%uB85D%uB41C%20%uC2B9%uC778%20%uAD8C%uD55C%uC774%20%uC788%uB294%20EOA%20%uAC00%20confirmTransaction%28%29%20%uC744%20%uD1B5%uD574%20confirm%20%uD574%uC8FC%uBA74%20%uB41C%uB2E4.%20%uC774%uB54C%2C%20%uAC01%20confirm%20%uC2DC%20%uB9C8%uB2E4%20%uB4F1%uB85D%uB41C%20%uC870%uAC74%28%uCD5C%uC18C%20n%20%uAC1C%uC758%20confirm%20%uD544%uC694%29%uC744%20%uB9CC%uC871%uD558%uB294%20confirm%20%uC744%20%uBC1B%uC558%uB294%uC9C0%20check%20%uD55C%uB2E4%0A%0A3.%20**executeTransaction**%0AconfirmTransaction%28%29%20%uC2E4%uD589%20%uC2DC%20%uB9CC%uC871%uD558%uB294%20confirm%20%uC218%uAC00%20%uCC44%uC6CC%uC84C%uC73C%uBA74%20submitTransaction%28%29%20%uC2DC%uC5D0%20%uC81C%uCD9C%20%uB41C%20token%20%uC758%20%uC591%20%uB9CC%uD07C%uC744%20%uC6D0%uB798%20%uBCF4%uB0B4%uACE0%uC790%20%uD588%uB358%20%uC8FC%uC18C%uB85C%20%uBCF4%uB0B4%uC8FC%uB3C4%uB85D%20Transaction%20%uC758%20value%20%uAC12%uC744%20%uCC44%uC6B0%uBA70%2C%20submitTransaction%28%29%20%uB2E8%uACC4%uC5D0%uC11C%20%uC81C%uCD9C%20%uB41C%20Message%20Transaction%20%uC774%20%uC788%uC5C8%uB2E4%uBA74%20**Wallet%20Contract%20%uAC00%28msg.sender%20%3D%3D%20Wallet%20Contract%29**%20%uD574%uB2F9%20Message%20Transaction%20%uC744%20%uC2E4%uD589%uD55C%uB2E4%0A%0A%23%23%23%20Multisig%20%uC778%uB370%2C%20%uC11C%uBA85%uC740%20%uC5B8%uC81C%uD558%uB294%uAC00%3F%0A%uC804%uC5D0%20Multisig%20Wallet%20%uC5D0%20%uB300%uD574%20%uCC28%uBD84%uD788%20%uC124%uBA85%20%uD574%uC8FC%uACE0%20%uB098%uC11C%20%uB4E4%uC5C8%uB358%20%uC9C8%uBB38%uC774%20%uC788%uC5C8%uB2E4.%20**%22%uADF8%uB7F0%uB370%20%uB2E4%uB978%uC0AC%uB78C%uB4E4%28EOA%29%uC774%20%uC804%uC790%uC11C%uBA85%uC740%20%uC5B8%uC81C%20%uD574%uC918%uC694%3F%22**%20%uC804%uC790%uC11C%uBA85%uC740%20%uC774%uBBF8%20Smart%20Contract%20%uB97C%20%uC2E4%uD589%uD558%uB294%20submitTransaction%28%29%2C%20confirmTransaction%28%29%20%uB2E8%uACC4%uC5D0%uC11C%20Message%20Transaction%20%uC744%20%uBCF4%uB0B4%uAE30%20%uC704%uD574%20Raw%20Transaction%20%uC5D0%20%uB300%uACE0%20%uB2E4%20%uD588%uB2E4.%20%uADF8%uB798%uC57C%20Transaction%20%uC774%20submit%20%uB418%uC5C8%uC9C0%20%uC54A%uACA0%uB294%uAC00..%uC694..%20%uB77C%uACE0%20%uB2F5%uC744%20%uD574%uC92C%uB358%20%uAE30%uC5B5%uC774%20%uB09C%uB2E4.%0A%0A%28%uB2E8%2C%20Smart%20Contract%20%uC774%20internal%20call%20%uC744%20%uD558%uB294%20%uAD6C%uAC04%uC5D0%uB294%20%uC804%uC790%uC11C%uBA85%uC774%20%uB2F9%uC5F0%uD788%20%uC5C6%uB2E4.%20EOA%20%uC5D0%uC11C%20%uC774%uBBF8%20%uD588%uC9C0%uC54A%uC740%uAC00.%20Smart%20Contract%20%uB294%20%uC11C%uBA85%uD560%20%uC218%20%uC788%uB294%20%uB188%uC774%20%uC544%uB2C8%uB2E4.%20Smart%20Contract%20%uC744%20%uC2E4%uD589%uD55C%20%uB188%uC774%20%uC774%uBBF8%20%uC804%uC790%uC11C%uBA85%uC744%20%uD574%uC11C%20Message%20Transaction%20%uC744%20%uBCF4%uB0B8%20%uAC83%uC774%uB2E4%29%0A%0A%uC774%uB984%uC774%20%uBB38%uC81C%uB2E4.%20Multisig..%20%uC0AC%uC2E4%20confirmTransaction%28%29%20%uB2E8%uACC4%uC5D0%uC11C%20%uD30C%uB77C%uBBF8%uD130%uB85C%20%uBA54%uC2DC%uC9C0%uC640%20%uC804%uC790%uC11C%uBA85%uAC12%20r%2Cs%2Cv%20%uB97C%20%uB123%uC5B4%uC904%20%uC218%uB3C4%20%uC788%uB2E4.%20%uADF8%uB7EC%uB098%20%uB2E4%uB978%20EOA%20%uC758%20%uC804%uC790%uC11C%uBA85%uC744%20%uC804%uB2EC%uD558%uB294%20%uC0C1%uD669%uC774%20%uC544%uB2C8%uACE0%20**confirmTransaction%28%29%20%uC744%20%uC2E4%uD589%uD558%uB294%20%uC8FC%uCCB4%20%uC790%uCCB4%uAC00%20%uC2B9%uC778%20%uAD8C%uD55C%uC744%20%uAC00%uC9C4%20EOA%20%uC774%uBBC0%uB85C%20%uC774%uBBF8%20transaction%20%uB0B4%uC5D0%20%uB4E4%uC5B4%uC788%uB294%20%uC804%uC790%uC11C%uBA85%uC744%20Multisig%20Wallet%20Contract%20%uC758%20%uD30C%uB77C%uBBF8%uD130%uB85C%20%uBCF4%uB0BC%20%uC774%uC720%uAC00%20%uC5C6%uB294%20%uAC83**%uC774%uB2E4%0A%0A%21%5BAlt%20text%5D%28./1543506496329.png%29%0A%0A%0A%23%23%20%uB9C8%uCE58%uBA70%0A%uC624%uB79C%uB9CC%uC5D0%20%uC62C%uB9AC%uB294%20%uAE00%20%uCE58%uACE0%uB294%20%uB9E4%uC6B0%20%uAE30%uBCF8%uC801%uC778%20%uC8FC%uC81C%uB97C%20%uC62C%uB824%uBCF8%uB2E4.%20%uC0AC%uC2E4%200xProtocol%2C%20Plasma%2C%20Raiden%2C%20ERC20%20Token%20%uAE30%uBC18%uC73C%uB85C%20%uB3CC%uC544%uAC00%uB294%20dApp%20%uB9CC%uB4E4%uAE30%2C%20plasma-mvp%20...%20%uB610%uB294%20Enterprise%20Blockchain%2C%20Quorum%20%uB4F1%uB4F1%20%uBB34%uC5C7%uBD80%uD130%20%uC2DC%uC791%uD560%uAE4C%uB97C%20%uB9CE%uC774%20%uACE0%uBBFC%uD574%uBCF4%uC558%uB2E4.%0A%0A%uADF8%uB9AC%uACE0%20%uC774%uC804%uC5D0%20%uC62C%uB838%uB358%20%uAE00%uB4E4%uC744%20%uB2E4%uC2DC%20%uD6D1%uC5B4%uBCF4%uB2E4%uAC00%2C%20%uBE14%uB85C%uADF8%uC758%20%uD750%uB984%uC774%20%uAC11%uC790%uAE30%20%uB04A%uAE30%uB294%uAC83%20%uBCF4%uB2E4%uB294%20%uC774%uC804%uC758%20Context%20%uB97C%20%uC774%uC5B4%uB098%uC544%uAC00%uBA74%uC11C%20%uC880%uB354%20%uBE60%uB974%uAC8C%20%uC9C4%uD589%uD574%uBCF4%uB294%20%uAC83%uC73C%uB85C%20%uC77C%uB2E8%20%uB9C8%uC74C%uC744%20%uBA39%uC5B4%uBCF8%uB2E4.%20%28%uADF8%uB798%uB3C4%20%uAE30%uBCF8%uC740%20%uAE30%uBCF8%uB300%uB85C%20%uAC00%uACE0%2C%20%uC911%uAC04%uC911%uAC04%20%uBC1C%uD45C%uC790%uB8CC%uB3C4%20%uC880%20%uC62C%uB9AC%uACE0%2C%20%uC774%uB7F0%uC800%uB7F0%20%uAD6C%uD604%20%uC0D8%uD50C%uB4E4%uB3C4%20%uC9EC%uC9EC%uC774%20%uC62C%uB9AC%uACA0%uB2E4%5E%5E%3B%3B%29%0A%0A%uB2E4%uC74C%uC740%20Multisig%20Wallet%20%uAD6C%uD604%20%uC608%uC81C%uB97C%201%uD68C%20%uC815%uB3C4%20%uC62C%uB9AC%uACE0%20%uD035%uD558%uAC8C%20%uB9C8%uBB34%uB9AC%20%uD558%uACE0%20%uB610%20%uADF8%20%uB2E4%uC74C%uC73C%uB85C%20%uB118%uC5B4%uAC00%20%uBCF4%uB3C4%uB85D%20%uD558%uB294%uAC78%20%uBAA9%uD45C%uB85C%20%uD574%uBCF4%uACA0%uB2E4%0A%0A%23%23%20References%0Ahttps%3A//medium.com/haechi-labs/parity-multisig-wallet-%25EB%258F%2599%25EA%25B2%25B0%25EA%25B3%25BC-eip999-4dc303cd8e27%0A%0Ahttps%3A//medium.com/hellogold/ethereum-multi-signature-wallets-77ab926ab63b%0A


반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,

Reboot

카테고리 없음 2018. 11. 30. 01:38


Edit

Reboot

220.Blockchain 이더리움 Ethereum 티스토리 ethereum

2년여 라는 정말 긴 시간을 흘려보냈다. 블록체인 안하냐고 물어보는 분들도 계셨지만, 블록체인은 계속 해오고 있었고, 다만 블로그는 그만두고 있었다. 긴 시간, 우리나라에 그렇게 많은 적극적인 블록체인 투자자가 계신줄 몰랐다. OOOO 만들어 줄 수 있겠냐.. (뭐 주로 코인 등) 강의 해줘라 해서 가면 다단계 판인 경우도 있고.. 회의감이 들고 기술 보다는 투기와 관련된 쪽으로 몰려가는 것 같아 블로그나 외부 발표 등을 모두 중지한 상태였다.

스타트업이 아닌 회사 특성 상 (맘에 안드는) 엔터프라이즈 블록체인 위주로 프로젝트를 하며 개인적으로 몇가지 Ethereum dApp 들을 만들어 가며.. Quorum 도 돌려가보며.. 시간을 보내다 보니 벌써 2018년 겨울이 되고… 아싸~

각설하고, 다시 블로그를 통해 기술적인 글들을 올려보려고 한다. 물론 다른 주제들도 쓰겠지만 블록체인 주제는 좀더 각별하다. 그간 다양한 세미나, Meetup 등에 나가 보았지만 Study 를 통해 분석한 내용을 공유하거나 개념을 전파하는 자리가 대부분이었고, 실제 Code를 통해 dApp 을 개발하는 Hands-On 세션은 아직도 Crowd Sale 과 ERC20 Token 개발이 대부분이라는것이 조금 서글프긴 하다.

앞으로 시간 되는대로 이전 글들의 흐름에 맞는, 이어지는 글들도 올려보고, 중간중간 색다르거나 새로운 소식과 기술과 관련한 글들도 올리며 즐겁게 지내보려 한다~

%23%20Reboot%0A@%28220.Blockchain%29%5B%uC774%uB354%uB9AC%uC6C0%2C%20Ethereum%2C%20%uD2F0%uC2A4%uD1A0%uB9AC%2C%20ethereum%5D%0A%0A2%uB144%uC5EC%20%uB77C%uB294%20%uC815%uB9D0%20%uAE34%20%uC2DC%uAC04%uC744%20%uD758%uB824%uBCF4%uB0C8%uB2E4.%20%uBE14%uB85D%uCCB4%uC778%20%uC548%uD558%uB0D0%uACE0%20%uBB3C%uC5B4%uBCF4%uB294%20%uBD84%uB4E4%uB3C4%20%uACC4%uC168%uC9C0%uB9CC%2C%20%uBE14%uB85D%uCCB4%uC778%uC740%20%uACC4%uC18D%20%uD574%uC624%uACE0%20%uC788%uC5C8%uACE0%2C%20%uB2E4%uB9CC%20%uBE14%uB85C%uADF8%uB294%20%uADF8%uB9CC%uB450%uACE0%20%uC788%uC5C8%uB2E4.%20%uAE34%20%uC2DC%uAC04%2C%20%uC6B0%uB9AC%uB098%uB77C%uC5D0%20%uADF8%uB807%uAC8C%20%uB9CE%uC740%20%uC801%uADF9%uC801%uC778%20%uBE14%uB85D%uCCB4%uC778%20%uD22C%uC790%uC790%uAC00%20%uACC4%uC2E0%uC904%20%uBAB0%uB790%uB2E4.%20OOOO%20%uB9CC%uB4E4%uC5B4%20%uC904%20%uC218%20%uC788%uACA0%uB0D0..%20%28%uBB50%20%uC8FC%uB85C%20%uCF54%uC778%20%uB4F1%29%20%uAC15%uC758%20%uD574%uC918%uB77C%20%uD574%uC11C%20%uAC00%uBA74%20%uB2E4%uB2E8%uACC4%20%uD310%uC778%20%uACBD%uC6B0%uB3C4%20%uC788%uACE0..%20%uD68C%uC758%uAC10%uC774%20%uB4E4%uACE0%20%uAE30%uC220%20%uBCF4%uB2E4%uB294%20%uD22C%uAE30%uC640%20%uAD00%uB828%uB41C%20%uCABD%uC73C%uB85C%20%uBAB0%uB824%uAC00%uB294%20%uAC83%20%uAC19%uC544%20%uBE14%uB85C%uADF8%uB098%20%uC678%uBD80%20%uBC1C%uD45C%20%uB4F1%uC744%20%uBAA8%uB450%20%uC911%uC9C0%uD55C%20%uC0C1%uD0DC%uC600%uB2E4.%0A%0A%uC2A4%uD0C0%uD2B8%uC5C5%uC774%20%uC544%uB2CC%20%uD68C%uC0AC%20%uD2B9%uC131%20%uC0C1%20%28%uB9D8%uC5D0%20%uC548%uB4DC%uB294%29%20**%uC5D4%uD130%uD504%uB77C%uC774%uC988%20%uBE14%uB85D%uCCB4%uC778**%20%uC704%uC8FC%uB85C%20%uD504%uB85C%uC81D%uD2B8%uB97C%20%uD558%uBA70%20%uAC1C%uC778%uC801%uC73C%uB85C%20%uBA87%uAC00%uC9C0%20Ethereum%20dApp%20%uB4E4%uC744%20%uB9CC%uB4E4%uC5B4%20%uAC00%uBA70..%20Quorum%20%uB3C4%20%uB3CC%uB824%uAC00%uBCF4%uBA70..%20%uC2DC%uAC04%uC744%20%uBCF4%uB0B4%uB2E4%20%uBCF4%uB2C8%20%uBC8C%uC368%202018%uB144%20%uACA8%uC6B8%uC774%20%uB418%uACE0...%20%uC544%uC2F8%7E%0A%0A%uAC01%uC124%uD558%uACE0%2C%20%uB2E4%uC2DC%20%uBE14%uB85C%uADF8%uB97C%20%uD1B5%uD574%20%uAE30%uC220%uC801%uC778%20%uAE00%uB4E4%uC744%20%uC62C%uB824%uBCF4%uB824%uACE0%20%uD55C%uB2E4.%20%uBB3C%uB860%20%uB2E4%uB978%20%uC8FC%uC81C%uB4E4%uB3C4%20%uC4F0%uACA0%uC9C0%uB9CC%20%uBE14%uB85D%uCCB4%uC778%20%uC8FC%uC81C%uB294%20%uC880%uB354%20%uAC01%uBCC4%uD558%uB2E4.%20%uADF8%uAC04%20%uB2E4%uC591%uD55C%20%uC138%uBBF8%uB098%2C%20Meetup%20%uB4F1%uC5D0%20%uB098%uAC00%20%uBCF4%uC558%uC9C0%uB9CC%20Study%20%uB97C%20%uD1B5%uD574%20**%uBD84%uC11D**%uD55C%20%uB0B4%uC6A9%uC744%20%uACF5%uC720%uD558%uAC70%uB098%20**%uAC1C%uB150**%uC744%20%uC804%uD30C%uD558%uB294%20%uC790%uB9AC%uAC00%20%uB300%uBD80%uBD84%uC774%uC5C8%uACE0%2C%20%uC2E4%uC81C%20**Code**%uB97C%20%uD1B5%uD574%20dApp%20%uC744%20%uAC1C%uBC1C%uD558%uB294%20Hands-On%20%uC138%uC158%uC740%20%uC544%uC9C1%uB3C4%20Crowd%20Sale%20%uACFC%20ERC20%20Token%20%uAC1C%uBC1C%uC774%20%uB300%uBD80%uBD84%uC774%uB77C%uB294%uAC83%uC774%20%uC870%uAE08%20%uC11C%uAE00%uD504%uAE34%20%uD558%uB2E4.%20%0A%0A%uC55E%uC73C%uB85C%20%uC2DC%uAC04%20%uB418%uB294%uB300%uB85C%20%uC774%uC804%20%uAE00%uB4E4%uC758%20%uD750%uB984%uC5D0%20%uB9DE%uB294%2C%20%uC774%uC5B4%uC9C0%uB294%20%uAE00%uB4E4%uB3C4%20%uC62C%uB824%uBCF4%uACE0%2C%20%uC911%uAC04%uC911%uAC04%20%uC0C9%uB2E4%uB974%uAC70%uB098%20%uC0C8%uB85C%uC6B4%20%uC18C%uC2DD%uACFC%20%uAE30%uC220%uACFC%20%uAD00%uB828%uD55C%20%uAE00%uB4E4%uB3C4%20%uC62C%uB9AC%uBA70%20%uC990%uAC81%uAC8C%20%uC9C0%uB0B4%uBCF4%uB824%20%uD55C%uB2E4%7E%20%0A%0A%0A%0A


반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,