1. The document introduces Kim Seung-ju, a professor at Korea University known for his work in cybersecurity and cryptography. It lists his educational background and career highlights, which include being the head of cryptography teams at KISA and publications in top security conferences.
2. The document then discusses various cryptocurrencies that aim to improve anonymity compared to Bitcoin, such as Dash, Monero, and Zcash. It explains the technological approaches used by these cryptocurrencies like coin mixing for Dash, ring signatures and stealth addresses for Monero, and zero-knowledge proofs for Zcash.
3. Zcash is highlighted for using a cryptographic technique called zk-SNARKs to provide anonymity for transactions without revealing details
8. 고려대학교정보보호대학원
마스터 제목 스타일 편집
8
(출처: 보안 기술의 양면성 - 첩보 기술이 프라이버시 보호 기술로, 그것이 다시 범죄 도구로 사용되는 아이러니
https://blog.naver.com/amhoin/221888098640)
분산형 익명 인터넷 통신 시스템 – TOR
9. 고려대학교정보보호대학원
마스터 제목 스타일 편집
9
(출처: 보안 기술의 양면성 - 첩보 기술이 프라이버시 보호 기술로, 그것이 다시 범죄 도구로 사용되는 아이러니
https://blog.naver.com/amhoin/221888098640)
분산형 익명 인터넷 통신 시스템 – TOR
10. 고려대학교정보보호대학원
마스터 제목 스타일 편집
“Recent studies have demonstrated that
about 40% of Bitcoin users are able to
be identified through these public
transaction logs. This is due, in part, to
Bitcoin’s increased reliance on a few
large accounts.”
(Preston Miller, "Virtual Currencies and their Relevance to
Digital Forensics“, Apr 9, 2017)
10
비트코인의 익명성
13. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Unlinkability of Bitcoin Transactions
If Alice conducts two bitcoin transactions
using different bitcoin addresses
("pseudonyms"), how hard is it for those
transactions to be linked?
13
[참고] 익명성(Anonymity)?
16. 고려대학교정보보호대학원
마스터 제목 스타일 편집
비트코인이 갖는 보안성에 사생활 보호
전송(Private Send) 기능을 제공하여 더 나은
익명성을 보장하고자 등장함.
초기에는 엑스코인(Xcoin), 다크코인(DarkCoin)
등으로 명명하였으나, 이미지 제고를 위해
대시(Dash)로 변경함.
비트코인의 트랜잭션이 송금자와 수신자의
개인정보가 모두 공개되어 익명성이
부족하고 전송속도가 느리다는 점을
보완하기 위해,
거래시 마스터노드가 3개 이상의 거래 내역을
섞어서 송금하는 코인조인(coinjoin) 방식을
사용함으로써 추적을 어렵게 함.
대쉬(Dash) (2014)
16
17. 고려대학교정보보호대학원
마스터 제목 스타일 편집
(√: zk-STARKs)
[1] Bitcoin Beginner, “Privacy Coin Comparison”, December 30, 2017
[2] Felix Küster, "Privacy Coins Guide: Comparison of Anonymous Cryptocurrencies", Aug 23, 2017
모네로(Monero) (2014)
17
20. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Bitcoin
Input (UTXO)
Signature (using the
secp256k1 curve)
Transactions
All inputs clearly linked to
previous tx
Monero
TXO TXO TXO TXO TXO
Single Input
Ring signature
(Schnorr, using the
Ed25519 curve)
Transactions
Inputs linked to more than
one previous tx
모네로와 Ring 전자서명 (2001)
20
22. 고려대학교정보보호대학원
마스터 제목 스타일 편집
A group member can generate signature
without revealing his identity.
If dispute occurs, TTP can identify member,
etc.
[참고] Group Signature (1991)
22
23. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Ring signatures are similar to group
signatures but differ in two key ways :
first, there is no way to revoke the
anonymity of an individual signature, and
second, any group of users can be used as a
group without additional setup.
[참고] Ring Signature (2001)
23
27. 고려대학교정보보호대학원
마스터 제목 스타일 편집
(√: zk-STARKs)
[1] Bitcoin Beginner, “Privacy Coin Comparison”, December 30, 2017
[2] Felix Küster, "Privacy Coins Guide: Comparison of Anonymous Cryptocurrencies", Aug 23, 2017
Zcash (2016)
27
28. 고려대학교정보보호대학원
마스터 제목 스타일 편집
2013년 존스 홉킨스 대학의 연구
프로젝트로 제로코인(Zerocoin)이 개발된
후, 개선을 통해 제로캐시(Zerocash)로
발전하였고, 창업주인 주코 윌콕스(Zooko
Wilcox)에 의해 2016년에
지캐시(Zcash)가 탄생함.
암호학 관련 스타트업 경험이 풍부한 주코
윌콕스와 암호학의 대가인 데이비드
차움(David Chaum)이 공동으로 개발하였으며,
JP모건과의 파트너십으로 큰 관심을 받았음.
28
Zcash (2016)
29. 고려대학교정보보호대학원
마스터 제목 스타일 편집
비트코인의 불완전한 익명성을 보완하고,
대시와 모네로의 단점으로 지적되던
투명성을 확보하고자 개발.
대시(Dash)의 마스터 믹싱과
모네로(Monero)의 링서명은 거래주체를
특정할 수 없게 하지만, 거래의 투명성도
보장할 수 없다는 한계를 가짐.
영지식증명을 구현한 프로토콜을 사용하여,
익명성과 투명성을 동시에 확보.
29
Zcash (2016)
31. 고려대학교정보보호대학원
마스터 제목 스타일 편집
31
Zcash in Detail
In the Bitcoin protocol, a user that wants to spend money
must have the necessary UTXO. In Zcash, however,
transaction outputs are called commitments, and to spend
a commitment, the spender must publish a nullifier using
his spending key.
[Input Values or Note]
Commitment = HASH(recipient address, amount, secret
unique number ("rho") corresponding to the specific note,
random value)
[Spend a Note]
Nullifier = HASH(spending key, rho)
The resulting hash should not match an existing nullifier, to
prevent double spending, or spending a note that was already spent.
32. 고려대학교정보보호대학원
마스터 제목 스타일 편집
32
But, even if the spender shows through the nullifier
(with rho), s/he still has not shown that the note
itself exists and is not fraudulently created by the
spender.
To accomplish this without revealing the detailed
addresses and spent amounts, the sender (or
prover in the zk-SNARK) of the private, shielded
transaction also provides a zero-knowledge proof,
or a string 𝜋𝜋, using a proving key, that the following
statements are true :
The commitments and nullifiers were correctly
computed.
The sum of input values and the sum of output values of
the transaction equal each other, and the corresponding
notes exist.
The sender has authority to spend the input notes of the
transaction (by verifying the spending keys).
Zcash in Detail
34. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Zero-Knowledge,
Succinct : Both the size of the proof and the
time required to verify it grow much more
slowly than the computation to be verified,
Non-Interactive : Without interaction between
the prover and the verifier,
Arguments : Computationally bounded prover
(Relaxed version of zero-knowledge proof. This
means that unbounded/PPT adversary can make
an honest verifier accept a proof of a wrong
statement.),
of Knowledge : It is not possible for the prover
to construct a proof without knowing a certain
so-called witness for the statement; formally, for
any prover able to produce a valid proof, there
is an extractor capable of extracting a witness
(“the knowledge”) for the statement.
Zcash와 영지식 증명, zk-SNARKs (2012)
34
35. 고려대학교정보보호대학원
마스터 제목 스타일 편집
35
(출처: Anca Nitulescu, "zk-SNARKs: A Gentle Introduction")
[참고] zk-SNARKs Prehistory Timeline
36. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Conversion Process from Code to zk-SNARKs
Code → Algebraic Circuit → R1CS → QAP → zk-SNARKs
(Flattening)
Zcash와 영지식 증명, zk-SNARKs (2012)
36
⇒
Algebraic Circuit R1CS
QAP
37. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Conversion Process from Code to zk-SNARKs
Code → Algebraic Circuit → R1CS → QAP → zk-SNARKs
(Flattening)
def f( x ) :
y = x∗∗3
return x+y+5
Task : Prove that the function f is executed correctly with the secret
input 3 and the public input 35.
37
Zcash와 영지식 증명, zk-SNARKs (2012)
38. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Conversion Process from Code to zk-SNARKs
Code → Algebraic Circuit → R1CS → QAP → zk-SNARKs
(Flattening)
def f( x ) :
sym_1 = x ∗ x
y = sym_1 ∗ x
sym_2 = y + x
out = sym_2 + 5
38
Zcash와 영지식 증명, zk-SNARKs (2012)
x x x x
f(x)의 계산 과정을 분해하여 연산 회로(Arithmetic Circuit)로 표현
※ 연산 회로 : 논리 회로에서 AND / OR 등의 논리 게이트들을 사칙연산 게이트로 변경한 형태
39. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Conversion Process from Code to zk-SNARKs
Code → Algebraic Circuit → R1CS → QAP → zk-SNARKs
(Flattening)
39
Zcash와 영지식 증명, zk-SNARKs (2012)
R1CS (Rank 1 Constraint System) : 연산 회로를 구성하는 각각의 게이트(x, sym_1, y, sym_2, out)에 대응되는 witness c를 계산
※ 오직 비밀 입력값 x=3을 알고 있는 사람만이 f(3)의 연산과정을 분해해 witness c를 계산할 수 있음.)
40. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Conversion Process from Code to zk-SNARKs
Code → Algebraic Circuit → R1CS → QAP → zk-SNARKs
(Flattening)
From Vectors To Polynomials by Lagrange Interpolation
Construct polynomial vj with values vj(i) = V[i][j] (value element of
vector i in position j). For instance :
- v1(1)=0, v1(2)=0, v1(3)=0, v1(4)=5
- v1(x)=5/6〮x3-5〮x2+55/6〮x-5
- v2(1)=1, v2(2)=0, v2(3)=1, v2(4)=0
- v2(x)=-2/3〮x3+5〮x2+34/3〮x+8
- Repeat for w, y
- Finally add the polynomials together to obtain v, w, y, because we
can check all the constraints simultaneously!
40
Zcash와 영지식 증명, zk-SNARKs (2012)
QAP (Quadratic Arithmetic Programs) : R1CS의 경우 전체 수식에 대한 유효성을 검증하기 위해, 각각의 게이트 별로 유효성을
확인해야 함. 그러나 이는 검증자에게 많은 검증 횟수를 요구한다는 문제점이 있음. QAP는 이러한 단점을 극복하기 위해 R1CS상의
각각의 벡터 표현들을 하나의 다항식으로 합쳐서 표현함.
41. 고려대학교정보보호대학원
마스터 제목 스타일 편집
Conversion Process from Code to zk-SNARKs
Code → Algebraic Circuit → R1CS → QAP → zk-SNARKs
(Flattening)
Verifier checks that the prover knows the right polynomial, and hence
the right witness in Zero-Knowledge via homomorphic encryption.
41
Zcash와 영지식 증명, zk-SNARKs (2012)