ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 비트코인 강력한 암호화 기술 SHA-256 해시 함수, 비대칭키 암호 기술
    블록체인/비트코인 2024. 3. 23. 12:08

    https://p2pfoundation.ning.com/forum/topics/bitcoin-open-source

     

     

    비트코인 백서에 보면 강력한 암호화를 일반 대중이 사용함으로써 더이상 신뢰 기관은 필요하지 않게 되었다라는 문구가 있다. 사토시가 말하는 강력한 암호화는 '비가역성' 암호기술 이 중에서도 '비대칭키 암호 기술'을 말하는 것이다.

     

     

    비가역성 암호기술은 역 역산이 불가능한 암호 기술이다. 

     

     

    ...

     

    비가역성 암호기술은 대표적으로 두가지가 있다.

     

    1) 해시함수 (단방향 알고리즘)

    2) 비대칭키 암호 (양방향 알고리즘)

     

    ...

     

     

    해시함수 (단방향 알고리즘)

     

     

    해시 함수의 경우 입력 데이터를 해시 함수를 이용하여 고정된 크기의 출력값을 얻도록 하는 것이다. 대표적으로 'SHA-256' 해시 함수가 있는데, 입력값을 SHA-256 해시 함수에 넣으면 256 bit 크기의 출력 값이 나타난다.

     

     

    해시함수는 다음과 같은 특성을 가지고 있다.

     

    1) 고정된 길이의 출력

    2) 같은 입력에 대한 같은 출력

    3) 하나라도 데이터가 달라지면 완전히 다른 출력

    4) 역 연산 불가능 (비가역성)

     

    https://andersbrownworth.com/blockchain/hash

     

     

    SHA-256 기술은 개인키를 만들 때, 공개키를 이용하여 주소를 만들 때, 블록 해시를 구할 때 사용하고 있다. 

     

     

    ...

     

     

    비대칭키 암호 (양방향 알고리즘)

     

     

    비대칭키 암호 뿐만 아니라 대칭키 암호 기술도 존재한다. 이 둘의 차이점은 암호화와 복호화를 할 때 똑같은 키를 사용하는지 여부에 있다. 

     

     

    대칭키는 암호를 잠그는 사람이든, 푸는 사람이든 똑같은 키를 사용한다. 이는 신뢰성이 약하다. 

     

     

    반면, 비대칭키는 암호를 푸는 사람의 키와 암호를 잠그는 사람의 키가 다르다. 비대칭키 암호 중에서도 타원곡선의 암호화(ECDSA) 기법은 매우 보안성이 높다. 비트코인에서도 타원곡선 암호화 알고리즘이 사용된다. 다시 말해 비트코인은 비대칭키 암호화에서 타원곡선 암호화 알고리즘을 사용한 것이다.

     

     

    https://horizon.kias.re.kr/23225/

     

     

    결국 입력값이 개인키, 출력값이 공개키로 사용되는데 이는 비가역성의 특징을 가지고 있어 타원곡선의 암호화 알고리즘을 사용하면 개인키가 주어졌을 때 개인키로 공개키를 구할 순 있지만 역으로 공개키로 부터 개인키를 구할 수는 없게 된다. 

     

     

    ....

     

     

    만약 철수가 영희에게 비트코인을 전송한다고 가정해보자.

     

    1) 철수는 개인키를 이용하여 자신이 충분한 비트코인을 가지고 있음을 증명(성명) 한다.

    2) 그리고 영희의 개인키(주소)를 입력하여 영희에게 비트코인을 보낸다. 

     

     

    비트코인은 신뢰기간이 필요없어 소유권이 나에게 있다고 하였다. 소유권이라는 것은 내가 비트코인을 자유롭게 통제할 수 있는 것에 있다. 이러한 소유권을 증명해주는 것이 '개인키'이다. 만약 개인키를 잃어버린다면 나의 소유권 또한 잃는 것이다. 

     

     

     

    ...

     

     

     

    결국,

     

    1. 키 생성에 암호가 쓰인다.

     

    개인키 -> 공개키 -> 주소

     

    개인키.

    랜덤하게 개인키 자체를 생성하는 것 (난수 생성) 이 때 sha-256 해시 함수 단방향 암호기술이 사용됨.

     

    공개키

    개인키로 부터 공개키를 만드는데 이 때는 비대칭키 알고리즘을 사용.

    비가역적이여서 개인키로부터 공개키를 얻을 수 있지만 반대의 상황은 안된다. 

     

    주소

    해시를 두 번 한다. 이유는 아래와 같다.

    1) 공개키를 주소로 사용하기엔 길이가 너무 길다.

    2) 보안성을 높이려는 의도도 있다. 

    비가역적 특성을 이용한 것이다. 공개키로 부터 주소는 알 수 있지만 주소를 가지고 공개키는 유추하지 못하도록 한 것이다. 

     

     

    https://bittaddress.org 

     

     

    2. 블록 생성에도 암호가 쓰인다. 

     

    블록은 거래 내역을 담고 있는 분산된 장부이다. 블록간의 연결 즉 무엇이 선/후 인지를 알기 위해 해시함수가 쓰인다.

    블록에 거래 내역을 담을 때 블록 안에 하나의 대표 해시를 담게 된다. 그리고 다음 블록에는 이전 대표 해시값을 넣고 자신의 대표 해시값을 만드는 형태로 체인을 형성한다. 이로써 지난 거래가 참임을 다음 블록에서도 검증하게 되는 것이다.

     

     

     

    해시 값의 특성 중 하나의 데이터가 달라지면 완전히 달라진다는 특성이 있다. 이전 블록의 데이터가 위조되면 대표 해시값이 달라지고 해당 대표 해시값을 담고 있는 다른 블록들 또한 해시값이 모두 달라지게 되는 것이다. 

     

     

     

    이것이 사토시가 말한 강력한 암호화이다. 이런 암호 기술은 은행에서 공인 인증서와 같은 형태로도 쓰인다. 다만 통제권은 은행에 있. 강력한 암호화를 개인도 쓸 수 있다면 프라이버시도 지키며 가치도 직접 전송할 수 있게 된다는 것이 비트코인, 사이퍼 펑크의 첫 출발점이였다. 

     

     

     

    '너 자신이 은행이 되어라.' 해당 문구는 은행 파산 당시 신문에 실린 광고차량의 문구이다. 너가 직접 강력한 암호화를 생성해서 직접 그 가치를 통제하라는 의미를 담고 있는 문구이다. 

     

     

     

     

    정리

     

    1) 비트코인은 강력한 암호화를 사용한 시스템이다. 

     

    2) 비트코인 강력한 암호화 기술엔 비가역성이라는 특징이 있다. 대표적으로 해시함수(SHA-256), 비대칭키 암호(타원곡선 암호화 알고리즘)이 쓰였다. 

     

    3) 위 암호화 기술은 개인키, 공개키, 주소를 만들고 블록을 생성하는데 쓰이고 있다. 

     

    4) 그리고 이 강력한 암호화의 통제권이 개인에게 있어 스스로가 가치를 통제할 수 있게 된다. 스스로가 은행이 될 수 있게 된다.

Designed by Tistory.