목차
- 블록 체인 이해
- 이중 지출 다루기
- 작업 증명 및 '채굴'
cryptocurrency 개발자의 주요 관심사 중 하나는 이중 지출 문제입니다. 이것은 개인이 그 암호 화폐의 잔액을 두 번 이상 지출하여 발생 기록과 사용 가능한 암호 화폐의 양 사이의 불일치와 배포 방법을 효과적으로 만드는 발생률을 나타냅니다.
이중 지출 문제는 현금에없는 문제입니다. 10 달러짜리 지폐가 들어간 샌드위치에 돈을 지불하고 그 지폐를 샌드위치 메이커에게 넘겨 주면 다른 곳에서도 같은 10 달러를 쓸 수 없습니다. 그러나 비트 코인과 같은 디지털 통화를 사용하는 거래는 전적으로 디지털 방식으로 이루어집니다. 즉, 동일한 BTC를 단일 소유자가 여러 번 사용할 수 있도록 거래 세부 정보를 복사하고 다시 브로드 캐스트 할 수 있습니다. 아래에서는 암호 화폐 개발자가 이중 지출이 발생하지 않도록 어떻게 보장했는지 살펴 보겠습니다.
주요 테이크 아웃
- 디지털 화폐 개념과 관련하여 발생하는 기술적 문제는 누군가가 디지털 화폐를 복제하여 두 곳 이상에서 동시에 소비하는 능력입니다.이 '이중 지출'문제는 PoW (Proof-of-Work)로 알려진 합의 메커니즘을 사용합니다.이 PoW는 블록 체인 장부에서 과거 거래의 충실도를 확보 할뿐만 아니라 이중 지출을 감지 및 방지하는 분산 된 '광부'네트워크에 의해 수행됩니다..
블록 체인 이해
비트 코인과 같은 디지털 통화를지지하는 블록 체인은 자체적으로 이중 지출을 막을 수 없습니다. 오히려 관련 암호 화폐와 관련된 모든 거래는 블록 체인에 게시되며, 확인 프로세스에 의해 개별적으로 확인되고 보호됩니다. 비트 코인과 다른 많은 암호 화폐의 경우, 이런 식으로 확인 된 거래는 되돌릴 수 없습니다. 그들은 공개적으로 게시되고 영구적으로 유지됩니다.
비트 코인은 이중 지출 문제를 해결 한 최초의 주요 디지털 통화였습니다. 이 확인 메커니즘을 구현하고 일반적인 범용 원장 시스템을 유지 관리하여이를 수행했습니다. 이런 식으로 비트 코인 블록 체인은 2009 년에 cryptocurrency의 설립으로 돌아가는 타임 스탬프 트랜잭션 기록을 유지합니다.
비트 코인 용어로 "블록"은 영구적으로 기록 된 데이터 파일입니다. 모든 최근 거래는 거래소의 주식 거래 원장과 마찬가지로 블록으로 작성됩니다. 블록의 정보는 몇 분마다 원장에 추가됩니다. 네트워크상의 모든 노드는 블록 체인 원장의 사본을 유지합니다. 사용자는 비트 코인을 위해 블록 체인을 탐색하고 수량 측면에서만 거래를 검토 할 수 있습니다. 모든 거래에서 구매자와 판매자의 신원에 대한 세부 사항은 높은 수준의 암호화로 보호되어 외부 소스에 의한 원장 변경을 방지합니다. 블록 체인 원장이 업데이트되면 모든 비트 코인 지갑도 마찬가지입니다.
이중 지출 다루기
BTC가 1 개이고 두 개의 개별 트랜잭션에 두 번 사용하려고한다고 가정하십시오. 동일한 BTC를 두 개의 별도 비트 코인 지갑 주소로 전송하여이를 시도 할 수 있습니다. 이 두 거래는 확인되지 않은 거래 풀에 들어갑니다. 첫 번째 거래는 확인 메커니즘을 통해 승인 된 후 후속 블록에서 확인됩니다. 그러나 두 번째 트랜잭션은 확인 프로세스에서 유효하지 않은 것으로 인식되어 확인되지 않습니다. 확인을 위해 두 트랜잭션을 풀에서 동시에 가져 오면 확인 수가 가장 많은 트랜잭션이 블록 체인에 포함되고 다른 트랜잭션은 삭제됩니다.
이것은 이중 지출 문제를 효과적으로 처리하지만 문제가없는 것은 아닙니다. 예를 들어, 두 번째 (실패한) 트랜잭션의 의도 된 수신자는 트랜잭션 자체에 실패하지 않았지만 그 사람은 자신이 예상 한 비트 코인을받지 못할 것입니다. 많은 가맹점은 적어도 6 번의 거래 확인을 기다립니다 (즉, 해당 거래 후 6 개의 후속 거래 블록이 블록 체인에 추가되었음을 의미 함). 이 시점에서 판매자는 거래가 유효하다고 안전하게 가정 할 수 있습니다.
이 시스템에는 이중 지출 공격이 발생할 수있는 다른 취약점이 남아 있습니다. 예를 들어 공격자가 네트워크의 힘을 가지고있는 사람 중 적어도 51 %를 제어 할 수있는 경우 이중 지출을 저지를 수 있습니다. 공격자가 이처럼 많은 계산 능력을 제어 할 수 있다면 트랜잭션을 취소하고 별도의 개인 블록 체인을 만들 수 있습니다. 그러나 비트 코인의 빠른 성장은 이러한 유형의 공격이 불가능하다는 것을 사실상 보장했습니다. (자세한 내용은이 5 가지 비트 코인 사기에주의하십시오)
작업 증명 및 '채굴'설명
이제 좀 더 기술적으로 알아 보자. 사용자가 실제로 이중 지출을 시도하는 것과 같이 사용자가 훼손을 감지하는 방법은 작업 증명 (PoW)의 역할을하는 긴 문자열 인 해시를 통하는 것입니다. 해시 함수 (비트 코인은 SHA-256을 사용함)를 통해 주어진 데이터 세트를 넣으면 하나의 해시 만 생성합니다. 그러나 "avalanche effect"로 인해 원본 데이터의 일부만 약간만 변경해도 완전히 인식 할 수없는 해시가 발생합니다. 원래 데이터 세트의 크기에 관계없이 주어진 함수에 의해 생성 된 해시는 길이가 동일합니다. 해시는 단방향 함수입니다. 원래 데이터를 얻는 데 사용할 수 없으며 해시를 생성 한 데이터가 원래 데이터와 일치하는지 확인하는 데만 사용됩니다.
현대 컴퓨터에서는 비트 코인 트랜잭션 집합에 대한 해시 만 생성하는 것이 쉽지 않으므로 프로세스를 "작업"으로 전환하기 위해 비트 코인 네트워크는 특정 수준의 "어려움"을 설정합니다. 이 설정은 약 10 분마다 유효한 해시를 생성하여 새 블록이 "채굴"되고 (블록 체인에 추가됨) 조정됩니다. 해시에 대한 "대상"을 설정하면 난이도가 설정됩니다. 대상이 낮을수록 유효한 해시 세트가 작아지고 생성하기가 더 어렵습니다. 실제로 이것은 긴 문자열 0으로 시작하는 해시를 의미합니다. 예를 들어 블록 # 429818의 해시는 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d입니다. 이 블록에는 1, 000 개가 넘는 비트 코인과 2, 012 개의 트랜잭션과 이전 블록의 헤더가 포함됩니다. 사용자가 하나의 트랜잭션 금액을 0.0001 비트 코인으로 변경하면 결과 해시를 인식 할 수 없으며 네트워크는 사기를 거부합니다.
주어진 데이터 세트가 하나의 해시 만 생성 할 수 있기 때문에 광부는 어떻게 대상 아래에 해시를 생성하도록해야합니까? 이들은 nonce ("한 번 사용 된 숫자")라는 정수를 추가하여 입력을 변경합니다. 유효한 해시가 발견되면 네트워크에 브로드 캐스트되고 블록이 블록 체인에 추가됩니다.
채굴은 경쟁 과정이지만 경쟁보다는 복권에 가깝습니다. 평균적으로 누군가 10 분마다 수용 가능한 작업 증명을 생성하지만 누가 누구인지 추측 할 수 있습니다. 광부들이 함께 모여 마이닝 블록의 기회를 늘리면 거래 수수료가 발생하고 제한된 시간 동안 새로 생성 된 비트 코인에 대한 보상이 발생합니다.
작업 증명은 블록 체인의 모든 측면을 변경하기가 매우 어렵습니다. 왜냐하면 그러한 변경은 모든 후속 블록을 다시 채굴해야하기 때문입니다. 또한 해시 기능을 완료하는 데 필요한 기계 및 전력이 비싸기 때문에 사용자 또는 사용자 풀이 네트워크의 컴퓨팅 성능을 독점하기가 어렵습니다.