SlideShare a Scribd company logo
1 of 39
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
카르다노 코리아 밋업
NEMOLab X Cardano
식순
• 제 1회 서울 Cardano Korea Meetup 제안자 인사
• 참석자 소개
• Business Report
• Technical Report
• Q&A
• Meetup 의 향후 발전 방향 및 운영진 구성안 논의
• 김종현 교수님 신간 소개 및 책 증정
By NEMOLab
식순
• 제1회서울CardanoKoreaMeetup 제안자인사
• 참석자소개
• BusinessReport
• TechnicalReport
• Q&A
• Meetup의향후발전방향및운영진구성안논의
• 김종현교수님신간소개및책증정
By NEMOLab
식순
• 제1회서울CardanoKoreaMeetup 제안자인사
• 참석자소개
• BusinessReport
• TechnicalReport
• Q&A
• Meetup의향후발전방향및운영진구성안논의
• 김종현교수님신간소개및책증정
By NEMOLab
History of Block Chain
BitCoin
AltCoin
Smart
Contract
Ethereum
DAO
• 세계 경제위기
• 공용 통화
• 안전 자산
• ICO
• 신 투자 상품
• 가상화폐? 암호화폐?
• 거래소
• 탈중앙화
• 4차 산업 혁명
• 개인/기술적 이슈
• Data/Network 이
슈
ICON
M2M
(Byteball, IOTA) Raiden N/W,
Lightning
bPaas
(Storage, Compute,
Message, Utility…)
Cardano
(ADA)dApp
EOS
ICO 현황: 2016~2017
• 프로젝트당평균약1,500만달러모금
• 2018년현재약180건의프로젝트가ICO진행중
• 2016대비ICO모금액약3,800%증가
• 2016대비ICO프로젝트수약500%증기
• 프로젝트당평균모금액:1,500만USD
• 2018년현재약180건의프로젝트가ICO진행중
0
500
1000
1500
2000
2500
3000
3500
4000
2016 2017
96
3,700
연도별 ICO 모금액 변화추이
0
50
100
150
200
250
2016 2017
46
235
연도별 ICO 프로젝트 수
출처: coinschedule.com
Cardano
누구나 이용할 수 있는 금융 서비스 구축을 위해 P2P 블록체인 기술을 연구/개발
2020년까지 카르다노 제작, 설계, 유지관리에 주도적 역할 예정
IOHK
(Input Output HongKong)
Emergo
카르다노 블록체인 기술 기반의 상업적 벤처기업의
개발, 창업을 지원하는 기업
카르다노 제단으로써 역할 수행
암호화폐를 통해 안정성 보장 및 직접 송금 가능한 암호화
폐 ADA를 발행
Cardano
 단순한 암호화폐를 넘어 전세계의 개인, 조직과 정부에 의해 사용되는 금융 응용프로그램과 호환, 실행될 수 있는 기술적 플랫폼 지향
 플랫폼을 계층구조로 나눠 쉬운 유지보수
 자체 "소프트 포크”가 가능한 유연성
 스마트 계약(Smart Contract)을 구축하기 위해 별도의 Computing 계층 구축
Cardano는프로그래밍언어로가장안전하다고알려진“Haskell”을사용하는SmartContractPlatform
기존블록체인이가지고있는문제점을3.0에서개선하기위한연구진행중
Cardano
 독창적인 구조의 공학적 원리를 사용한 새로운 유형의 기술
 사생활 보호, 투명성, 확장성을 제공할 수 있는 네트워크가 목표
TCP/IP와 상호 운용 예정이며, 2019년까지 완료 목표
[Network]  Recursive Inter-Network Architecture
기존 블록체인이 가지고 있는 문제점 중 하나인 네트워크 문제를 ‘RINA’ 프로젝트로
해결 시도
 저장할 필요가 있는 데이터의 양만을 줄이는 SideChain기술 활용
 SideChain은 메인 블록체인과 연동되지만 주 네트워크를 방해하지 않음
 다양한 어플리케이션 작동 및 거래 처리 속도 증가 가능
[Data Scaling]
Pruning(전지 작업), Subscriptions(허용), Compression(압축)의 기술 조합으로
데이터 양 축소 시도
 암호화폐 에이다를 지원하는 기본/핵심기술
 지분 증명(POS)을 활용, 더 광범위한 용도로 블록체인의 채굴 속도를 확장
 크립토(Crypto) 2017에서 기술 적용에 대한 입증 확인 완료
[TPS: Transaction Per Second]
비트코인 초당 7건 처리, 이더리움 초당 15~20건 처리로 기존 처리 속도로는
기존 금융 시스템에 도입하기 어려움
카르다노의 새로운 합의메커니즘인 ’우르보로스’적용하여 속도 문제 해결 목
표
Cardano
 카르다노의 비전은 중앙 집중 식 교환을 거치지 않은 거래 시스템 개발
 ‘Cross-Chain Transfer’를 중개자 없이 구현하는 것
 주요 체인과 함께 병렬체인으로 양방향(Two-way peg)의 주체인 연결
[Interoperability: 상호운용성]
암호화된 코인들과 기존 금융권에서 사용하는 SWIFT 및 ACH등이 소통하는 것은
극히 어려운 일
 블록이 생성되어 체인이 연결될 때 마다 보상금 일부가 금고에 적립
 카르다노 생태계 개발 및 발전을 위해 요청 시 투표를 통해 승인 여부 결정
[Sustainability: 지속가능성]
보상금의 일부를 적립 및 요청하는 방식
 우르보로스 프로젝트로 새로운 지분 증명 알고리즘 개발 중
 Coin-Flipping Protocol로 안전한 지분 증명 구현
[Proof of Stake: 지분증명]
다음 블록을 형성할 이해관계자의 장부 자산 크기에 비례하여 무작위 선출
Cardano Timeline
ADA명칭의유래는19세기영국귀족여성이었던‘에이다러브레이스’로,
인류사상최초의프로그래머이며‘프로그래머의어미니’라고도불린다
:21daysleftfornextupdate
현재진행중인프로젝트완료도약50%
Shelley Update
Goguen
SideChains
Cardano SL
Mainnet
Launched
Basho
Performance
Improvement
[2017.09.29]
카르다노 메인넷 런칭 완료
2017.10 ADA 비트렉스 거래 시작
[2018 2Q ~ 3Q 예정]
Open Ouroboros Delegation – 75%
Multisignature Transaction – 35%
Wallet Background – 65%
Consensus Incentive and Fees –
80%
Quantum Resistant Signatures –
50%
Light Client Support – 20%
Human Friendly Addresses – 30%
Networking – 55%
Paper Wallets – 85%
Daedalus Wallet Account – 20%
Ledger Wallet – 50%
[미정]
SideChains – 75%
Accounting Model – 60%
Multi-Currency Ledger – 20%
Goguen Testing Launch – 50%
[미정]
Voting Centre – 20%
21
https://cardanoroadmap.co
m
Ouroboros Delegation
“Thefirstblockchainprotocolbasedonproofofstakewithrigoroussecurityguarantees.”
”철저한보안을담보하는POS기반의첫번째블록체인프로토콜”
[기존의POS]
아직까지비트코인의합의프로토콜인작업증명이무너진적이없으나,이론적으로해킹및어뷰징의가능성은항상존재
⌞51%이상의구성원이배신할경우
⌞Stake-GrindingAttack:마지막블록생성자의기호에따라유리한방향으로랜덤변수조작의가능성
⌞마지막블록의정보를바탕으로랜덤변수를계산하는알고리즘속에서랜덤변수를미리계산하고트랜잭션을임의로뺐다끼우는방식으로변수조작가능성존재
⌞악용될경우이중지불(DoubleSpending)의가능성존재
[우로보로스(Ouroboros)
비트코인작업증명이보여준철학에기반하여,기존지분증명프로토콜이가지고있는한계,그중에서도특히GrindingAttack을막기위해설계
“CoinTossingProtocol”이라불리는프로토콜을인용하여합의알고리즘에적용
⌞추첨을위한“랜덤"변수조작을불가능하게
⌞프로세스중간에위/변조혹은어뷰징이발생할경우“CoinTossingProtocol”은암호화된랜덤변수의조각을보유하고있는나머지인원의조각을합쳐위/변조를시도한인원의변수를복원가
능
Ouroboros Delegation
변수 계산
A
변수 계산
C
변수 계산
B
[Step 1] 랜덤 변수 조각 생성 및 각 참여자와 교환
[Step 2] 코인 토싱의 시작
랜덤 변수 암호화 및 전달
실직적인 정보교환 전 준비단계
[Step 3] 본인의 랜덤 변수 전달
암호화된 랜덤 변수를 전달 받은 사람은 자신의 랜덤 변수를 회신
[Step 4] 암호화된 변수 해독키 전달
미리 받은 암호화된 변수를 해독
정보 교환 마무리
X
배신(통신 두절)
배신한 참여자의 조각 서로 교환
배신한 참여자의 변수 복원
Ouroboros Delegation
안전지분증명(ProvablySecurePOS?
기존POS는현재까지잘작동되는합의프로토콜이지만수학적으로는완전하게뒷받침되어있지는않음
우로보로스는기존의POS시스템을의심하고수학적으로안전하게만들겠다는합의프로토콜
공정하고믿을수있는지분경쟁?
우로보로스의핵심은마지막블록생성자가확률을본인이유리한대로조작하는행위를막는것
우로보로스는코인토싱프로토콜을사용하여랜덤한결과를공유,복합적인결과를통해 블록생성자를선출
위임증명(DelegatedPOS)?
네트워크 처리속도향상을위해카르다노는전체지분의일정지분이상을소유(+위임)하면Committee로참가가능
Committee만블록생성자추첨에참여가능
소규모 지분보유자는Committee에게본인의지분을위임함으로서블록보상획득가능
"비효율”,“아류”,“전송속도”?
기존DPOS프로토콜은함리적인설계를위한현대암호학에서객관화되어있는설계를따르지않으며성능UP
데이터전송이빠르게일어나는것과막대한용량의데이터를각노드가감당할수있는지는완전히다른문제
(전송속도만빠르다고상용화에가까워진것은아니다)
1st case of Cardano: Traxia
에이다의첫번째dApp트랙시아(Traxia):무역금융채권의결손보전
현재전세계에서기업들의매출을회수하지못하고있는자금의규모약43조달러.
트렉시아(Traxia)는이러한자금회수절차를간소화하고토큰화하여현금유동성문제를해결
미수금에대한매출채권을매수,미수금을대신회수해주는것을"팩토링”이라하며,
이러한"팩토링(Factoring)”을에이다블록체인의트렉시아(Traxia)플랫폼위에올려거래를활성화시키려는목적
소규모기업들의현금유동성을해결할수있을것이라기대
Buyer
LiqEase
Seller
Token Market Place
Investor
1. 중개인
2. 토큰화
3.팩토링 회사 연결
4. 대금 회수
“LiqEase”라는 회사를 통해 송장을 토큰화 진행
토큰화가 된 송장을 트렉시아 플랫폼을 통해 “팩토링 회사”와 같은 투자처와 연결
팩토링과정을 통해 바이어에게 대금 회수
해당 과정 속에서 트렉시아는 수수료의 개념으로 트렉시아 토큰(TMT) 사용
식순
• 제1회서울CardanoKoreaMeetup 제안자인사
• 참석자소개
• BusinessReport
• TechnicalReport
• Q&A
• Meetup의향후발전방향및운영진구성안논의
• 김종현교수님신간소개및책증정
By NEMOLab
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Technical Report
Plutus & Haskell 소개
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Plutus 소개
 Plutus 소개 페이지: https://cardanodocs.com/technical/plutus/introduction/
Plutus is a strictly typed pure functional programming language used for defining smart contracts in Cardano.
The syntax is fairly Haskell-like, but unlike Haskell, the language is eagerly evaluated.
Cardano 가상머신 IELE 에서 다중 언어를 지원한다고는 하지만 아직 미지수인 상태
Marlowe 언어를 지원한다는 기사가 있지만 로드맵이나 기술 문서상에는 찾을 수 없음
공식 사이트에서 Plutus를 올려놓고 있는 것으로 보아 일단 Plutus로 개발하는 것이 좋을 것으로 보임
그러나 현재는 Plutus에 대한 교육자료가 너무 부실함
Haskell을 먼저 습득하는 것을 추천
 Cardano 백서: https://whycardano.com/
Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom
transaction scripts.
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Haskell 소개
1. Cardano 플랫폼 코어 자체도 Haskell로 개발
2. Plutus와 달리 현재 여러 분야에서 프로그래밍 언어로 사용중
3. Lisp와 함께 순수 함수형 프로그래밍 언어의 대표 주자로 자리잡고 있음
• Haskell 공식 홈페이지: https://www.haskell.org/
• Haskell Wiki: http://wiki.haskell.org/
• The Haskell Wikibook: http://en.wikibooks.org/wiki/Haskell
• The Haskell Wikibook 한국어 번역 페이지: https://wikidocs.net/book/204
• Online Book: http://learnyouahaskell.com/
• Online Book: http://book.realworldhaskell.org/
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Why is Cardano written in Haskell?
 Cardano 백서 – WHY HASKELL? : https://whycardano.com/science-and-engineering/#why-haskell
1. 엄격한 타입 적용을 통하여 장애 대처에 강함
2. 하스켈의 모듈성과 결합성은 카르다노에 맞춤형 경량 라이브러리를 제공
3. 지난 몇 년간 일반 기업과의 협업을 통해 하스켈 라이브러리들을 상용 어플리케이션 작성에 사용할 수 있게
되었음
4. PureScript의 급격한 진화덕분에 Cardano가 웹브라우저나 모바일 지갑에서 작동하는 것을 기대함
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Haskell 역사 및 배경
1. 1987년 함수형 프로그래밍 언어와 컴퓨터 구조에 관한 학술 총회에서 난립하고 있는 함수형 언어들을 통합
정리해서 훗날 언어 설계의 기반이 될 수 있는 일반적인 순수 함수형 프로그래밍 언어를 만들자는 데에 참가
자들의 뜻이 모였고 위원회가 발족
※ 1958년 미국 MIT의 존 매카시가 FORTRAN으로부터 개발한 LISP가 최초의 함수형 언어다
1970년대에는 ML 언어가 개발되고 1985년 Miranda라는 언어가 이 ML을 참고하여 개발되었으며 다시 Miranda를 바탕으로 Haskell이 개
발되었다. Haskell 이후에도 Erlang이나 ML 계열의 Ocaml 등의 함수형 프로그래밍 언어가 개발되었다
2. 1990년 4월 1일, “Haskell 1.0” 완성
3. 1999년 1월 “Haskell 98” 발표 (현재의 하스켈 언어의 시초)
4. 2009년 11월 “Haskell 2010” 발표. “Haskell 98”과 비교해서 크게 달라진 것이 없음
5. 2016년 4월 “Haskell 2020” 위원회가 출범
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Haskell Compiler 설치
다운로드: https://www.haskell.org/downloads
세 가지 version의 installers를 선택할 수 있지만 가급적이면 “Minimal” 혹은 “Stack” version installers를 다운받아
서 설치할 것을 권장
 설치 완료 후 terminal창을 띄우고 다음과 같이 실행하여 interactive 방식으로 study 및 text 가능
$ ghci
GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
Prelude>
 물론 다음과 같이 하스켈 소스 파일을 직접 compile 및 build할 수도 있다
$ ghc --make -i/Users/username/work/Haskell -o ~/work/Haskell/target ~/work/Haskell/source.hs
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Haskell 특징
1. 순수 함수형 프로그래밍 언어
2. Pattern Matching(문법이 간결하고 직관적임)
3. Lazy Evaluation
4. Type inference
5. Strictly typed function & Type Class
6. High Order Function(고차 함수)
7. Monard
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
함수형 프로그래밍 언어? (사전 지식)
함수형 언어에서는 = (Equal 기호)의 의미가 기존 명령형 언어와 다름
명령형 언어(C++, Java, Python) 함수형 언어
int x = 1;
x = 2;
x = 3;
x = 4;
…
x = 1
x = 2
error
명령형 언어에서는 = 의 의미가 대입을 뜻함 명령형 언어에서는 = 의 의미가 정의를 뜻함
함수형 언어는 명령형 언어와 비교해서 개발 패러다임 자체가 다르다!
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
함수형 프로그래밍 언어?
사전적 의미: 오직 입력값에 의해서만 출력값이 결정되는 수학적 함수만을 사용하는 프로그래밍 언어
명령형 언어(C++, Java, Python) 함수형 언어
functionName(p1, p2,..., pn) {
getGlobalVariable
getDatabaseVariable
getFileContents
…
return result
}
functionName p1 p2 ... pn = p1 p2 ... pn 을 입력으
로 이루어지는 수학적인 함수 정의
functionName의 결과는 인자(p1,p2,…,pn)값이 동일해도 전
역 변수나 Database 혹은 File 등의 외부요인에 의해서 출력
(결과)가 달라짐. 또한 역으로 정의된 함수 외부의 상태를 변
경해서 다른 함수에 부작용(Side Effect)을 줄 수도 있다
functionName의 결과는 인자(p1,p2,…,pn)값이 동일하다면
출력(결과)가 항상 같다. 외부의 상태를 수정하지도 않는다
결론적으로 함수형 언어에서는 부작용(Side Effect)이 없음!
실행 순서의 영향에서 자유롭기 때문에 병행성이 우수하다
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
IOHK 및 Ouroboros 로고
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Pattern Matching?
함수의 매개 변수를 직접 개별 상수나 특수 문자로 치환하여 특정 패턴에서의 정의를 직관적으로 표현하는 것
명령형 언어에서처럼 if 문을 사용했을 경우 Pattern Matching을 사용했을 경우
pts :: Int -> Int
pts x =
if x == 1
then 10
else if x == 2
then 6
else if x == 3
then 4
else if x == 4
then 3
else if x == 5
then 2
else if x == 6
then 1
else 0
pts :: Int -> Int
pts 1 = 10
pts 2 = 6
pts 3 = 4
pts 4 = 3
pts 5 = 2
pts 6 = 1
pts _ = 0
예) 등수별로 포인트 부여하기
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Lazy Evaluation?
사전적 의미:
실제로 계산 결과값이 필요한 순간까지 계산을 미루어 둔다는 의미
특히 무한 루프나 무한 자료값을 다루면서도 필요한 만큼만 연산한다
예) 무한 List
Prelude> [1..]
예) 무한 List Comprehension(리스트 조건제시식)
Prelude> square = [x^2 | x <- [1..]] -- 수학적 표현 { x² | x∈{1, ..} } 와 비교해 보면 거의 유사한 것을 알 수 있다
예) 무한 Loop
Prelude> double :: [Int] -> [Int]
Prelude> double [] = []
Prelude> double (x:xs)
Prelude> | x < 10 = (x * 2) : (double xs)
Prelude> | otherwise = []
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Type Inference?
사전적 의미:
함수 정의시 Type Signature를 코딩하지 않으면 하스켈은 Type Inference라는 절차를 통해 그 Type을 알아낸다
컴파일러가 Type을 추론하는데 정보가 부족한 경우가 있는데 그럴 때는 Type Signature가 의무적이다
예) 간단한 Type Inference
Prelude> isL c = c == ‘l’
Prelude> :t isL
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Strictly typed function & Type Class?
Strictly typed function:
하스켈은 함수에 입력, 출력되는 타입에 대해 엄격하다. 모든 함수는 유일한 principal type을 가진다
예) Strictly typed function와 Type Class의 간단한 예
Prelude> 4 `div` 2 -- 2
Prelude> 4 / 2 -- 2.0
Prelude> 3 / length [1, 2, 3] -- error
Prelude> 3 / fromIntegral(length [1, 2, 3]) -- 1.0
Type Class:
function signature에서 Type variable의 Type을 연관성 있는 Type 그룹으로 제한할 수 있다. 이것을 Type Class
라고 한다. 즉 Type Class는 Type의 Type이라고 할 수 있다
하스켈에 Polymorphism을 부여하여 엄격한 Type 제한 속에서도 유연성을 부여할 수 있다
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Summary of the hierarchy of base Type Classes
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Haskell 장점
출처> 한국하스켈 모임: https://haskell.kr/
🚀️ 성능
하스켈 코드는 고급 언어의 코드에 비교해서 성능이 훨씬 탁월함. 실행 파일로 네이티브 컴파일하며, 언어 설계상의 이점으로
코드에 대해서 고도의 최적화가 가능하고, 컴파일러에 각종 고급 최적화 기술이 적용. 성능에 역점을 둔 라이브러리가 많고 다
양한 벤치마크 도구가 존재
️ 정확성
프로그래밍 언어가 프로그래머의 실수를 감소. 문법이 간결하고 코드가 아름답고 합리적인 설계로 고도의 코드 품질 유지 가
능. 정확하고 유연한 타입 시스템. 수많은 잡기 힘든 버그의 원천을 참조 투명성으로 차단. 알고리즘과 입출력이 깔끔하게 분리.
♆ 동시성・병렬성
상태와 로직을 분리하는 하스켈의 특성 때문에 프로그램이 멀티코어 환경에서 실행될 때 프로그래머가 직접 설계를 바꾸지 않
아도 자동으로 병렬화하여 여러 코어에 작업 배분 가능. 동시성을 직접 통제해야 할 경우 소프트웨어 트랜잭셔널 메모리 등의
선구적인 기술로 안전한 고성능 멀티스레드 프로그래밍을 구현
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Haskell 장점
출처> 한국하스켈 모임: https://haskell.kr/
👨👩👧👦️ 커뮤니티와 생태계
많은 뛰어난 프로그래머들과 프로그래밍 언어 연구자들이 상주하는 하스켈 커뮤니티는 초심자에게 친절하고 호의적인 것으로
유명. 하스켈은 시스템 프로그래밍에서 사용자 애플리케이션까지, 클러스터에서 프론트엔드까지 두루 쓰이고 있으며 풍부한 라
이브러리 생태계를 보유
🔍 디버깅・테스트・프로파일링
대화형 디버거와 참조 투명성으로 디버깅이 용이. 테스트 케이스를 자동 생성하는 자동화 테스트를 최초로 도입했으며, 단위
테스트를 능가하는 편의성과 테스트 범위를 제공함. 코드 블록의 소요 시간, 메모리 사용량, 스레드 전환 등 실행의 모든 측면을
분석해주는 도구 제공
⚒ 유지・보수와 조합
코드를 고쳤을 때 함께 고쳐야 할 부분을 정확하게 추적하므로 코드 유지·보수가 용이함. 각 모듈과 함수의 의도를 타입과 타입
클래스로 엄밀하게 표현할 수 있어 협업에 적합하고, 코드 조합이 쉬우면서도, 잘못된 조합은 자동으로 방지됩니다. 큰 코드베
이스를 계속 고치면서 오류는 막아야 하는 엔터프라이즈 개발에도 유리합니다
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Haskell은 어렵다?
No!
기존 프로그래밍 언어의 주류를 형성하고 있
는 명령형 언어(C++, Java, Python)와 syntax
형태나 로직 구현 개념이 너무 틀려서 상대
적으로 낯설게 느껴지기 때문에 어렵게 느껴
지는 것이지 하스켈 자체가 어려운 것은 아
니다
Yes!
하스켈 자체가 어려운 것이 맞다. 특히 High
Order Function(고차함수)나 Type Class,
Monad의 적용 및 응용이 어렵다고 말하는
개발자들이 많다.
또한 엄격한 Type 적용으로 개발편의성도 낮
다
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
세계 프로그래밍 언어 랭킹(2018)
출처> https://www.tiobe.com/tiobe-index/
Apr 2018 Apr 2017 Programming Language Ratings Change
1 1 Java 15.777% +0.21%
2 2 C 13.589% +6.62%
3 3 C++ 7.218% +2.66%
4 5 Python 5.803% +2.35%
5 4 C# 5.265% +1.69%
6 7 Visual Basic .NET 4.947% +1.70%
7 6 PHP 4.218% +0.84%
8 8 JavaScript 3.492% +0.64%
9 - SQL 2.650% +2.65%
10 11 Ruby 2.018% -0.29%
・・・・・
21 Lisp 1.165%
42 Haskell 0.221%
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
Haskell의 현실
출처> 나무위키 Haskell: https://namu.wiki/w/Haskell
인기는 두말할 것도 없이 바닥이다. 표현력이 좋고, 코드가 간결하며,
알고리즘의 구현이 직관적이고, 부수효과가 없고, 동시성이 보장되는건
좋은데 애초에 함수형 언어라는 놈이 일반적인 프로그래밍 언어와 체계
가 너무나 달라서 쉽게 익숙해지기도 어렵고 현실적으로 사용하기 어려
운 점이 많다. 그 결과로 시도하는 사람 자체가 적어서 잘 아는 사람이
많지 않으니 사용 예가 적고, 사용 예가 적으니 배우려는 사람이 적다,
의 무한 반복
Avoid success at all costs.
- Simon Peyton Jones
식순
• 제1회서울CardanoKoreaMeetup 제안자인사
• 참석자소개
• BusinessReport
• TechnicalReport
• Q&A
• Meetup의향후발전방향및운영진구성안논의
• 김종현교수님신간소개및책증정
By NEMOLab
식순
• 제1회서울CardanoKoreaMeetup 제안자인사
• 참석자소개
• BusinessReport
• TechnicalReport
• Q&A
• Meetup의향후발전방향및운영진구성안논의
• 김종현교수님신간소개및책증정
By NEMOLab
식순
• 제1회서울CardanoKoreaMeetup 제안자인사
• 참석자소개
• BusinessReport
• TechnicalReport
• Q&A
• Meetup의향후발전방향및운영진구성안논의
• 김종현교수님신간소개및책증정
By NEMOLab
NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea
감사합니다.
제 1회 서울 Cardano Meetup

More Related Content

Similar to 1st cardano korea_meetup

[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing SystemOpenStack Korea Community
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack SolutionNalee Jang
 
MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발Oracle Korea
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기John Kim
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준NAVER D2
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
Nodejs를 이용한 개발
Nodejs를 이용한 개발Nodejs를 이용한 개발
Nodejs를 이용한 개발WebFrameworks
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요Nohyun Kee
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기Jay Park
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드Sukjoon Kim
 
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)knight1128
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용중선 곽
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement LearningKiho Suh
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축rockplace
 
오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향Nalee Jang
 
XECon2015 :: [2-4] 오승현 - Chak 서비스 구축기 with XE3
XECon2015 :: [2-4] 오승현 - Chak 서비스 구축기 with XE3XECon2015 :: [2-4] 오승현 - Chak 서비스 구축기 with XE3
XECon2015 :: [2-4] 오승현 - Chak 서비스 구축기 with XE3XpressEngine
 

Similar to 1st cardano korea_meetup (20)

[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution
 
MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
Nodejs를 이용한 개발
Nodejs를 이용한 개발Nodejs를 이용한 개발
Nodejs를 이용한 개발
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드
 
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축
 
오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향
 
XECon2015 :: [2-4] 오승현 - Chak 서비스 구축기 with XE3
XECon2015 :: [2-4] 오승현 - Chak 서비스 구축기 with XE3XECon2015 :: [2-4] 오승현 - Chak 서비스 구축기 with XE3
XECon2015 :: [2-4] 오승현 - Chak 서비스 구축기 with XE3
 

1st cardano korea_meetup

  • 1. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea 카르다노 코리아 밋업 NEMOLab X Cardano
  • 2. 식순 • 제 1회 서울 Cardano Korea Meetup 제안자 인사 • 참석자 소개 • Business Report • Technical Report • Q&A • Meetup 의 향후 발전 방향 및 운영진 구성안 논의 • 김종현 교수님 신간 소개 및 책 증정 By NEMOLab
  • 3. 식순 • 제1회서울CardanoKoreaMeetup 제안자인사 • 참석자소개 • BusinessReport • TechnicalReport • Q&A • Meetup의향후발전방향및운영진구성안논의 • 김종현교수님신간소개및책증정 By NEMOLab
  • 4. 식순 • 제1회서울CardanoKoreaMeetup 제안자인사 • 참석자소개 • BusinessReport • TechnicalReport • Q&A • Meetup의향후발전방향및운영진구성안논의 • 김종현교수님신간소개및책증정 By NEMOLab
  • 5. History of Block Chain BitCoin AltCoin Smart Contract Ethereum DAO • 세계 경제위기 • 공용 통화 • 안전 자산 • ICO • 신 투자 상품 • 가상화폐? 암호화폐? • 거래소 • 탈중앙화 • 4차 산업 혁명 • 개인/기술적 이슈 • Data/Network 이 슈 ICON M2M (Byteball, IOTA) Raiden N/W, Lightning bPaas (Storage, Compute, Message, Utility…) Cardano (ADA)dApp EOS
  • 6. ICO 현황: 2016~2017 • 프로젝트당평균약1,500만달러모금 • 2018년현재약180건의프로젝트가ICO진행중 • 2016대비ICO모금액약3,800%증가 • 2016대비ICO프로젝트수약500%증기 • 프로젝트당평균모금액:1,500만USD • 2018년현재약180건의프로젝트가ICO진행중 0 500 1000 1500 2000 2500 3000 3500 4000 2016 2017 96 3,700 연도별 ICO 모금액 변화추이 0 50 100 150 200 250 2016 2017 46 235 연도별 ICO 프로젝트 수 출처: coinschedule.com
  • 7. Cardano 누구나 이용할 수 있는 금융 서비스 구축을 위해 P2P 블록체인 기술을 연구/개발 2020년까지 카르다노 제작, 설계, 유지관리에 주도적 역할 예정 IOHK (Input Output HongKong) Emergo 카르다노 블록체인 기술 기반의 상업적 벤처기업의 개발, 창업을 지원하는 기업 카르다노 제단으로써 역할 수행 암호화폐를 통해 안정성 보장 및 직접 송금 가능한 암호화 폐 ADA를 발행 Cardano  단순한 암호화폐를 넘어 전세계의 개인, 조직과 정부에 의해 사용되는 금융 응용프로그램과 호환, 실행될 수 있는 기술적 플랫폼 지향  플랫폼을 계층구조로 나눠 쉬운 유지보수  자체 "소프트 포크”가 가능한 유연성  스마트 계약(Smart Contract)을 구축하기 위해 별도의 Computing 계층 구축
  • 8. Cardano는프로그래밍언어로가장안전하다고알려진“Haskell”을사용하는SmartContractPlatform 기존블록체인이가지고있는문제점을3.0에서개선하기위한연구진행중 Cardano  독창적인 구조의 공학적 원리를 사용한 새로운 유형의 기술  사생활 보호, 투명성, 확장성을 제공할 수 있는 네트워크가 목표 TCP/IP와 상호 운용 예정이며, 2019년까지 완료 목표 [Network]  Recursive Inter-Network Architecture 기존 블록체인이 가지고 있는 문제점 중 하나인 네트워크 문제를 ‘RINA’ 프로젝트로 해결 시도  저장할 필요가 있는 데이터의 양만을 줄이는 SideChain기술 활용  SideChain은 메인 블록체인과 연동되지만 주 네트워크를 방해하지 않음  다양한 어플리케이션 작동 및 거래 처리 속도 증가 가능 [Data Scaling] Pruning(전지 작업), Subscriptions(허용), Compression(압축)의 기술 조합으로 데이터 양 축소 시도  암호화폐 에이다를 지원하는 기본/핵심기술  지분 증명(POS)을 활용, 더 광범위한 용도로 블록체인의 채굴 속도를 확장  크립토(Crypto) 2017에서 기술 적용에 대한 입증 확인 완료 [TPS: Transaction Per Second] 비트코인 초당 7건 처리, 이더리움 초당 15~20건 처리로 기존 처리 속도로는 기존 금융 시스템에 도입하기 어려움 카르다노의 새로운 합의메커니즘인 ’우르보로스’적용하여 속도 문제 해결 목 표
  • 9. Cardano  카르다노의 비전은 중앙 집중 식 교환을 거치지 않은 거래 시스템 개발  ‘Cross-Chain Transfer’를 중개자 없이 구현하는 것  주요 체인과 함께 병렬체인으로 양방향(Two-way peg)의 주체인 연결 [Interoperability: 상호운용성] 암호화된 코인들과 기존 금융권에서 사용하는 SWIFT 및 ACH등이 소통하는 것은 극히 어려운 일  블록이 생성되어 체인이 연결될 때 마다 보상금 일부가 금고에 적립  카르다노 생태계 개발 및 발전을 위해 요청 시 투표를 통해 승인 여부 결정 [Sustainability: 지속가능성] 보상금의 일부를 적립 및 요청하는 방식  우르보로스 프로젝트로 새로운 지분 증명 알고리즘 개발 중  Coin-Flipping Protocol로 안전한 지분 증명 구현 [Proof of Stake: 지분증명] 다음 블록을 형성할 이해관계자의 장부 자산 크기에 비례하여 무작위 선출
  • 10. Cardano Timeline ADA명칭의유래는19세기영국귀족여성이었던‘에이다러브레이스’로, 인류사상최초의프로그래머이며‘프로그래머의어미니’라고도불린다 :21daysleftfornextupdate 현재진행중인프로젝트완료도약50% Shelley Update Goguen SideChains Cardano SL Mainnet Launched Basho Performance Improvement [2017.09.29] 카르다노 메인넷 런칭 완료 2017.10 ADA 비트렉스 거래 시작 [2018 2Q ~ 3Q 예정] Open Ouroboros Delegation – 75% Multisignature Transaction – 35% Wallet Background – 65% Consensus Incentive and Fees – 80% Quantum Resistant Signatures – 50% Light Client Support – 20% Human Friendly Addresses – 30% Networking – 55% Paper Wallets – 85% Daedalus Wallet Account – 20% Ledger Wallet – 50% [미정] SideChains – 75% Accounting Model – 60% Multi-Currency Ledger – 20% Goguen Testing Launch – 50% [미정] Voting Centre – 20% 21 https://cardanoroadmap.co m
  • 11. Ouroboros Delegation “Thefirstblockchainprotocolbasedonproofofstakewithrigoroussecurityguarantees.” ”철저한보안을담보하는POS기반의첫번째블록체인프로토콜” [기존의POS] 아직까지비트코인의합의프로토콜인작업증명이무너진적이없으나,이론적으로해킹및어뷰징의가능성은항상존재 ⌞51%이상의구성원이배신할경우 ⌞Stake-GrindingAttack:마지막블록생성자의기호에따라유리한방향으로랜덤변수조작의가능성 ⌞마지막블록의정보를바탕으로랜덤변수를계산하는알고리즘속에서랜덤변수를미리계산하고트랜잭션을임의로뺐다끼우는방식으로변수조작가능성존재 ⌞악용될경우이중지불(DoubleSpending)의가능성존재 [우로보로스(Ouroboros) 비트코인작업증명이보여준철학에기반하여,기존지분증명프로토콜이가지고있는한계,그중에서도특히GrindingAttack을막기위해설계 “CoinTossingProtocol”이라불리는프로토콜을인용하여합의알고리즘에적용 ⌞추첨을위한“랜덤"변수조작을불가능하게 ⌞프로세스중간에위/변조혹은어뷰징이발생할경우“CoinTossingProtocol”은암호화된랜덤변수의조각을보유하고있는나머지인원의조각을합쳐위/변조를시도한인원의변수를복원가 능
  • 12. Ouroboros Delegation 변수 계산 A 변수 계산 C 변수 계산 B [Step 1] 랜덤 변수 조각 생성 및 각 참여자와 교환 [Step 2] 코인 토싱의 시작 랜덤 변수 암호화 및 전달 실직적인 정보교환 전 준비단계 [Step 3] 본인의 랜덤 변수 전달 암호화된 랜덤 변수를 전달 받은 사람은 자신의 랜덤 변수를 회신 [Step 4] 암호화된 변수 해독키 전달 미리 받은 암호화된 변수를 해독 정보 교환 마무리 X 배신(통신 두절) 배신한 참여자의 조각 서로 교환 배신한 참여자의 변수 복원
  • 13. Ouroboros Delegation 안전지분증명(ProvablySecurePOS? 기존POS는현재까지잘작동되는합의프로토콜이지만수학적으로는완전하게뒷받침되어있지는않음 우로보로스는기존의POS시스템을의심하고수학적으로안전하게만들겠다는합의프로토콜 공정하고믿을수있는지분경쟁? 우로보로스의핵심은마지막블록생성자가확률을본인이유리한대로조작하는행위를막는것 우로보로스는코인토싱프로토콜을사용하여랜덤한결과를공유,복합적인결과를통해 블록생성자를선출 위임증명(DelegatedPOS)? 네트워크 처리속도향상을위해카르다노는전체지분의일정지분이상을소유(+위임)하면Committee로참가가능 Committee만블록생성자추첨에참여가능 소규모 지분보유자는Committee에게본인의지분을위임함으로서블록보상획득가능 "비효율”,“아류”,“전송속도”? 기존DPOS프로토콜은함리적인설계를위한현대암호학에서객관화되어있는설계를따르지않으며성능UP 데이터전송이빠르게일어나는것과막대한용량의데이터를각노드가감당할수있는지는완전히다른문제 (전송속도만빠르다고상용화에가까워진것은아니다)
  • 14. 1st case of Cardano: Traxia 에이다의첫번째dApp트랙시아(Traxia):무역금융채권의결손보전 현재전세계에서기업들의매출을회수하지못하고있는자금의규모약43조달러. 트렉시아(Traxia)는이러한자금회수절차를간소화하고토큰화하여현금유동성문제를해결 미수금에대한매출채권을매수,미수금을대신회수해주는것을"팩토링”이라하며, 이러한"팩토링(Factoring)”을에이다블록체인의트렉시아(Traxia)플랫폼위에올려거래를활성화시키려는목적 소규모기업들의현금유동성을해결할수있을것이라기대 Buyer LiqEase Seller Token Market Place Investor 1. 중개인 2. 토큰화 3.팩토링 회사 연결 4. 대금 회수 “LiqEase”라는 회사를 통해 송장을 토큰화 진행 토큰화가 된 송장을 트렉시아 플랫폼을 통해 “팩토링 회사”와 같은 투자처와 연결 팩토링과정을 통해 바이어에게 대금 회수 해당 과정 속에서 트렉시아는 수수료의 개념으로 트렉시아 토큰(TMT) 사용
  • 15. 식순 • 제1회서울CardanoKoreaMeetup 제안자인사 • 참석자소개 • BusinessReport • TechnicalReport • Q&A • Meetup의향후발전방향및운영진구성안논의 • 김종현교수님신간소개및책증정 By NEMOLab
  • 16. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Technical Report Plutus & Haskell 소개
  • 17. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Plutus 소개  Plutus 소개 페이지: https://cardanodocs.com/technical/plutus/introduction/ Plutus is a strictly typed pure functional programming language used for defining smart contracts in Cardano. The syntax is fairly Haskell-like, but unlike Haskell, the language is eagerly evaluated. Cardano 가상머신 IELE 에서 다중 언어를 지원한다고는 하지만 아직 미지수인 상태 Marlowe 언어를 지원한다는 기사가 있지만 로드맵이나 기술 문서상에는 찾을 수 없음 공식 사이트에서 Plutus를 올려놓고 있는 것으로 보아 일단 Plutus로 개발하는 것이 좋을 것으로 보임 그러나 현재는 Plutus에 대한 교육자료가 너무 부실함 Haskell을 먼저 습득하는 것을 추천  Cardano 백서: https://whycardano.com/ Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts.
  • 18. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Haskell 소개 1. Cardano 플랫폼 코어 자체도 Haskell로 개발 2. Plutus와 달리 현재 여러 분야에서 프로그래밍 언어로 사용중 3. Lisp와 함께 순수 함수형 프로그래밍 언어의 대표 주자로 자리잡고 있음 • Haskell 공식 홈페이지: https://www.haskell.org/ • Haskell Wiki: http://wiki.haskell.org/ • The Haskell Wikibook: http://en.wikibooks.org/wiki/Haskell • The Haskell Wikibook 한국어 번역 페이지: https://wikidocs.net/book/204 • Online Book: http://learnyouahaskell.com/ • Online Book: http://book.realworldhaskell.org/
  • 19. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Why is Cardano written in Haskell?  Cardano 백서 – WHY HASKELL? : https://whycardano.com/science-and-engineering/#why-haskell 1. 엄격한 타입 적용을 통하여 장애 대처에 강함 2. 하스켈의 모듈성과 결합성은 카르다노에 맞춤형 경량 라이브러리를 제공 3. 지난 몇 년간 일반 기업과의 협업을 통해 하스켈 라이브러리들을 상용 어플리케이션 작성에 사용할 수 있게 되었음 4. PureScript의 급격한 진화덕분에 Cardano가 웹브라우저나 모바일 지갑에서 작동하는 것을 기대함
  • 20. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Haskell 역사 및 배경 1. 1987년 함수형 프로그래밍 언어와 컴퓨터 구조에 관한 학술 총회에서 난립하고 있는 함수형 언어들을 통합 정리해서 훗날 언어 설계의 기반이 될 수 있는 일반적인 순수 함수형 프로그래밍 언어를 만들자는 데에 참가 자들의 뜻이 모였고 위원회가 발족 ※ 1958년 미국 MIT의 존 매카시가 FORTRAN으로부터 개발한 LISP가 최초의 함수형 언어다 1970년대에는 ML 언어가 개발되고 1985년 Miranda라는 언어가 이 ML을 참고하여 개발되었으며 다시 Miranda를 바탕으로 Haskell이 개 발되었다. Haskell 이후에도 Erlang이나 ML 계열의 Ocaml 등의 함수형 프로그래밍 언어가 개발되었다 2. 1990년 4월 1일, “Haskell 1.0” 완성 3. 1999년 1월 “Haskell 98” 발표 (현재의 하스켈 언어의 시초) 4. 2009년 11월 “Haskell 2010” 발표. “Haskell 98”과 비교해서 크게 달라진 것이 없음 5. 2016년 4월 “Haskell 2020” 위원회가 출범
  • 21. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Haskell Compiler 설치 다운로드: https://www.haskell.org/downloads 세 가지 version의 installers를 선택할 수 있지만 가급적이면 “Minimal” 혹은 “Stack” version installers를 다운받아 서 설치할 것을 권장  설치 완료 후 terminal창을 띄우고 다음과 같이 실행하여 interactive 방식으로 study 및 text 가능 $ ghci GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help Prelude>  물론 다음과 같이 하스켈 소스 파일을 직접 compile 및 build할 수도 있다 $ ghc --make -i/Users/username/work/Haskell -o ~/work/Haskell/target ~/work/Haskell/source.hs
  • 22. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Haskell 특징 1. 순수 함수형 프로그래밍 언어 2. Pattern Matching(문법이 간결하고 직관적임) 3. Lazy Evaluation 4. Type inference 5. Strictly typed function & Type Class 6. High Order Function(고차 함수) 7. Monard
  • 23. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea 함수형 프로그래밍 언어? (사전 지식) 함수형 언어에서는 = (Equal 기호)의 의미가 기존 명령형 언어와 다름 명령형 언어(C++, Java, Python) 함수형 언어 int x = 1; x = 2; x = 3; x = 4; … x = 1 x = 2 error 명령형 언어에서는 = 의 의미가 대입을 뜻함 명령형 언어에서는 = 의 의미가 정의를 뜻함 함수형 언어는 명령형 언어와 비교해서 개발 패러다임 자체가 다르다!
  • 24. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea 함수형 프로그래밍 언어? 사전적 의미: 오직 입력값에 의해서만 출력값이 결정되는 수학적 함수만을 사용하는 프로그래밍 언어 명령형 언어(C++, Java, Python) 함수형 언어 functionName(p1, p2,..., pn) { getGlobalVariable getDatabaseVariable getFileContents … return result } functionName p1 p2 ... pn = p1 p2 ... pn 을 입력으 로 이루어지는 수학적인 함수 정의 functionName의 결과는 인자(p1,p2,…,pn)값이 동일해도 전 역 변수나 Database 혹은 File 등의 외부요인에 의해서 출력 (결과)가 달라짐. 또한 역으로 정의된 함수 외부의 상태를 변 경해서 다른 함수에 부작용(Side Effect)을 줄 수도 있다 functionName의 결과는 인자(p1,p2,…,pn)값이 동일하다면 출력(결과)가 항상 같다. 외부의 상태를 수정하지도 않는다 결론적으로 함수형 언어에서는 부작용(Side Effect)이 없음! 실행 순서의 영향에서 자유롭기 때문에 병행성이 우수하다
  • 25. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea IOHK 및 Ouroboros 로고
  • 26. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Pattern Matching? 함수의 매개 변수를 직접 개별 상수나 특수 문자로 치환하여 특정 패턴에서의 정의를 직관적으로 표현하는 것 명령형 언어에서처럼 if 문을 사용했을 경우 Pattern Matching을 사용했을 경우 pts :: Int -> Int pts x = if x == 1 then 10 else if x == 2 then 6 else if x == 3 then 4 else if x == 4 then 3 else if x == 5 then 2 else if x == 6 then 1 else 0 pts :: Int -> Int pts 1 = 10 pts 2 = 6 pts 3 = 4 pts 4 = 3 pts 5 = 2 pts 6 = 1 pts _ = 0 예) 등수별로 포인트 부여하기
  • 27. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Lazy Evaluation? 사전적 의미: 실제로 계산 결과값이 필요한 순간까지 계산을 미루어 둔다는 의미 특히 무한 루프나 무한 자료값을 다루면서도 필요한 만큼만 연산한다 예) 무한 List Prelude> [1..] 예) 무한 List Comprehension(리스트 조건제시식) Prelude> square = [x^2 | x <- [1..]] -- 수학적 표현 { x² | x∈{1, ..} } 와 비교해 보면 거의 유사한 것을 알 수 있다 예) 무한 Loop Prelude> double :: [Int] -> [Int] Prelude> double [] = [] Prelude> double (x:xs) Prelude> | x < 10 = (x * 2) : (double xs) Prelude> | otherwise = []
  • 28. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Type Inference? 사전적 의미: 함수 정의시 Type Signature를 코딩하지 않으면 하스켈은 Type Inference라는 절차를 통해 그 Type을 알아낸다 컴파일러가 Type을 추론하는데 정보가 부족한 경우가 있는데 그럴 때는 Type Signature가 의무적이다 예) 간단한 Type Inference Prelude> isL c = c == ‘l’ Prelude> :t isL
  • 29. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Strictly typed function & Type Class? Strictly typed function: 하스켈은 함수에 입력, 출력되는 타입에 대해 엄격하다. 모든 함수는 유일한 principal type을 가진다 예) Strictly typed function와 Type Class의 간단한 예 Prelude> 4 `div` 2 -- 2 Prelude> 4 / 2 -- 2.0 Prelude> 3 / length [1, 2, 3] -- error Prelude> 3 / fromIntegral(length [1, 2, 3]) -- 1.0 Type Class: function signature에서 Type variable의 Type을 연관성 있는 Type 그룹으로 제한할 수 있다. 이것을 Type Class 라고 한다. 즉 Type Class는 Type의 Type이라고 할 수 있다 하스켈에 Polymorphism을 부여하여 엄격한 Type 제한 속에서도 유연성을 부여할 수 있다
  • 30. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Summary of the hierarchy of base Type Classes
  • 31. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Haskell 장점 출처> 한국하스켈 모임: https://haskell.kr/ 🚀️ 성능 하스켈 코드는 고급 언어의 코드에 비교해서 성능이 훨씬 탁월함. 실행 파일로 네이티브 컴파일하며, 언어 설계상의 이점으로 코드에 대해서 고도의 최적화가 가능하고, 컴파일러에 각종 고급 최적화 기술이 적용. 성능에 역점을 둔 라이브러리가 많고 다 양한 벤치마크 도구가 존재 ️ 정확성 프로그래밍 언어가 프로그래머의 실수를 감소. 문법이 간결하고 코드가 아름답고 합리적인 설계로 고도의 코드 품질 유지 가 능. 정확하고 유연한 타입 시스템. 수많은 잡기 힘든 버그의 원천을 참조 투명성으로 차단. 알고리즘과 입출력이 깔끔하게 분리. ♆ 동시성・병렬성 상태와 로직을 분리하는 하스켈의 특성 때문에 프로그램이 멀티코어 환경에서 실행될 때 프로그래머가 직접 설계를 바꾸지 않 아도 자동으로 병렬화하여 여러 코어에 작업 배분 가능. 동시성을 직접 통제해야 할 경우 소프트웨어 트랜잭셔널 메모리 등의 선구적인 기술로 안전한 고성능 멀티스레드 프로그래밍을 구현
  • 32. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Haskell 장점 출처> 한국하스켈 모임: https://haskell.kr/ 👨👩👧👦️ 커뮤니티와 생태계 많은 뛰어난 프로그래머들과 프로그래밍 언어 연구자들이 상주하는 하스켈 커뮤니티는 초심자에게 친절하고 호의적인 것으로 유명. 하스켈은 시스템 프로그래밍에서 사용자 애플리케이션까지, 클러스터에서 프론트엔드까지 두루 쓰이고 있으며 풍부한 라 이브러리 생태계를 보유 🔍 디버깅・테스트・프로파일링 대화형 디버거와 참조 투명성으로 디버깅이 용이. 테스트 케이스를 자동 생성하는 자동화 테스트를 최초로 도입했으며, 단위 테스트를 능가하는 편의성과 테스트 범위를 제공함. 코드 블록의 소요 시간, 메모리 사용량, 스레드 전환 등 실행의 모든 측면을 분석해주는 도구 제공 ⚒ 유지・보수와 조합 코드를 고쳤을 때 함께 고쳐야 할 부분을 정확하게 추적하므로 코드 유지·보수가 용이함. 각 모듈과 함수의 의도를 타입과 타입 클래스로 엄밀하게 표현할 수 있어 협업에 적합하고, 코드 조합이 쉬우면서도, 잘못된 조합은 자동으로 방지됩니다. 큰 코드베 이스를 계속 고치면서 오류는 막아야 하는 엔터프라이즈 개발에도 유리합니다
  • 33. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Haskell은 어렵다? No! 기존 프로그래밍 언어의 주류를 형성하고 있 는 명령형 언어(C++, Java, Python)와 syntax 형태나 로직 구현 개념이 너무 틀려서 상대 적으로 낯설게 느껴지기 때문에 어렵게 느껴 지는 것이지 하스켈 자체가 어려운 것은 아 니다 Yes! 하스켈 자체가 어려운 것이 맞다. 특히 High Order Function(고차함수)나 Type Class, Monad의 적용 및 응용이 어렵다고 말하는 개발자들이 많다. 또한 엄격한 Type 적용으로 개발편의성도 낮 다
  • 34. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea 세계 프로그래밍 언어 랭킹(2018) 출처> https://www.tiobe.com/tiobe-index/ Apr 2018 Apr 2017 Programming Language Ratings Change 1 1 Java 15.777% +0.21% 2 2 C 13.589% +6.62% 3 3 C++ 7.218% +2.66% 4 5 Python 5.803% +2.35% 5 4 C# 5.265% +1.69% 6 7 Visual Basic .NET 4.947% +1.70% 7 6 PHP 4.218% +0.84% 8 8 JavaScript 3.492% +0.64% 9 - SQL 2.650% +2.65% 10 11 Ruby 2.018% -0.29% ・・・・・ 21 Lisp 1.165% 42 Haskell 0.221%
  • 35. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea Haskell의 현실 출처> 나무위키 Haskell: https://namu.wiki/w/Haskell 인기는 두말할 것도 없이 바닥이다. 표현력이 좋고, 코드가 간결하며, 알고리즘의 구현이 직관적이고, 부수효과가 없고, 동시성이 보장되는건 좋은데 애초에 함수형 언어라는 놈이 일반적인 프로그래밍 언어와 체계 가 너무나 달라서 쉽게 익숙해지기도 어렵고 현실적으로 사용하기 어려 운 점이 많다. 그 결과로 시도하는 사람 자체가 적어서 잘 아는 사람이 많지 않으니 사용 예가 적고, 사용 예가 적으니 배우려는 사람이 적다, 의 무한 반복 Avoid success at all costs. - Simon Peyton Jones
  • 36. 식순 • 제1회서울CardanoKoreaMeetup 제안자인사 • 참석자소개 • BusinessReport • TechnicalReport • Q&A • Meetup의향후발전방향및운영진구성안논의 • 김종현교수님신간소개및책증정 By NEMOLab
  • 37. 식순 • 제1회서울CardanoKoreaMeetup 제안자인사 • 참석자소개 • BusinessReport • TechnicalReport • Q&A • Meetup의향후발전방향및운영진구성안논의 • 김종현교수님신간소개및책증정 By NEMOLab
  • 38. 식순 • 제1회서울CardanoKoreaMeetup 제안자인사 • 참석자소개 • BusinessReport • TechnicalReport • Q&A • Meetup의향후발전방향및운영진구성안논의 • 김종현교수님신간소개및책증정 By NEMOLab
  • 39. NEMOLAB CO.,LTD. www.nemolab.kr #735,524, Seolleung-ro, Gangnam-gu, Seoul, 06161, Korea 감사합니다. 제 1회 서울 Cardano Meetup

Editor's Notes

  1. History of Blockchain ICO 현황 Cardano Cardano Timeline Ouroboros Delegation 1st case of Cardano: Traxia
  2. History of Blockchain ICO 현황 Cardano Cardano Timeline Ouroboros Delegation 1st case of Cardano: Traxia
  3. 2008년 미국발 경제위기를 시작으로 은행이 도산하는 사태를 맞으며 많은 사람들이 안전 자산(은행을 믿지 못하는)을 찾기 시작했습니다. 이에 비트코인 개발자로 알려진 “사토시?”라는 인물은 블록체인을 통해 거래 사실을 기록 확인하는 “암호화폐” 비트코인을 만들었습니다. 2009년에 시작된 “비트코인”과 “알트코인”을 “블록체인 1.0”으로 바로 주목을 받지는 못했으나, 시간이 지나 이더리움의 등장과 함께 “BlockChain 2.0”시대를 맞으며 새로운 투자 상품으로 많은 사람들에게 인식 되었고, 많은 기업들이 탈중앙화를 얘기하며 ICO에 뛰어들었다. 정식으로 거래소가 오픈 되며, 더 많은 사람들이 투자를 위해 발걸음을 옮겼습니다. 블록체인 2.0 시대를 대표하는 “이더리움”또한 완벽한 코어 플랫폼은 아니었습니다. 그래서 블록체인 2.0에서 불안 요소였던 호환 문제, 네트워킹 문제, 보안 문제, 데이터 저장 문제를 해결하겠다는 도전장과 함께 "카르다노” 및 “EOS”등이 산업에 나오며 블록체인 3.0 시대를 맞이하였다 블록체인 2.0부터 시작되어 3.0시대를 맞이하는 현재까지도, 탈중앙화, 신뢰기반이라는 단어를 앞세워 블록체인을 기반으로 하는 많은 서비스(dApp)들이 출시 되었고, 4차 산업 혁명이라는 단어가 뉴스를 도배했으며, 국내에서는 “암호화폐”냐 “가상화폐”냐 혹은 “블록체인”이라는 기술을 코인과 따로 때서 생각할 수 있냐?를 두고 설왕설래가 있었다 현재 2.0 시대의 대표주자인 이더리움 진영을 포함한 3.0시대의 대표주자인 카르다노 진영에서도 많은 프로젝트를 진행하며 기존에 가지고 있는 이슈를 해결하는 노력은 진행중이다
  4. 블록체인, ICO, 관련서비스가 얼마나 빠르게 증가/성장하고 있는지 숫자만 보아도 알 수 있다. 2016년 대비 ICO 모금액 수준이나, 프로젝트 수가 비교가 안 될 정도로 증가 하였다. 2018년인 올해는 더 많이 증가할 예정으로 2/4분기를 채 다 지나지 않은 현시점에 약 180건의 ICO가 진행 중인 것으로 나타났다.
  5. 2015년 찰스 호스킨스는 이더리움 출신 제러미 우드와 함께 IOHK를 설립
  6. Pruning(전지 작업): 경험 규칙이 어떤 가지(tree)나 규칙의 일부가 잘리거나 무시되어도 좋은가를 결정해 줌으로써 탐색 공간을 줄여주기 위한 것으로 전문가 시스템에서 결정 트리의 가지를 어디에서 자를지를 결정하는 것 TPS, Network, Data Scaling, 상호운용성, 지속가능성, 지분 증명
  7. [Step 1] 참여자는 각각의 형태로 랜덤변수 생성 나머지 네트워크 구성자의 수에 맞게 분할 분할된 랜덤 변수를 참여자에게 전달 [Step 2] 분할된 랜덤 변수를 받는 시점에서 코인 토싱 시작 랜덤 변수 암호화 및 전달 아직까지는 어떤 정보교환도 이루어지지 않았으며, 정보교환을 위한 준비 단계 [Step 3] 암호화된 랜덤 변수를 받은 네트워크 구성자들은 본인의 랜덤 변수로 회신 암호화되지 않은 진짜 랜덤 변수 [Step 4] 랜덤 변수를 회신 받은 인원들은 암호화된 변수 해독을 위한 키 전달 암호화된 변수를 해독함으로서 상대방의 변수 취득 정보 교환의 마무리 [Step 5] 네트워크 구성원들은 각자 최종 변수 계산 공정한 랜덤 변수 생성 [If] 스텝4에서 A배신을 하여 통신을 끊을 경우 코인 토싱 프로토콜은 스텝1에서 받았던 A의 조각을 나머지 인원이 교환하여 합칠 수 있다 한 참가자가 배신을 하더라도 배신한 인원의 변수를 얻은 후 복원이 가능하다
  8. 블록생성속도 이오스: 0.5초 스팀/빗웨어: 3초 우로보로스: 20초 10%의 위협속에 99%의 신뢰를 바탕으로 5분의 처리속도 주장
  9. 스위스에서 시작한 Traxia는 중소기업의 보험으로 매출 채권을 즉시 유동 자산으로 변경할 수 있게 도와줍니다 카르다노 플랫폼을 기반하며 카르다노 인큐베이터인 Emergo가 마이그레이션을 수행합니다.
  10. 3 / fromIntegral (length [1,2,3])
  11. 3 / fromIntegral (length [1,2,3])
  12. 3 / fromIntegral (length [1,2,3])
  13. Go 언어는 19위
  14. 3 / fromIntegral (length [1,2,3])