What is double-spending?
2020년 2월 17일 / 2021년 12월 30일 updated
이중 지출이란 무엇인가?
이중 지출은 동일한 자금이 동시에 두 명의 수신자에게 사용되는 디지털 현금 시스템에서 발생할 수 있는 잠재적인 문제다. 적절한 대응책이 없으면 문제를 해결하지 못하는 프로토콜이 근본적으로 훼손된다 – 사용자들은 그들이 받은 자금이 이미 다른 곳에 쓰이지 않았는지 확인할 방법이 없다.
디지털 현금과 관련해서는 특정 단위가 중복되지 않도록 하는 것이 무엇보다 중요하다.
예를 들어 앨리스가 디지털 현금 10개를 받고 복사해서 10번 붙여넣고 100개를 소유하고 있는 자신을 발견할 수 있다면 시스템 전체가 훼손될 것이다. 마찬가지로 그녀가 같은 10개를 밥과 캐롤에게 동시에 보낼 수 있다면 그런 계략은 통할 수 없다.
그래서 디지털 머니가 작동하기 위해서는 이러한 행동을 예방할 수 있는 메커니즘이 마련되어야 한다.
어떻게 이중 지출이 방지될 수 있는가?
중앙 집중식 접근 방식
중앙 집중화된 노선은 분산형 대안보다 구현이 상당히 쉽다.
여기에는 일반적으로 한 명의 감독자가 시스템을 관리하고 장치의 발행과 배포를 통제하는 것이 포함된다.
이중 지출 문제에 대한 중앙 집중식 해결책의 좋은 예는 데이비드 차움 eCash의 그것이다.
그런 맥락에서 사용자(단이라고 부르자)가 디지털 현금 100달러를 받기를 원한다면 먼저 은행에 알려야 한다.
그의 계좌에 잔고가 있다면, 그는 무작위 번호(또는 더 작은 액면 금액의 많은 금액)를 생성할 것이다. 그가 5개의 숫자를 생산한다고 가정해 보자.
각 숫자는 20달러씩 할당된다.
은행이 특정 단위를 추적하지 못하도록 댄은 각 단위에 블라인딩 요소를 추가해 난독화한다.
그리고 나서 그는 이 자료를 은행에 넘겨주었고, 그 은행은 자신의 계좌에서 100달러를 인출했으며, 5개의 정보가 각각 20달러에 상환될 수 있다는 것을 증명하는 메시지에 서명했다.
댄은 이제 은행에서 발행한 자금을 쓸 수 있다.
그는 에린의 식당에 가서 40달러짜리 식사를 산다.
댄은 각 단위(일련번호와 같은)의 고유 식별자 역할을 하는 각 디지털 현금 "청구서"와 관련된 무작위 번호를 노출하기 위해 블라인딩 요소를 제거할 수 있다.
그는 이것들 중 두 가지를 에린에게 공개하는데, 에린은 댄이 다른 상인과 함께 소비하는 것을 막기 위해 은행과 즉시 상환해야 한다.
은행은 서명이 유효한지 확인할 것이며, 모든 것이 정확해 보이면 에린의 계좌에 40달러를 입금할 것이다.
사용된 지폐는 이제 본질적으로 불타버렸고, 에린이 자신의 새로운 잔액을 이와 같은 방법으로 쓰기를 원한다면 더 많은 지폐가 발행되어야 한다.
Chaumian eCash 설정은 개인 이전을 위해 유용할 수 있다.
그러나 은행은 실패의 중심점이기 때문에 회복력에서 실패한다.
발행어음은 은행이 달러로 환전하겠다는 의지만에서 나온 것이기 때문에 그 자체로 아무런 가치도 없다.
고객들은 은행의 자유에 의존하고 있으며, 돈이 기능하기 위해서는 은행의 영업권에 의존해야 한다.
이것이 바로 암호화폐가 시정하고자 하는 문제다.
분산형 접근 방식
감독자가 없는 생태계에서 자금이 이중으로 지출되지 않도록 하는 것은 더 어려운 일이다.
동등하게 강력한 참여자는 사기를 방지하고 모든 사용자가 정직하게 행동하도록 유인하는 일련의 규칙을 조정해야 한다.
레스토랑 시나리오를 다시 살펴봅시다.
댄은 레스토랑으로 돌아왔고, 이번에는 창문에 비트코인 수락여기 스티커를 발견한다.
그는 지난번에 먹었던 식사를 맛있게 먹었으니 다시 주문해라. 그에게 0.005 BTC가 든다.
그러나 언급했듯이, 이 거래는 확인된 블록에 포함되는 경우에만 유효하다.
확인되지 않은 거래를 받아들이는 것은 이전 사례에서 eCash로 40달러를 받는 것과 비슷하며, 즉시 은행과 현금화하지 않고, 이것은 발신자가 다른 곳에서 그것을 쓸 수 있게 해준다.
따라서 에린은 댄의 지불을 수락하기 전에 적어도 6블록의 확인(거의 1시간)을 기다리는 것이 좋다.
비트코인의 이중 지출
비트코인은 적어도 예상대로 프로토콜을 사용할 때는 이중 지출 공격을 막기 위해 세심하게 설계돼 있다.
즉, 개인이 블록에서 거래가 확인되기를 기다리면 발신인이 이를 취소하는 쉬운 방법이 없다.
그러려면 비현실적인 해싱 파워가 필요한 블록체인을 '역전'해야 할 것이다.
그러나 확인되지 않은 거래를 받아들이는 당사자를 겨냥한 이중 지출 공세가 한둘이 아니다.
예를 들어, 저가 구매의 경우, 상인은 거래가 블록에 포함되기를 기다리지 않을 수 있다.
바쁜 패스트푸드점은 아마도 네트워크가 모든 구매를 처리하기 때문에 기다릴 여유가 없을 것이다.
그래서 만약 기업이 "즉시" 지불을 가능하게 한다면, 그들은 이중 지출까지 스스로 열게 된다.
누군가가 햄버거를 주문하고, 돈을 지불한 다음, 즉시 같은 자금을 그들 자신의 주소로 보낼 수도 있다.
수수료가 높아지면 이번 신규 거래가 먼저 확정될 가능성이 높기 때문에 기존 거래가 무효화된다.
이중 스펜드를 수행하는 데는 세 가지 인기 있는 방법이 있다.
-
51% 공격: 단일 개체 또는 조직이 해시 비율의 50% 이상을 제어하여 트랜잭션 순서를 제외하거나 수정할 수 있는 경우. 비트코인에서는 이런 공격이 있을 가능성이 매우 낮지만, 다른 네트워크에서는 발생한 적이 있다.
-
Race attacks: 상충되는 두 개의 거래가 동일한 자금을 사용하여 연속적으로 방송되지만, 단 하나의 거래만 확인된다. 공격자의 목표는 자신에게 이익이 되는 거래(예: 그가 지배하는 주소로 동일한 자금을 보내는 것)만 검증함으로써 지불을 무효화하는 것이다. Race attacks의 경우 수취인은 확인되지 않은 거래를 지불로 받아들여야 한다.
-
Finney 공격: 공격자는 하나의 트랜잭션을 네트워크에 즉시 브로드캐스트하지 않고 블록으로 미리 마이닝한다. 대신 같은 동전을 다른 거래에 쓰고 그 다음에야 이전에 채굴한 블록을 방송해 결제가 무효화될 수도 있다. 피니 공격은 특정한 일련의 사건들이 일어나도록 요구하고 또한 수신자의 확인되지 않은 거래에 대한 수용 여부에 달려 있다.
우리가 알 수 있듯이 블록 컨펌을 기다리는 상인은 이중스페인의 피해자가 될 위험을 크게 줄일 것이다.
마무리 생각
이중스팬드는 사용자가 금전적 이익을 위해 전자현금시스템을 게임화할 수 있게 해 같은 자금을 두 번 이상 사용할 수 있게 한다. 전통적으로, 그 문제에 대한 적절한 해결책의 부족은 그 지역의 발전을 가로막고 있다.
원본출처 : academy.binance.com 'double-spending-explained'
더 많은 에피소드를 원하시면 아래 link로 방문해 보셔도 좋을꺼 같습니다.
Bb7942의 쉽터_함께 성장합시다.
'투자아이디어' 카테고리의 다른 글
2050년 동향: 농사의 미래 (1) | 2022.02.09 |
---|---|
MegaTrend] 기후변화와 자원부족 (0) | 2022.02.09 |
[집중]오늘은 마이크로 소프트(MSFT) 내일은 루시드모터스(LCID) (0) | 2022.01.18 |
[꼭!! 알아야 되는 블록체인의 5가지 큰 문제점] (0) | 2022.01.10 |
모든 소매업체가 준비해야 할 8가지 가장 큰 소매 동향 (0) | 2021.12.18 |