Skip to main content

Advanced Smart Contracts & Decentralized Applications (고급 스마트 계약 및 탈중앙화 애플리케이션)


POSTECH
Enrollment is Closed

강좌 소개

비트코인은 중앙은행 없이 P2P 방식으로 개인들간에 안전하게 송금 등의 금융거래가 가능함을 보여주었습니다. 이렇게 등장한 블록체인 기술에 스마트 컨트랙 기술을 적용한 이더리움같은 블록체인 플랫폼들은 디지탈 화폐 거래를 넘어 다양한 서비스를 탈중앙화 애플리케이션(디앱 혹은 DApp)으로 개발할 수 있게 해주고 있습니다.

블록체인에서 말하는 탈중앙화는 누구에게도 통제받지않으며 많은 수의 독립된 요소들로 이루어져 있어서 장애가 일어날 확률이 낮다는 장점이 있습니다. 따라서 검열에 저항할 수 있는 플랫폼으로도 주목을 받고 있습니다. 웹에서도 중앙집권화 문제와 개인 데이터의 보호를 위해서 블록체인을 비롯한 다양한 분산형 웹 기술에 주목을 하고 있습니다.

이번 강의에서는 이런 탈중앙화와 관련된 기술의 흐름을 블록체인을 중심으로 살펴 볼 것입니다. 분산화 기술로서 P2P 시스템의 작동 원리에 대해서 알아보고, 디앱을 기획, 설계 및 배포하는 실습을 할 것입니다. 또한, IPFS같은 기술을 통해서 분산형 웹 기술에 대해서도 알아 볼 것입니다.

이 강좌를 마친 후에는 탈중앙화에 대한 이해도가 높아지며 스마트 컨트랙 및 디앱을 설계하고 개발하는 방법을 익히게 됩니다. 이 강좌는 블록체인과 스마트 컨트랙에 대한 간단한 지식과 경험이 있는 수강자들을 대상으로 합니다. 블록체인에 대한 기본적인 개념이나 스마트 컨트랙 개발 입문을 위해서는1) ‘블록체인 및 암호화폐 입문’, 혹은2) ‘스마트 계약 및 응용’ 과목을 추천합니다.


교재 안내

수업은 별도의 교재 없이 진행되며 수업에 사용된 슬라이드는 과목 온라인 페이지를 통해서 제공됩니다.


평가 방법

  • ㅇ 온라인 강의 Quiz성적: 30%
  • ㅇ 숙제: 30%
  • ㅇ 프로젝트: 40%


프로젝트 소개

  • ㅇ 5주차 프로젝트 1 (10%): Decentralized Application Development 1 (Whitepaper)
  • ㅇ 10주차 프로젝트 2 (15%): Decentralized Application Development 2 (Smart Contracts Development)
  • ㅇ 15주차 프로젝트 3 (15%): Decentralized Application Development 3 (Testing, Deployment, Documentation)


과목 프로젝트로 탈중앙화 애플리케이션(디앱)을 개발할 것입니다. 프로젝트 1에서는 탈중앙화 서비스를 기획하고 제안서를 만들어 볼 것입니다. 이를 바탕으로 프로젝트 2에서는 이더리움 기반의 스마트컨트랙을 개발합니다. 프로젝트 3에서는 최종적으로 디앱을 완성하고 테스트와 배포를 하게 됩니다. 이렇게 기획부터 배포까지를 프로젝트를 통해서 실습해봄으로써 디앱을 자신있게 개발할 수 있는 역량을 키우는 것이 과목 프로젝트의 목적입니다.


강좌 목차

주차주차
1Smart contracts and Decentralized ApplicationsCourse Introduction
Decentralization
DApp Example
WEEK1 Discussion
2Peer-to-Peer NetworksA History of Peer-to-Peer Networks
Peer-to-Peer Concepts
Bitcoin: A Peer-to-Peer Electronic Cash System
WEEK2 Discussion
3Building Decentralized Applications 1Decentralized Applications
Jonston's Law
The InterPlanetary File System
WEEK3 Discussion
4Building Decentralized Applications 2
Decentralized Storage with IPFS
Smart Contracts
Truffle
 UI Integration
 Deploy to Testnet
WEEK4 Discussion
5Project Week 1Decentralized Application Development 1 (Whitepaper)
WEEK 5 Discussion
6Smart Contracts and Ethereum Virtual MachineSmart Contracts
Ethereum Virtual Machine
WEEK 6 Discussion
7Solidity Programming
Programming in Solidity
Data Types
Structure of a Contract
WEEK 7 Discussion
8Solidity Programming By ExamplesPonzi Schemes
Lottery Contracts
Voting Contracts
WEEK 8 Discussion
9Advanced Solidity Programming
Writing Tests in Solidity
Handling Errors
Libraries in Solidity
Oracle Services
Upgradable Smart Contracts
WEEK 9 Discussion
10Project Week 2Decentralized Application Development 2 (Smart Contracts Development)
WEEK 10 Discussion
11Integration with UIInteracting with the Contracts
Event Logging
Truffle for Decentralized Applications
WEEK 11 Discussion
12Decentralized IdentityBlockchain-based Identity
Digital Identity
Decentralized Identity
WEEK 12 Discussion
13Build Secure Smart ContractsProgram Analysis
WEEK 13 Discussion
14Decentralized Everything
Decentralized Web
Decentralization or Nothing
WEEK 14 Discussion
15Project Week 3Decentralized Application Development 3 (Testing, Deployment, Documentation)
WEEK 15 Discussion


Instructor

채원석

Microsoft Software Engineer

포스텍 정보통신대학원 겸직교수

Toyota Technological Institute at Chicago 박사

포스텍 석사


Staff

고경찬

포스텍 컴퓨터공학과

이채현

포스텍 컴퓨터공학과