BSL 아카데미 1기 공부장
BSL 비트코인 개발자 아카데미 1기 수강 기간 동안 공부한 내용들을 책갈피하고 나만의 방식으로 이해해 나가보자
BSL 아카데미 1기 공부장
BSL 비트코인 개발자 아카데미 1기 수강 기간 동안 공부한 내용들을 책갈피하고 나만의 방식으로 이해해 나가보자
✅피터 토드의 퀴즈와 상금 2013년 피터 토드는 자신의 2.48BTC 비트코인을 잠그고, 다음 문제를 냈다.
“해시 충돌을 찾아라.” 2017년 구글이 이 문제를 풀어서 가져갔다.
그 기록이 남아있다.
피터 토드가 낸 문제 : https://blockstream.info/tx/8d31992805518fd62daa3bdd2a5c4fd2cd3054c9b3dca1d78055e9528cff6adc 구글이 푼 정답 : https://blockstream.info/tx/7f890d5b983d947477c79b79bc4c6842eef81a54a1f6358020576d41339e26a
유한체
Q. 유한체에서 “p로 나눈다”고 할 때 p는 뭘 의미해?
A. p는 ‘prime’, 즉 소수(prime number) 를 의미하는 기호로 쓰인다. 유한체에서 자주 등장하는 p는 대부분 “소수인 법(mod) 값”이다.
Q. 프라임 넘버가 소수라는데, 소수점이 있는 그 소수야?
A. 아니다.
Q. 7은 소수라고 하는데, 6일 때는 왜 안 돼? p=6도 있을 수 있는 거 아닌가?
A.
유한체(특히 p개의 원소를 가진 체)는 p가 소수일 때만 잘 동작한다.
p가 소수여야만:
p=6처럼 소수가 아니면, 곱셈에 대한 역원이 없는 원소들이 생겨서 “체”가 되지 못한다. (예: mod 6 에서는 2·3=0 이라서 문제들이 생김)
Q. 모듈러 연산은 어떻게 이해하면 돼?
A.
a % p 또는 a mod p.예시:
유한체 GF(p)에서는 원소들이 {0, 1, 2, …, p-1}이고,
덧셈·곱셈은 항상 이런 식으로 계산 후 p로 나머지를 취한다.
Q. p=7인 유한체에서는 구체적으로 어떻게 계산해?
A. 원소 집합: {0,1,2,3,4,5,6} 이고, 모든 연산은 % 7로 한다.
Q. 항등원, 역원은 느낌만 기억하면 어떻게?
A.
항등원(identity): “연산해도 값이 안 변하게 해 주는 원소”
역원(inverse): “연산했을 때 항등원이 되게 해 주는 원소”
유한체 GF(p)에서는 0을 제외한 모든 원소가 곱셈 역원을 가진다.
예: p=7일 때
Q. 유한체를 감으로만 정리하면?
A.
{0,1,…,p-1}.개인키과 공개키
[내 이해 방식으로 핵심 정리]
[자세히]
y² = x³ + 7 (a=0, b=7)pG = (gx, gy)nG는 바둑판 위의 출발점 한 칸.G를 계속 “점 덧셈”으로 더해가면:
1G, 2G, 3G, …, nG 이렇게 원형으로 한 바퀴 도는 궤적이 생긴다.nG에서 다시 출발점(무한원점)으로 돌아오고, 그래서 가능한 점 수가 n개로 유한하다.e는 그저 1 이상 n-1 이하의 정수 하나.P = eGP는 궤적 위에서 e번째 위치에 있는 점.(x, y)가 공개키.e = 1 이면 P = 1G = G (생성점)e = 2 이면 P = 2G (G에서 한 칸 더 간 점)e를 이진수(비트)로 보고,Q. 타원 곡선 세계는 언제 생겨?
A. 먼저 정해져 있다. y² = x³ + 7, p, G, n이 규격(secp256k1)으로 이미 결정돼 있음.
Q. 개인키는 이 세계와 어떻게 연결돼?
A. 개인키 e는 “G에서 몇 칸 갈지”를 말해주는 정수. 이걸 타원 곡선 세계에 대입해서 eG 위치의 점을 고르는 것.
Q. 공개키는 정확히 뭐야?
A. P = eG로 얻어진 그 한 점의 (x, y) 좌표.
Q. 왜 이걸로 안전해?
A. e와 G를 알면 P(=eG)는 쉽게 구하지만, P와 G를 알고 거꾸로 e를 찾는 건 거의 불가능한 수준(이산 로그 문제).
HD 지갑 (Type-2, Hierarchy Deterministic Wallets)
• BIP-32 표준에 정의된 가장 발전된 형태의 지갑이다.
• 하나의 공통 시드로 부터 트리구조의 무제한에 가까운 개인키를 만들 수 있다.
• 현재 가장 널리 사용되는 방식은 BIP-44 에 5단계 경로를 갖는 HD 지갑이다.
공통시드로부터 트리 구조로 파생된 개인키들
현재 우리가 쓰는 것은 BIP-44
• BIP-44가 제안한 HD 지갑의 경로: m /purpose' / coin_type' / account' / change / address_index
• 각 레벨에서 BIP-32에서 나타난 단절 유도 방법(')이 사용되는 것을 확인할 수 있다.
• BIP-44 적용 예시
coin
account
chain
add
... See more• 체인코드는 자식 개인키를 만들기 위한 엔트로피로 사용된다.