[가상화폐] 비트코인의 원리 PART 2: 전자서명이란? (1)

image.png

안녕하세요 여러분. 참새입니다.

image.png

가상화폐 = 중앙기관들을 믿어야하는 ‘신용 (trust)’ 없이 ‘암호화 방식 (cryptography)’을 사용하여서 장부 기록들을 믿을 수 있도록 만들어주는 ‘장부 (ledger)’


간단하게, 가상화폐를 거래 기록 장부라고 생각하시면 됩니다. (왜 가상화폐를 장부라고 생각해도 괜찮은지는 비트코인의 원리 시리즈를 통해서 하나씩 알아보도록 하겠습니다!)

‘장부 (ledger)’ 하나만 덩그러니 존재하게 된다면 장부의 기록들을 완전히 신뢰할 수가 없기 때문에 ‘전자서명 (digital signature)’이 함께 필요하게 됩니다. 전자 서명이 어떤 역할을 하기에 장부를 ‘신뢰할 수 있는 장부’로 만들어줄 수 있을까요?

image.png

누가 누구한테 얼마를 줬고 받았는지 기록을 할 수 있도록 공용 장부 (communal ledger) 하나를 만들어서 모든 거래 기록들을 기입을 하게되면 장부의 마지막 결과값에 따라서 누가 누구한테 얼마를 줘야하고 받아야하는지에 대한 돈 계산을 끝낼 수 있습니다. 예시를 들어보겠습니다.

(1). 앨리스가 밥한테 $20를 빌려줬습니다.
(2). 밥이 앨리스에게 $30를 빌려줬습니다.
(3). 앨리스가 밥한테 $$5를 빌려줬습니다.

앨리스와 밥이 위의 거래 기록들을 공용 장부에 입력하게 되면 마지막 결과값은:

“앨리스가 밥한테 총 $25를 빌려줬고, 밥이 앨리스에게 총 $30를 빌려줬습니다.”

즉, 3번의 거래들이 있었지만 모든 거래 기록들을 요약하자면 밥이 앨리스에게 $5를 빌려준 것과 동일하기 때문에 나중에 엘리스가 밥한테 $5를 갚으면 되겠죠!

image.png

프로토콜 (protocol)이란 따라야 하는 규칙과 약속입니다. 공용 장부를 효과적으로 사용하기 위해서 우선 기본적으로 두 가지 규칙들이 있어야 합니다.

• 공용 장부를 쓰는 모든 사람들은 장부에 거래 기록을 입력할 수 있다.
• 장부의 마지막 결과값에 따라서 돈 계산을 끝낸다. (앨리스가 밥한테 결과적으로 $5만 주면 되는 것처럼요 ^^)

이 두 가지 규칙들을 따르게 된다면 공용 장부를 쓰는 사람들은 훨씬 더 편리하게 돈 거래를 할 수 있을 것입니다.

문제는, 공용 장부를 쓰는 모든 사람들이 장부에 거래 기록을 입력할 수 있기 때문에 ‘조작’이 가능하다는 것입니다. 앨리스가 첫 거래에서 밥한테 $20를 빌려줬는데 밥이 앨리스한테 사기를 치려고 공용 장부에 “앨리스가 밥한테 $20를 빌려줬습니다.” 라는 줄을 삭제하게 되면 밥은 앨리스한테 $20를 줄 필요가 없어집니다. 이러한 문제를 방지하기 위해서 ‘전자서명’이 필요하게 됩니다.

image.png

전자서명은 일반적인 서명과 똑같은 역할을 합니다. 거래 기록을 ‘인증’해주는 표시죠. 위의 노란색 박스 안에 나와있는 것처럼, “앨리스가 밥한테 $20를 빌려줬습니다.”라는 줄을 앨리스가 공용 장부에 입력하고 옆에 ‘Alice’라고 서명을 하게 되면 앨리스가 인증한 거래 기록이 공용 장부에 업데이트되기 때문에 밥이 앨리스한테 돈을 받은 적이 없다고 사기를 칠 수가 없겠죠? ^^

image.png

일반적인 서명가 진짜인지 가짜인지 판단할 때는 서명의 글씨체로 판단할 수 있습니다. 하지만 전자서명은 숫자로만 이루어진 서명이기 때문에 복사하고 붙이기가 쉽습니다.

“Alice의 전자서명 = 01100001” 이라는 것을 아는 사람들은 앨리스 행세를 하면서 허위 거래 기록을 공용 장부에 입력하고 옆에 ‘01100001’이라고 전자서명을 하게 되면 앨리스가 직접 전자서명한 것처럼 보이겠죠.

image.png

전자서명 도용 방지를 위해 프라이빗 키 (private key; sk)와 퍼블릭 키 (public key; pk)가 등장합니다. (인터넷의 원리를 구독해주신 분이라면 프라이빗 키와 퍼블릭 키 모두가 사용될 때 안전하게 정보를 지킬 수 있다는걸 아실겁니다 ㅎㅎ 프라이빗 키는 시크릿 키라고도 부르기 때문에 약자로 ‘sk’로 씁니다.)

image.png

거래 기록과 여러분만 알고있는 고유한 프라이빗 키의 조합에 따라서 다른 전자서명이 나타나게 됩니다. 거래 기록이나 프라이빗 키에 조금이라도 다른 점이 있으면 완.전.히. 다른 전자서명이 나타나게 되죠. 즉, 전자서명은 프라이빗 키를 소유하고 있는 본인만 생성할 수 있습니다.

그리고나서, 거래 기록에 포함된 전자서명이 제대로된 전자서명인지 아닌지 (True or False) 판단할 때 퍼블릭 키가 사용됩니다.

아직 무슨 말인지 감이 잘 안잡히시죠? ^^;;

요약하자면, 앨리스는 앨리스만 알고 있는 앨리스의 프라이빗 키가 있기 때문에 앨리스만의 전자서명을 할 수 있고, 앨리스를 포함한 모든 사람들이 앨리스의 전자서명이 맞는지 틀린지 확인할 때는 퍼블릭 키를 사용해서 확인할 수 있습니다.

image.png

여기서 궁금하신 점이 있으실 겁니다: “참새님, 앨리스의 전자서명의 경우의 수만큼 일일이 다 입력해보면서 앨리스의 유효한 전자서명을 찾으면 앨리스의 전자서명을 흉내낼 수 있지 않을까요?”

전자서명은 보통 256 비트로 이루어져 있기 때문에 2^256 (2의 256승) 만큼의 경우의 수가 있습니다. 이 모든 경우의 수를 일일이 다 입력해보면서 앨리스의 유효한 전자서명을 찾기란 거의 불가능에 가깝죠 ^^;; 결론적으로, 앨리스의 프라이빗 키를 알고 있는 앨리스만이 앨리스의 전자서명을 생성할 수 있습니다!

image.png

특정한 거래 기록과 특정한 전자서명이 있어야지만 유효한 거래 기록으로 인정받을 수 있습니다. 그런데, 여기서 또 한 가지 문제가 생깁니다. “앨리스가 밥한테 $100를 빌려줬습니다.”라는 거래 기록과 앨리스의 고유한 전자서명이 함께 있어야지만 인증된 거래 기록을 공용 장부에 업데이트할 수 있다면, 다른 사람들이 똑같은 거래 기록을 복사+붙이기 할 수 있지 않을까요?

“앨리스가 밥한테 $100를 빌려줬습니다.” + 앨리스의 전자서명 (앨리스가 입력)
“앨리스가 밥한테 $100를 빌려줬습니다.” + 앨리스의 전자서명 (밥이 입력)
“앨리스가 밥한테 $100를 빌려줬습니다.” + 앨리스의 전자서명 (찰리가 입력)
“앨리스가 밥한테 $100를 빌려줬습니다.” + 앨리스의 전자서명 (여러분이 입력)

이런 식으로 누구나 다 앨리스 흉내를 내면서 앨리스가 처음으로 공용 장부에 업데이트한 특정 거래 기록을 무한적으로 공용 장부에 업데이트할 수 있을 겁니다.

image.png

이 문제를 방지하기 위해서, 각 거래 기록마다 ‘특정한 ID’가 붙게 됩니다. 위의 그림에 나와있는 것처럼, 5개의 기록들은 모두 똑같은 내용이지만 ‘0, 1, 2, 3, 4’처럼 특정한 ID가 붙기 때문에 5개의 기록들은 모두 완전히 다.른. 거래 기록들입니다. 모두 다른 거래 기록들이기 때문에 전자서명 또한 완전히 다른 전자서명이 되죠! 그렇기 때문에 앨리스가 처음에 공용 장부에 입력한 “앨리스가 밥한테 $100를 빌려줬습니다.”과 앨리스의 고유한 전자서명을 복사+붙이기 하는 것은 불가능합니다.

실생활에서 예시를 들어보겠습니다. 완벽하게 똑같이 생긴 아이폰이더라도 안에 고유 제품번호가 다 다르기 때문에 여러분이 가지고 있는 폰은 제가 가지고 있는 아이폰과 완전히 다른 아이폰입니다. 그러므로 저의 아이폰과 똑같이 생기고 똑같은 기능을 하는 아이폰을 따라 만들 수 있을지는 몰라도 저의 아이폰과 완벽하게 동.일.한. 아이폰을 만드는 것은 불가능하겠죠? 저의 아이폰은 세계에서 유일하니까요 ^^

image.png

여태까지의 문제점들과 해결책들을 종합해서 장부를 효과적으로 이용하기 위한 새로운 규칙 (프로토콜)을 추가해보도록 하겠습니다:

• 인증된 전자서명이 된 거래 기록들만이 유효한 거래 기록들이다.


인터넷의 원리 시리즈를 읽고 오신 분들이라면 이해가 빠르시겠지만 굉장히 테크니컬한 내용들이 많아서 쉽게 이해하기 어려운 부분들이 있을 거라고 생각합니다. 최대한 쉽게 풀어서 설명드리고 싶은데 도움이 될 지 모르겠네요 ^^;; 더 노력하도록 하겠습니다 ㅎㅎ

다음 포스팅에서 뵐게요 !

어흥 ~

참조링크

제 포스팅이 유익하였다면 보팅 , 리스팀팔로잉 부탁드립니다 ^^
giphy.gif

인터넷의 원리 PART.1: 인터넷이란 무엇인가?
https://steemit.com/kr/@kim066/part-1
인터넷의 원리 PART 2: 와이어, 케이블, 그리고 와이파이 (Wifi) - 1
https://steemit.com/kr/@kim066/part-2-wifi-1
인터넷의 원리 PART 3: 와이어, 케이블, 그리고 와이파이 (Wifi) - 2
https://steemit.com/kr/@kim066/part-3-wifi-3
인터넷의 원리 PART 4: IP 주소 & DNS – (1)
https://steemit.com/kr/@kim066/part-4-ip-and-dns-1
인터넷의 원리 PART 5: IP 주소 & DNS – (2)
https://steemit.com/kr/@kim066/part-5-ip-and-dns-2
인터넷의 원리 PART 6: IP 주소 & DNS – (3)
https://steemit.com/kr/@kim066/part-6-ip-and-dns-3
인터넷의 원리 PART 7: 패킷, 라우팅, 그리고 신뢰성 – (1)
https://steemit.com/kr/@kim066/part-7-1
인터넷의 원리 PART 8: 패킷, 라우팅, 그리고 신뢰성 – (2)
https://steemit.com/kr/@kim066/part-8-2
인터넷의 원리 PART 9: TCP/IP와 UDP/IP (번외편)
https://steemit.com/kr/@kim066/part-9-tcp-ip-udp-ip
인터넷의 원리 PART 10: 암호화와 공개 키– (1)
https://steemit.com/kr/@kim066/part-9-1
인터넷의 원리 PART 11: 암호화와 공개 키– (2)
https://steemit.com/kr/@kim066/part-11-2
인터넷의 원리 PART 12: 사이버 보안과 사이버 범죄 – (1)
https://steemit.com/kr/@kim066/part-12-1

비트코인의 원리 PART 1: 가상화폐란?
https://steemit.com/kr/@kim066/4urqt9-part-1

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

블록체인 기술

번호 제목 글쓴이 날짜 조회수
69 가상화폐 비트코인의 원리 PART 6: 블록 보상과 거래 수수료 icon Work4Block 06-07 3,394
68 가상화폐 비트코인의 원리 PART 6: 블록 보상과 거래 수수료 icon Work4Block 06-07 2,732
67 가상화폐 비트코인의 원리 PART 5-3: 블록체인 원리 icon Work4Block 06-07 3,531
66 가상화폐 비트코인의 원리 PART 5-2: 블록체인 원리 icon Work4Block 06-07 3,535
65 정보 비트코인의 원리 PART 5-1: 블록체인 원리 icon Work4Block 06-07 2,888
64 가상화폐 비트코인의 원리 PART 4-2: 해쉬 함수와 작업 증명 방식의 원리 icon Work4Block 06-07 3,952
63 가상화폐 비트코인의 원리 PART 4-1: 해쉬 함수와 작업 증명 방식의 원리 icon Work4Block 06-07 3,218
62 가상화폐 비트코인의 원리 PART 3: 비트코인의 기본적 정의 icon Work4Block 06-07 2,366
61 가상화폐 비트코인의 원리 PART 2: 전자서명이란? (1) icon Work4Block 06-07 2,477
60 가상화폐 비트코인의 원리 PART 1: 가상화폐란? icon Work4Block 06-07 3,107
59 가상화폐 GXC 코인을 알아보자 2 icon Work4Block 06-07 3,224
58 가상화폐 또다른 게임 코인 GXC에 대해 알아보장 icon Work4Block 06-07 2,328
57 가상화폐 모스랜드(mossland) ICO 에 대해 알아보자 icon Work4Block 06-07 2,443
56 가상화폐 EOS Dapp 프랙탈 플레이 토큰에 대해서. icon Work4Block 06-07 2,965
55 정보 게임계 암호화폐 유나의 옷장과 제도권심사 소식 icon Work4Block 06-07 2,732
54 정보 스마트 컨트랙트의 활용을 알아보자 icon Work4Block 06-07 3,231
53 가상화폐 ParcelX 블록체인 기반 미래형 택배 네트워크 icon Work4Block 06-01 3,201
52 가상화폐 EOS를 알아보자 - BP란? icon Work4Block 05-31 2,379
51 가상화폐 EOS를 알아보자 - DPOS란? icon Work4Block 05-31 2,524
50 가상화폐 EOS를 알아보자 - EOS는 OS? icon Work4Block 05-31 2,792