채원석
포스텍 정보통신대학원 겸직교수
포스텍 정보통신대학원 겸직교수
Toyota Technological Institute at Chicago 박사
포스텍 석사
비트코인은 중앙은행 없이 P2P 방식으로 개인들간에 안전하게 송금 등의 금융거래가 가능함을 보여주었습니다. 이렇게 등장한 블록체인 기술에 스마트 컨트랙 기술을 적용한 이더리움같은 블록체인 플랫폼들은 디지탈 화폐 거래를 넘어 다양한 서비스를 탈중앙화 애플리케이션(디앱 혹은 DApp)으로 개발할 수 있게 해주고 있습니다.
블록체인에서 말하는 탈중앙화는 누구에게도 통제받지않으며 많은 수의 독립된 요소들로 이루어져 있어서 장애가 일어날 확률이 낮다는 장점이 있습니다. 따라서 검열에 저항할 수 있는 플랫폼으로도 주목을 받고 있습니다. 웹에서도 중앙집권화 문제와 개인 데이터의 보호를 위해서 블록체인을 비롯한 다양한 분산형 웹 기술에 주목을 하고 있습니다.
이번 강의에서는 이런 탈중앙화와 관련된 기술의 흐름을 블록체인을 중심으로 살펴 볼 것입니다. 분산화 기술로서 P2P 시스템의 작동 원리에 대해서 알아보고, 디앱을 기획, 설계 및 배포하는 실습을 할 것입니다. 또한, IPFS같은 기술을 통해서 분산형 웹 기술에 대해서도 알아 볼 것입니다.
이 강좌를 마친 후에는 탈중앙화에 대한 이해도가 높아지며 스마트 컨트랙 및 디앱을 설계하고 개발하는 방법을 익히게 됩니다. 이 강좌는 블록체인과 스마트 컨트랙에 대한 간단한 지식과 경험이 있는 수강자들을 대상으로 합니다. 블록체인에 대한 기본적인 개념이나 스마트 컨트랙 개발 입문을 위해서는1) ‘블록체인 및 암호화폐 입문’, 혹은2) ‘스마트 계약 및 응용’ 과목을 추천합니다.
수업은 별도의 교재 없이 진행되며 수업에 사용된 슬라이드는 과목 온라인 페이지를 통해서 제공됩니다.
과목 프로젝트로 탈중앙화 애플리케이션(디앱)을 개발할 것입니다. 프로젝트 1에서는 탈중앙화 서비스를 기획하고 제안서를 만들어 볼 것입니다. 이를 바탕으로 프로젝트 2에서는 이더리움 기반의 스마트컨트랙을 개발합니다. 프로젝트 3에서는 최종적으로 디앱을 완성하고 테스트와 배포를 하게 됩니다. 이렇게 기획부터 배포까지를 프로젝트를 통해서 실습해봄으로써 디앱을 자신있게 개발할 수 있는 역량을 키우는 것이 과목 프로젝트의 목적입니다.
주차 | 주차 | |
---|---|---|
1 | Smart contracts and Decentralized Applications | Course Introduction |
Decentralization | ||
DApp Example | ||
WEEK1 Discussion | ||
2 | Peer-to-Peer Networks | A History of Peer-to-Peer Networks |
Peer-to-Peer Concepts | ||
Bitcoin: A Peer-to-Peer Electronic Cash System | ||
WEEK2 Discussion | ||
3 | Building Decentralized Applications 1 | Decentralized Applications |
Jonston's Law | ||
The InterPlanetary File System | ||
WEEK3 Discussion | ||
4 | Building Decentralized Applications 2 | Decentralized Storage with IPFS |
Smart Contracts | ||
Truffle | ||
UI Integration | ||
Deploy to Testnet | ||
WEEK4 Discussion | ||
5 | Project Week 1 | Decentralized Application Development 1 (Whitepaper) |
WEEK 5 Discussion | ||
6 | Smart Contracts and Ethereum Virtual Machine | Smart Contracts |
Ethereum Virtual Machine | ||
WEEK 6 Discussion | ||
7 | Solidity Programming | Programming in Solidity |
Data Types | ||
Structure of a Contract | ||
WEEK 7 Discussion | ||
8 | Solidity Programming By Examples | Ponzi Schemes |
Lottery Contracts | ||
Voting Contracts | ||
WEEK 8 Discussion | ||
9 | Advanced Solidity Programming | Writing Tests in Solidity |
Handling Errors | ||
Libraries in Solidity | ||
Oracle Services | ||
Upgradable Smart Contracts | ||
WEEK 9 Discussion | ||
10 | Project Week 2 | Decentralized Application Development 2 (Smart Contracts Development) |
WEEK 10 Discussion | ||
11 | Integration with UI | Interacting with the Contracts |
Event Logging | ||
Truffle for Decentralized Applications | ||
WEEK 11 Discussion | ||
12 | Decentralized Identity | Blockchain-based Identity |
Digital Identity | ||
Decentralized Identity | ||
WEEK 12 Discussion | ||
13 | Build Secure Smart Contracts | Program Analysis |
WEEK 13 Discussion | ||
14 | Decentralized Everything | Decentralized Web |
Decentralization or Nothing | ||
WEEK 14 Discussion | ||
15 | Project Week 3 | Decentralized Application Development 3 (Testing, Deployment, Documentation) |
WEEK 15 Discussion |
포스텍 정보통신대학원 겸직교수
포스텍 정보통신대학원 겸직교수
Toyota Technological Institute at Chicago 박사
포스텍 석사