cryptography
-
이더리움의 KZG Polynomial Commitments Schemecryptography 2025. 7. 31. 22:35
Intro Blob은 저장된 “다수의 데이터가 압축된 데이터”에 “특정 데이터”가 포함되었는지 검증 할 수 있다. Blob이 이러한 “데이터 압축”과 “검증 매커니즘”이 가능한 이유는 SNARK의 성질을 갖는 KZG Polynomial Commitments Scheme(이하 KZG) 때문이다. 이번 시리즈는 KZG의 암호학적 내용과 이더리움이 어떤 목표를 위해 KZG를 사용했는지에 대해 다룰 예정이다.이더리움의 KZG는 EIP-4844에서 도입된 Blob 데이터를 위한 암호학적 증명 스킴이다. 본 글을 읽기에 앞서 Blob의 개념과 역할에 대해 설명한 「Deep-Dive-Into-EIP-4844-Blob-Carrying-Transactions」를 먼저 참고하면 이해에 도움이 될 것이다. SNARKSNAR..
-
타원곡선 암호학(Elliptic Curve Cryptography)의 Preliminariescryptography 2025. 7. 29. 12:29
Intro이 문서는 타원곡선 암호학(Elliptic Curve Cryptography, 이하 ECC)를 학문적으로 기술하는 문서는 아니다. 다만, 개발자들이 암호학의 원리를 잘 이해하고 실수 없이 코딩할 수 있도록 도움을 주기 위해 암호학에 대한 이해가 필요하다고 생각한다. 논문의 영역과 개발자에게 필요한 지식의 영역 그 경계선까지, 즉 어느정도 심도 깊게 내용을 다룰 예정이다. 타원곡선 암호학를 이해하는 데에 꼭 필요한 수학적 개념들우리가 보게 될 실용화된 블록체인은 타원곡선 암호학(Elliptic Curve Cryptography, 이하 ECC)을 기반으로 하기 때문에 이를 이해하기 위해서는 ECC의 이론적 지식은 물론 ECC의 기반이 되는 수학적 지식이 꼭 필요하다. ECC를 이해하기 위해 꼭 이해..
-
비탈릭 부테린이 제안하는 Solidity기반의 슈노르 서명(schnorr signature) 검증cryptography 2025. 7. 28. 15:54
Intro슈노르(이하 Schnorr) 서명은 비트코인과 이더리움에서 사용하는 ECDSA와 같이 타원곡선(Elliptic Curve Cryptography:ECC) 암호학 기반의 디지털 서명 방식중 하나이다. 하지만 다른 디지털 서명에 비해 연산이 간단해 더 빠르게 처리할 수 있으며, 선형성(linearity)을 갖는 알고리즘으로, 멀티서명(multi-signature)과 배치 검증(batch verification) 같은 기능을 지원할 수 있다.이더리움은 현재 타원곡선 암호학 중 Secp256k1을 사용하며, Schnorr 서명도 이와 호환 가능한 타원곡선이다. 하지만 이더리움은 Pre-Compiled Contract를 통해 스마트 컨트랙트에서 ECDSA 서명 검증 함수(ecrecover)지원한다. 이로..
-
모듈러 연산과 암호학cryptography 2024. 2. 24. 18:48
Intro암호학은 엄청나게 큰 숫자를 반복적으로 연산하여 복호화를 아주 어렵게 또는 불가능하게 만드는 수학적 학문이다. 이 과정에서 무한(infinite)한 수를 대상으로 암호 체계를 구성하면 더 안전하리라 생각할 수도 있지만, 아무리 안전해도 만약 현대의 컴퓨터로 서명하거나 암호화하는 데에 너무 긴 시간이 걸린다면 그 활용 범위가 제한적이다. 때문에 수용 가능한 수준의 안전성을 담보하면서 효율적인 수준의 수체계와 연산 방식을 위해 유한(finite)한 개수를 가지는 범위를 선호한다. 이를 위해서 암호학에서는 기초 연산으로 modular 연산을 주로 이용한다. 기본 다지기modular 연산을 한글로 ‘합동연산’이라 부르며 나머지 연산을 기반으로 하는 수학적 연산이다. 예를 들어 5 \(\div\) 3의..
-
확장된 유클리드 알고리즘cryptography 2024. 2. 14. 12:20
Intro블록체인의 보안성, 합의 알고리즘 디지털 서명, 지갑 등 블록체인의 기본적인 개념과 기능은 전부 암호학으로 구현되어 있다. 블록체인과 암호학은 아주 밀접한 관련이 있는 두 분야이다. 개발자들이 암호학의 원리를 잘 이해하고 실수 없이 코딩할 수 있도록 도움을 주기 위해 암호학에 대한 이해가 필요하다고 생각한다. 논문의 영역과 개발자에게 필요한 지식의 영역 그 경계선까지, 즉 어느정도 심도 깊게 내용을 다룰 예정이다. 기본 다지기암호학을 위해 유클리드 알고리즘을 처음으로 배우는 이유는 다음 시리즈에 다룰 모듈러 연산을 이해하기 위함이다. 특히 모듈러 연산은 이더리움 블록체인에서 사용하는 타워 곡선 암호학(Elliptic Curve Cryptography:ECC)을 이해하기 위해 아주 중요한 수학적 ..