"코인셔플"의 두 판 사이의 차이
잔글 |
|||
(다른 사용자 한 명의 중간 판 9개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''코인셔플'''<!--코인 셔플-->(CoinShuffle)은 | + | '''코인셔플'''<!--코인 셔플-->(CoinShuffle)은 익명성 프로토콜로 거래 내역을 난독 처리하여 거래를 추적하려는 사람들을 막기 위해 사용되고, 그 안에 저장된 미디어의 데이터 클라우드는 유형과 관계없이 안전한 파일 스토리지 시스템에 사용된다.<ref name="버즈">비트코인 PR 버즈, 〈[https://bitcoinist.com/nxt/ NXT, NXT ANNOUNCES VERSION 1.7.4!]〉, 《비트코이니스트》, 2016-02-05</ref> [[비트코인]](Bitcoin)에서는 '''캐시셔플'''<!--캐쉬셔플, 캐시 셔플-->(cashshuffle)이라고 불리며, [[대시]](Dash)에서는 '''다크센드'''<!--다크샌드-->(darksend) 또는 '''다크센드 믹싱'''<!--다크센드믹싱-->(darksend mixing)이라고도 불린다. |
== 개요 == | == 개요 == | ||
− | + | 코인셔플은 거래 내역을 난독 처리하여 거래를 추적하려는 사람들을 막기 위해 사용되는 익명성 [[프로토콜]]이다.<ref name="버즈"></ref> 각각 캐시셔플, 다크샌드, 다크샌드 믹싱 등으로 불리며, 채굴자들이 수익을 얻기 위해서 [[작업증명]] 시스템에서 일종의 문제를 풀고 보상을 받는 식이지만, 수익을 얻는 방법인 [[마스터노드]](masternode)가 처리해주는 방법이기도 하다.<ref name="아이">icoreport, 〈[https://steemit.com/kr/@icoreport/dash Dash를 통해 본 마스터노드의 이해 ( 부제 : 코인으로 돈 세탁을 ?! )]〉, 《스팀잇》</ref> 코인셔플은 자금을 완전히 익명화할 수 있는 암호화폐 프로토콜이다. | |
== 등장배경 == | == 등장배경 == | ||
− | 비트코인 테스트 네트워크에 전송된 거래는 네트워크의 첫 번째 코인셔플 구현으로, 2013년 비트코인 개발자 [[그렉 맥스웰]](Greg Maxwell)이 개발한 이 솔루션은 [[다크월렛]]( | + | 비트코인 테스트 네트워크에 전송된 거래는 네트워크의 첫 번째 코인셔플 구현으로, 2013년 비트코인 개발자 [[그렉 맥스웰]](Greg Maxwell)이 개발한 이 솔루션은 [[다크월렛]](Dark Wallet), [[대시]](Dash), [[엔엑스티]](NXT) 및 [[조인마켓]](JoinMarket)에서 구현에 영감을 주어 타사에 의존하지 않는 방식으로 기존 [[개인정보보호]] 기술을 구축하기 위해 만들어졌다. 2016년 1월 23일 계정 제어, 코인셔플 및 엔엑스티 데이터 클라우드의 세 가지 주요 기능을 제공하는 블록체인 플랫폼 엔엑스티에서 구현되었지만 2016년 8월 15일 개발자 [[대니얼 크라위츠]](Daniel Krawisz)는 당시 비트코인에서 코인셔플 도구를 사용하는 최초의 [[트랜잭션]]이라고 생각했다. 코인셔플 기술의 근본적인 아이디어는 비트코인의 공개 블록체인에서 볼 수 있는 민감한 사용자 정보를 보호하는 것으로 신뢰를 줄이기 위해 거래를 혼합하는 타사 없이 [[코인조인]](coinjoin)을 사용하기 때문에 독특하다.<ref name="등">Alyssa Hertig, 〈[https://www.coindesk.com/bitcoin-privacy-advances-first-coinshuffle-transaction Bitcoin Privacy Tool ‘CoinShuffle’ Sees First Transaction]〉, 《코인데스크》, 2016-08-25</ref> |
== 특징 == | == 특징 == | ||
11번째 줄: | 11번째 줄: | ||
# 탈중화 : 코인셔플의 핵심 프로토콜에는 신뢰, 책임 또는 신뢰할 수없는 제 3자가 필요하지 않다. | # 탈중화 : 코인셔플의 핵심 프로토콜에는 신뢰, 책임 또는 신뢰할 수없는 제 3자가 필요하지 않다. | ||
# 익명 성 : 사용자가 혼합 후 사용자의 이전 주소와 새 주소 사이의 관계를 결정할 수 없다. | # 익명 성 : 사용자가 혼합 후 사용자의 이전 주소와 새 주소 사이의 관계를 결정할 수 없다. | ||
− | # 도난 방지 : | + | # 도난 방지 : 코인조인의 원칙에 따라 코인셔플은 혼합 중에 돈을 도난 당하지 않도록 보장된다. |
# 호환성 : 코인셔플은 기존 비트코인 프로토콜을 기반으로 실행되며 비트코인 프로토콜 자체를 변경할 필요가 없다. | # 호환성 : 코인셔플은 기존 비트코인 프로토콜을 기반으로 실행되며 비트코인 프로토콜 자체를 변경할 필요가 없다. | ||
# 서비스 거부 공격에 대한 견고성 : 코인조인을 기반으로하는 유사한 솔루션이 단일 악의적 인 참가자에 의해 중단 될 수 있지만 코인셔플은 파괴적인 참가자를 식별하여 프로토콜에서 제외 할 수 있다. | # 서비스 거부 공격에 대한 견고성 : 코인조인을 기반으로하는 유사한 솔루션이 단일 악의적 인 참가자에 의해 중단 될 수 있지만 코인셔플은 파괴적인 참가자를 식별하여 프로토콜에서 제외 할 수 있다. | ||
20번째 줄: | 20번째 줄: | ||
[[파일:코인셔플실행.PNG|썸네일|400픽셀|'''코인셔플 실행''']] | [[파일:코인셔플실행.PNG|썸네일|400픽셀|'''코인셔플 실행''']] | ||
* '''프로토콜''' | * '''프로토콜''' | ||
− | : 프로토콜을 설명하기 위해 4명의 참가자 엘리스(alice), 밥(bob), 찰리(charlie), 데이브(dave) | + | : 프로토콜을 설명하기 위해 4명의 참가자 엘리스(alice), 밥(bob), 찰리(charlie), 데이브(dave)가 있다. 참가자들은 각각의 주소 <math>A , B , C , D</math>에 정확히 1개의 BTC를 가지고 있다. 참가자들이 프로토콜을 서로 실행하고 싶다는 것을 이미 알고 있고 서로의 주소를 알고 있다고 가정한다. |
− | : 참가자는 새로운 주소 <math>A', B', C', D'</math>를 | + | : 참가자는 새로운 주소 <math>A', B', C', D'</math>를 작성하지만 서로에게 표시하지 않고, 코인조인 기반 믹싱의 목표는 입력 주소 <math>A, B, C, D</math>및 출력 주소 <math>A', B', C', D'</math>와 함께 하나의 단일 믹싱 트랜잭션을 만들어 동전과 소유자 간의 관계를 숨기는 것이다. 특정 주문에 충실히 한다면 <math>A', B', C', D'</math> 출력 주소는 A가 속한 <math>A', B</math>가 속한 <math>'B</math>, 등 입력 및 출력 주소의 연결이 숨겨져 있는지 확인하려면 출력 주소 목록을 섞어야 하고, 생성된 트랜잭션에서 출력 주소를 섞는 것만으로 충분하지 않다. 예를 들면, 모든 사람이 프로토콜 중에 자신의 출력 주소를 알기 쉽게 발표한 경우에 엘리스가 <math>A'</math>를 발표 하면 모든 사람이 <math>A'</math>가 엘리스에 속한다는 것을 알게 되고, 프로토콜 중에 전송된 메시지가 익명성을 깨뜨리지 않도록 해야 하며, 코인셔플은 문제를 정확하게 해결할 것이다. 프레젠테이션을 단순화하기 위해 서명을 생략했다. |
: '''1 단계 : 키 교환''' | : '''1 단계 : 키 교환''' | ||
− | : 엘리스를 제외한 각 참가자는 공개 암호화 키와 개인 암호 | + | : 엘리스를 제외한 각 참가자는 공개 암호화 키와 개인 암호 해독키로 구성된 공개키 암호화 체계의 키 쌍을 만들고, 공개 암호화 키 <math>ek_{B}, ek_{C}, ek_{D}</math>를 호출한다. 각 참가자는 자신의 입력 주소에 해당하는 서명 키로 서명된 공개 암호화 키를 발표한다. |
: '''2 단계 : 셔플 링''' | : '''2 단계 : 셔플 링''' | ||
− | : 참가자들은 공개 암호화 키를 알고 있으면 셔플 링을 시작할 수 있다. 엘리스는 모든 암호화 키를 사용하여 출력 주소 <math>A'</math> 를 계층 방식으로 암호화하는데, 엘리스는 데이브를 위해 A'를 먼저 | + | : 참가자들은 공개 암호화 키를 알고 있으면 셔플 링을 시작할 수 있다. 엘리스는 모든 암호화 키를 사용하여 출력 주소 <math>A'</math> 를 계층 방식으로 암호화하는데, 엘리스는 데이브를 위해 A'를 먼저 암호화하여 <math>enc(ek_{D}, A')</math>를 얻으면, 암호문은 찰리에 대해 암호화되어 밥에 대해 <math>enc(ek_{C}, enc(ek_{D}, A')</math> 등을 얻고, 메시지는 밥에게 전송된다. |
: 엘리스 ⟶ 밥 : <math>enc(ek_{B}, enc(ek_{C}, enc(ek_{D}, A')))</math> | : 엘리스 ⟶ 밥 : <math>enc(ek_{B}, enc(ek_{C}, enc(ek_{D}, A')))</math> | ||
41번째 줄: | 41번째 줄: | ||
: '''3 단계 : 거래 생성''' | : '''3 단계 : 거래 생성''' | ||
− | : 모든 참가자는 출력 주소 목록을 받고 자신의 출력 주소가 실제로 있는지 확인할 수 있어 거래에 서명한다. 예를 들면, 밥이 자신의 주소가 없다는 것을 알면 거래를 수행하여 동전을 잃을 것이므로 서명하고 싶지 않을 것이다. 밥의 주소가 없으면 프로토콜 실행 중에 누군가가 속임수를 | + | : 모든 참가자는 출력 주소 목록을 받고 자신의 출력 주소가 실제로 있는지 확인할 수 있어 거래에 서명한다. 예를 들면, 밥이 자신의 주소가 없다는 것을 알면 거래를 수행하여 동전을 잃을 것이므로 서명하고 싶지 않을 것이다. 밥의 주소가 없으면 프로토콜 실행 중에 누군가가 속임수를 써야 하며, 밥은 불평하고 참가자들은 누가 속이는 사람인지 알아내기 위해 추가 단계에 들어갈 것이다. 코인셔플은 비난 단계가 항상 적어도 한 명의 부정행위 참가자를 노출시키는 지 확인하며, 이 부정행위 참가자는 프로토콜의 후속 실행에서 제외될 수 있다. 밥, 찰리, 데이브가 엘리스 없이 프로토콜을 다시 실행할 수 있다. 2단계에서 셔플링을 수행한 참가자만 자신이 받은 목록의 메시지와 자신이 보낸 목록의 메시지 사이의 관계를 알고 있다는 것이다. 예를 들면, 찰리만이 <math>enc(ek_{C}, enc(ek_{D}, B'))</math> 및 <math>enc(ek_{D}, B')</math>를 연관시킬 수 없기 때문에 <math>B'</math> 를 포함하는 메시지를 첫 번째 위치에 두었다는 것을 알고 있을 것이나 찰리조차도 이것이 밥의 주소가 담긴 메시지임을 알지 못할 것이다. 결국, 정직한 참가자의 모든 주소는 섞여 어떤 참가자도 순열을 모르게 된다.<ref name="크립"></ref> |
== 활용 == | == 활용 == | ||
===비트코인=== | ===비트코인=== | ||
[[파일:비트코인 글자.png|썸네일|300픽셀|'''비트코인'''(bitcoin)]] | [[파일:비트코인 글자.png|썸네일|300픽셀|'''비트코인'''(bitcoin)]] | ||
− | [[비트코인]](bitcoin) 혼합 문제에 대한 실용적인 솔루션 코인셔플은 검증 가능성을 보장하기 위해 코인조인(CoinJoin)에서 영감을 받았고, 사용자가 다른 | + | [[비트코인]](bitcoin) 혼합 문제에 대한 실용적인 솔루션 코인셔플은 검증 가능성을 보장하기 위해 [[코인조인]](CoinJoin)에서 영감을 받았고, 사용자가 다른 관심 있는 사용자의 동전과 동전을 혼합 할 수 있다. 익명성 및 견고성을 보장하기 위한 그룹 통신 프로토콜 [[디센트]](dissent)가 적극적인 공격에 대한 핵심 아이디어는 암호 해독 믹스 네트워크와 유사하며, 프로토콜에는 서명 및 공개 키와 같은 표준 [[프리미티브]]만 필요하다.<ref name="셔플">2014년 코인셔플 백서 - https://petsymposium.org/2014/papers/Ruffing.pdf </ref> 코인셔플은 책임 있는 익명 그룹 통신 프로토콜 디샌트(Dissent)에서 영감을 얻었으며 신뢰할 수 있고 책임이 있거나 신뢰할 수 없는 제삼자가 필요하지 않으며 현재 비트코인(Bitcoin) 시스템과 완벽하게 호환되고, 추가 익명 비용을 완전히 피하고 나머지 비트코인 시스템의 계산 및 통신 오버헤드를 최소화하면서 사용자에게 작은 통신 오버헤드 만 도입했다.<ref>팀 러핑등 3명, 〈[https://dl.acm.org/citation.cfm?id=3088431 |
CoinShuffle : 비트 코인을위한 실용적인 분산 코인 믹싱]〉, 《ACM DL》, 2014-09-07 </ref> | CoinShuffle : 비트 코인을위한 실용적인 분산 코인 믹싱]〉, 《ACM DL》, 2014-09-07 </ref> | ||
− | 코인셔플은 아무도 다른 사람을 믿지 않아도 혼합을 분산시킬 가능성이 있었기 때문에 2014년 | + | 코인셔플은 아무도 다른 사람을 믿지 않아도 혼합을 분산시킬 가능성이 있었기 때문에 2014년 자를란트 대학교의 연구원들에 의해 처음 제안되었고, 코인셔플을 사용하면 다른 사용자가 추적을 난독 화하기 위해 단일 주소에 출력 주소를 제출할 수 있어 사용자가 제출한 특정 주소를 다른 사람에게 공개하지 않고 출력 주소를 제출할 수 있고, 모든 참가자는 어떤 주소가 비트코인을 받고 있는지 알 수 있지만 이 비트코인이 어느 주소에서 전송되는지는 아무도 모른다.<ref name="코셔"> 〈[https://bitcoinmagazine.com/articles/shuffling-coins-to-protect-privacy-and-fungibility-a-new-take-on-traditional-mixing-1465934826 프라이버시와 Fungibility를 보호하기위한 동전 섞기 : 전통적인 믹싱의 새로운 장]〉, 《비트코인 매거진》, 2016-06-14 </ref> |
− | # 타사가 없다 : 코인셔플은 비트코인의 분산 된 신뢰 이념을 보존하고, 연결 해제에 관심이 있는 비트코인 사용자가 독점적으로 실행하는 비트코인 거래이며, 신뢰할 수 있고 책임이 없다. 신뢰할 | + | # 타사가 없다 : 코인셔플은 비트코인의 분산 된 신뢰 이념을 보존하고, 연결 해제에 관심이 있는 비트코인 사용자가 독점적으로 실행하는 비트코인 거래이며, 신뢰할 수 있고 책임이 없다. 신뢰할 수 없는 제삼자 거래의 비 연결성은 의정서 실행에 최소한 두 명의 참가자가 정직한 한 보호된다. |
− | # 호환성 : 코인셔플은 기존 비트코인 네트워크와 완벽하게 호환되며, 비트코인 규칙을 변경할 | + | # 호환성 : 코인셔플은 기존 비트코인 네트워크와 완벽하게 호환되며, 비트코인 규칙을 변경할 필요 없이 비트코인 네트워크 스크립트는 다른 분산 솔루션과 달리 즉시 작동한다. |
− | # 혼합 수수료가 없다 : 서비스 제공 업체 | + | # 혼합 수수료가 없다 : 서비스 제공 업체 역할을 하는 제 제삼자가 없는 경우, 코인셔플은 추가 믹싱 비용을 사용자에게 부과하지 않으며, 참가자가 비트코인 거래 수수료 측면에서 수행하고, 단일 혼합 거래에 대한 수수료만 청구된다. |
− | # 작은 [[오버헤드]] : 성능 분석 결과 코인셔플이 참가자에게 작은 통신 오버헤드만 | + | # 작은 [[오버헤드]] : 성능 분석 결과 코인셔플이 참가자에게 작은 통신 오버헤드만 도입 계산하는 동안 20명의 참가자가 있는 경우 1분 동안 오버헤드는 무시할 수 있는 수준에 가깝다. |
* '''공개키,개인키''' | * '''공개키,개인키''' | ||
− | : 모든 참가자는 다른 사람이 데이터를 | + | : 모든 참가자는 다른 사람이 데이터를 암호화할 수 있는 고유한 [[공개키]](public key) 임의의 문자열과 자신이 해독할 수 있는 해당 [[개인키]](private key)를 생성한다. 미리 결정된 임의의 순서에 따라, 모든 참가자는 공개 키를 한 사용자가 모든 공개키로 끝내고, 한 사용자가 모든 것을 한 명으로 끝내는 방식으로 공개 키를 전달한다. 모든 공개 키를 얻은 사용자는 올바른 순서로 하나씩 모든 공개키로 출력 주소를 암호화하고, 모든 개인 키를 사용하여 올바른 순서로 하나씩 만 해독 할 수 있는 [[암호화]] 계층으로, 이 패키지는 다음을 제외한 모든 공개 키를 가진 다음 사용자에게 전달된다. 사용자는 자신의 개인 키로 이 패키지를 해독하면, 암호화 양파의 한 계층을 제거하지만 여전히 어떤 출력 주소가 숨겨져 있는지 알 수 없고, 자신의 출력 주소를 모든 공개키 하나만으로 암호화하고 암호화된 패키지를 모두 전달한다. 이다음 사용자는 어떤 패키지가 원래 어떤 사용자에게서 왔는지 전혀 모르지만, 다른 암호화 계층을 둘 다 벗길 수 있으며, 자신이 얻은 모든 공개키로 자신의 출력 주소를 암호화하고 다음에 암호화된 패키지 3개를 전달할 수 있다. 이것은 다른 모든 출력 주소를 포함하는 패키지를 암호화한 마지막 사용자까지 계속되지만, 이 시점에서 모든 패키지에는 하나의 암호화 계층만 남고, 마지막 사용자는 한 번에 모든 암호를 해독 할 수 있으며, 자신의 출력 주소를 믹스에 추가하고 하나의 큰 코인조인 트랜잭션을 구성한 다음 모든 참가자에게 다시 보내 서명하는데, 모든 참가자는 자신의 출력 주소가 트랜잭션에 포함되어 있는지 확인하고 서명하고 트랜잭션을 브로드 캐스트 할 수 있다. 누가 어떤 출력 주소를 제공했는지는 아무도 모른다.<ref name="코셔"></ref> |
* '''코인셔플 ++''' | * '''코인셔플 ++''' | ||
− | : 코인셔플은 의도 | + | : 코인셔플은 의도 한 대로 작동하지만, 프로토콜을 완료하는 데 많은 단계가 필요하므로 일상적인 사용에는 다소 비현실적이어서 코인셔플++은 본질적으로 코인셔플의 기능을 수행하지만, 더 빠르고 좋다. 코인셔플의 참가자가 공개 및 개인 키 쌍을 생성하는 경우 코인셔플 ++ 트랜잭션의 참가자는 상호 비밀을 생성하고, 고유한 숫자 문자열도 있어 각 참가자는 문자열을 다른 모든 참가자와 공유하지만 각 공유 비밀은 두 사람 사이에서만 공유된다. 그런 다음 모든 참가자는 공유하는 모든 비밀을 사용하여 자신의 출력을 마스크 하지만, 공유 비밀은 각 참여자 쌍에 대한 양수 값과 양수 값으로 사용어. 한 참가자가 공유 비밀 12345로 자신의 출력을 마스크 하면 다른 참가자는 -12345로 자신의 출력을 마스크 한다. [[다이닝]](Dining) 암호화폐 문제에서 설명된 것처럼 트릭을 허용한다. 모든 참가자가 [[마스킹]] 된 출력을 공유하면 모든 공유 비밀이 서로 상쇄되는 방식으로 이들을 결합 할 수 있다. 모든 출력의 조합에서 특정 출력을 추출하는 것은 또 다른 수학적 트릭이 작용하는 곳으로, 소위 뉴턴의 정체성 트릭의 기술적인 세부 사항은 고급 수학의 복잡성에 너무 많이 빠져 있기 때문에 자세히 알 수 없으나 기본적으로 메시지의 여러 중복 인코딩을 사용하여 수행되며, 참가자는 누가 어떤 주소를 제공했는지 알 필요 없이 모든 원래 출력 주소를 로컬로 추출하는 데 적용 할 수 있고, 코인셔플 프로토콜보다 훨씬 빠르고 효율적으로 만들기 위해 한 번에 수행 할 수 있다는 것으로 자를란트 대학의 연구원에 따르면 최대 50명의 참가자가 약 15초 안에 코인셔플 ++ 프로토콜을 완성 할 수 있으며, 일반적인 [[POS]](point-of-sale) 상황에 아주 빠르다.<ref name="코셔"></ref> |
− | : 대부분의 다른 익명화 솔루션과 마찬가지로 코인셔플 프로토콜은 개인 정보 및 기능을 향상시키지만, 그들 자신과 완전한 익명 성과 기능성을 제공하기에는 충분하지 않으며 약점도 없다. 코인셔플 과 코인셔플 ++ 프로토콜의 한 가지 단점으로는 부정직한 참가자에게만 | + | : 대부분의 다른 익명화 솔루션과 마찬가지로 코인셔플 프로토콜은 개인 정보 및 기능을 향상시키지만, 그들 자신과 완전한 익명 성과 기능성을 제공하기에는 충분하지 않으며 약점도 없다. 코인셔플 과 코인셔플 ++ 프로토콜의 한 가지 단점으로는 부정직한 참가자에게만 좋지 않다. 참가자 중 한 명이라도 성공적인 셔플을 차단하려는 경우 프로세스에 가짜(암호화된) 데이터를 삽입하거나 프로세스의 일부에 전혀 참여하지 않을 수 있고, 참가자를 추적해도 특정 참가자 없이 프로토콜을 간단하게 다시 시작할 수 있으며, 모든 혼합의 총 시간이 증가하지만, 혼합은 완료된다. 일반적인 코인조인 거래와 관련된 많은 약점도 셔플 프로토콜을 지원하는 데 가장 중요한 것은, 집단 거래에서 전송된 서로 다른 금액이 동일하지 않은 경우에 어떤 입력과 출력이 대응하는지 파악하여 목적을 완전히 상실 할 수 있어 모든 참가자가 실제로 하나이며, 동일한 엔티티인 경우에 시빌(Sybil) 공격으로 여러 가지 혼합이 전혀 차이가 없을 것이다. 한 엔티티는 단순히 자신의 것이 아닌 입력과 출력만 연결할 수 있다.<ref name="코셔"></ref> |
* '''프로토콜의 보안분석''' | * '''프로토콜의 보안분석''' | ||
− | : 프로토콜의 적합성으로 코인셔플은 비트코인 프로토콜을 변경할 필요가 없고, 코인셔플을 성공적으로 실행하면 트랜잭션 형식이 | + | : 프로토콜의 적합성으로 코인셔플은 비트코인 프로토콜을 변경할 필요가 없고, 코인셔플을 성공적으로 실행하면 트랜잭션 형식이 [[비트코인]]의 현재 규칙에 따라 유효한 거래가 가능해서 프로토콜은 즉시 배포 가능하며, 신뢰할 수 있는 타사가 믹싱을 수행하는 시스템 일반적으로 비트코인에 정의된 거래 수수료와 믹싱 서버에 필요한 믹싱 요금(혼합 요금)이 없다. 코인셔플에서는 그렇지 않아서 혼합 요금이 필요하고, 공동으로 실행하는 사용자에게는 요금이 청구되며, 현재 배포된 비트코인 프로토콜에 정의된 거래 수수료, 능률은 이미 비트코인에 배포된 디지털 서명 외에 표준 공개키 암호화 및 해시 기능만 필요하다. 계산이 제한된 하드웨어에서도 프로토콜을 실행할 수 있고, 비트코인에 대한 작은 영향으로는 성공적인 프로토콜 실행 시 코인셔플 참가자는 공동으로 하나의 비트코인 거래 만 생성한 블록체인이며 네트워크의 모든 노드에서 확인해야 하므로 비트코인 시스템에 대한 계산은 코인셔플을 실행하여 스토리지 측면에서 최소한의 오버헤드 만 발생한다.<ref name="셔플"></ref> |
{{자세히|비트코인}} | {{자세히|비트코인}} | ||
=== 엔엑스티 === | === 엔엑스티 === | ||
[[파일:엔엑스티 글자.png|썸네일|300픽셀|'''엔엑스티'''(NXT)]] | [[파일:엔엑스티 글자.png|썸네일|300픽셀|'''엔엑스티'''(NXT)]] | ||
− | [[엔엑스티]](NXT)가 2016년 1월 23일 발표한 버전 1.7.4는 계정 제어를 통해 탁월한 보안을 위해 다중 서명 계정을 쉽게 만들 수 있으며, 코인셔플은 거래 내역을 난독 처리하여 거래를 추적하려는 사람들을 막기 위해 사용되고, 그 안에 저장된 미디어의 데이터 클라우드는 | + | [[엔엑스티]](NXT)가 2016년 1월 23일 발표한 버전 1.7.4는 계정 제어를 통해 탁월한 보안을 위해 다중 서명 계정을 쉽게 만들 수 있으며, 코인셔플은 거래 내역을 난독 처리하여 거래를 추적하려는 사람들을 막기 위해 사용되고, 그 안에 저장된 미디어의 데이터 클라우드는 유형과 관계없이 안전한 파일 스토리지 시스템에 사용된다. 계정관리를 사용하여 최상의 보안을 위해 다중 서명 계정을 만들고, 계정 제어를 통해 엔엑스티 투표 시스템을 사용하여 향상된 다중 서명 트랜잭션을 사용하여 투표 프로세스에 의해 승인된 후에만 계정의 트랜잭션을 실행할 수 있으며, 데이터 클라우드를 사용하여 파일, 문서 또는 임의의 데이터를 [[블록체인]]에 저장, 검색 및 게시한다. 엔엑스티 데이터 클라우드는 자동 제거 및 암호화를 포함한 저렴한 비용 / 수수료 및 옵션으로 작은 파일, 문서 또는 임의의 데이터를 블록체인에 분산, 검열 및 변조 방지 게시 및 검색 할 수 있도록 하고, 코인셔플 시스템을 사용하여 엔엑스티 자금을 익명화한다. 엔엑스티는 분산 형 믹싱 / 코인 셔플 서비스를 자체 블록체인에 기본적으로 통합한 최초의 [[암호화폐]] 플랫폼으로, 사용자는 엔엑스티에 보유된 자금을 완전히 익명화 할 수 있다.<ref name="버즈"></ref> |
{{자세히|엔엑스티}} | {{자세히|엔엑스티}} | ||
=== 대시=== | === 대시=== | ||
[[파일:대시 글자.png|오른쪽|300픽셀|썸네일|'''대시'''(Dash)]] | [[파일:대시 글자.png|오른쪽|300픽셀|썸네일|'''대시'''(Dash)]] | ||
− | 대시(dash)는 비트코인(bitcoin)처럼 작업 증명 시스템(PoW)을 사용하고, 대시와 비트코인 | + | 대시(dash)는 비트코인(bitcoin)처럼 작업 증명 시스템(PoW)을 사용하고, 대시와 비트코인 둘 다 채굴자들이 수익을 얻기 위해서 작업증명 시스템에서 일종의 문제를 풀고 보상을 받는 식이지만, 두 블록체인의 차이점으로 대시는 수익을 얻는 방법이 마스터 노드(master node)이다. 비트코인은 일반적인 노드만 존재하지만 대시는 일반적인 노드와 마스터 노드 두 가지 모두 존재한다. 마스터 노드는 사용자가 거래할 때마다 여러 다른 사용자 거래와 자동으로 결합이 되는 것으로 여러 사용자끼리 코인이 섞이며, 누가 어떤 돈을 보냈는지 추적할 수 없게 되면, 마피아가 불법 거래 목적으로 보낸 10 대시와 일반인이 구매 물품 목적으로 보낸 10대시의 가치가 같아진다. 자금 추적이 불가능하므로 모든 코인은 같은 가치를 갖게 되고, 마스터 노드가 처리해주는 이 과정을 전문적인 용어로 코인셔플 또는 다크샌드 믹싱(dark send mixing)이라고 하며, 대시 네트워크에서 이러한 코인셔플 과정을 처리해주는 것은 바로 다크샌드 프로토콜이다.<ref name="아이"></ref> |
{{자세히|대시}} | {{자세히|대시}} | ||
=== 다크월렛 === | === 다크월렛 === | ||
[[파일:다크월렛 글자.png|썸네일|300픽셀|'''다크월렛'''(Dark Wallet)]] | [[파일:다크월렛 글자.png|썸네일|300픽셀|'''다크월렛'''(Dark Wallet)]] | ||
− | [[다크월렛]]( | + | [[다크월렛]](dark wallet)의 [[다크코인]](Dark coin)은 최초의 개인 정보 보호 중심 디지털 통화로 2014년 5월에 다크월렛의 첫 번째 알파 버전을 공개하였으며, 다크코인은 다크샌드(darksend)라는 익명의 기술을 사용하여 사용자 자금을 안전하게 유지하고 향후 일정 시점에 추적하지 않고 일상적인 사용을 위해 블록체인을 보호하며, 다크샌드는 [[마스터 노드]] 네트워크로 알려진 2계층 네트워크를 사용하여 믹싱 서비스를 제공한다. 기술을 사용하여 사용자는 높은 수준의 익명성을 얻을 수 있으며, 다크샌드는 신뢰할 수 없고 분산되어 있으며 거의 무료이다. 코인셔플과 다크월렛은 비트코인 네트워크에서 익명을 제공하기 위한 새로운 기술이다. 코인셔플은 자를란트 대학교(Saarland University)의 연구원들에 의해 만들어졌으며, [[팀 러핑]](Tim Ruffing), [[산체스 페드로]] [[모레노]](Sanchez Pedro Moreno) 및 [[케이트 애니켓]](Kate Aniket)이 포함되었고, 다크월랫은 2013년 타키 아미르(Taaki Amir)와 윌슨 코디(Wilson Cody)가 만들었지만 오픈 소스 프로그래머 그룹에 의해 채택되었다.<ref name="대시">eduffield, 〈[https://www.dash.org/forum/threads/security-advisory-for-coinshuffle-and-darkwallet.3736/ CoinShuffle 및 Darkwallet에 대한 보안 권고]〉, 《대시포럼》, 2015-01-25 </ref> |
* '''취약점''' | * '''취약점''' | ||
− | : 코인셔플의 문제는 참가자에게 변경 사항을 | + | : 코인셔플의 문제는 참가자에게 변경 사항을 반환해야 하기 때문에 발생하고, 익명성이 중요한 상황에서는 최대한 주의를 기울여 변화를 처리해야 하며, 변경이 잘못 처리되면 익명화된 트랜잭션이 노출될 수 있음으로 변경이 매우 중요하다. 이는 익명 트랜잭션을 수행한 후 변경으로 수행된 작업을 관찰하여 발생할 수 있고, 익명성 기술을 만들 때 블록체인이 양방향으로 추적 될 수 있으며, 이러한 취약점은 특정 시점에서 1BTC를 익명화하는 경우 일부를 소비하고 나중에 해당 변경 사항을 식별 가능한 트랜잭션과 별도로 유지해야 한다는 사실에서 비롯되며, 식별 가능한 트랜잭션에서 익명의 트랜잭션으로 트랜잭션을 거꾸로 진행할 수 있다. |
: '''순방향 변경 링크''' : | : '''순방향 변경 링크''' : | ||
: [[파일:순방향링크.PNG]] | : [[파일:순방향링크.PNG]] | ||
− | : 이 예에서 엘리스(alice)는 1.2BTC를 익명화하여 2개의 출력(1BTC 및 0.2BTC) | + | : 이 예에서 엘리스(alice)는 1.2BTC를 익명화하여 2개의 출력(1BTC 및 0.2BTC)으로 가고, 1BTC 출력에서, 7BTC를 소비하고 0.3BTC의 변경을 수신한다. 0.3BTC는 식별 가능한 소스로 이동하여 엘리스가 7BTC를 이전 트랜잭션에 사용했음을 확인한다. 익명 트랜잭션의 발신자를 식별하려면 [[코인베이스]](coin base) 트랜잭션에서 시작하여 "Alice sends 0.7BTC anonymous"에 도달할 때까지 블록체인에서 뒤로 하여 코인베이스로써, 최근에 익명으로 무언가를 구입하여 익명성을 완전히 위반한 것은 사용자라는 것을 알고 있다. |
: [[파일:변경된링크.PNG]] | : [[파일:변경된링크.PNG]] | ||
− | : 두 번째 예에서 엘리스는 코인베이스에서 1.2BTC를 | + | : 두 번째 예에서 엘리스는 코인베이스에서 1.2BTC를 구매한 다음이 금액을 1BTC 출력으로 익명화하면, 1BTC를 소비하고 0.3BTC의 양을 변경한 다음 0.2BTC 이전 변경과 결합한다. 익명 트랜잭션 0.3BTC의 변경 사항과 코인셔플 트랜잭션에서 수신한 변경 사항을 결합하여 익명을 완전히 위반한 전후의 전체 히스토리를 링크 할 수 있다. |
: '''해결책''': | : '''해결책''': | ||
− | : 모든 문제를 해결할 수 있지만 입력 및 출력 표시가 필요하다. $1, $5, $10 및 $20의 명칭을 가진 미국 달러와 마찬가지로 다크샌드는 0.1DRK, 1DRK, 10DRK 및 100DRK를 사용하며, 네트워크에서 | + | : 모든 문제를 해결할 수 있지만, 입력 및 출력 표시가 필요하다. $1, $5, $10 및 $20의 명칭을 가진 미국 달러와 마찬가지로 다크샌드는 0.1DRK, 1DRK, 10DRK 및 100DRK를 사용하며, 네트워크에서 믹싱할 때 사용자는 이러한 명칭만 보내고 받을 수 있고, 그 후 교단을 결합하여 필요한 금액을 약간 초과하여 거래를 보호한다. 예를 들면, 사용자가 익명으로 1.17DRK를 지불해야하는 경우 1DRK + 0.1DRK + 0.1DRK를 사용하여, 수취인에게 정확히 1.17DRK를 지불하고 변경 관련 추적을 제거하기 위해 0.03DRK의 채굴 수수료를 지불하는 거래가 발생한다.<ref name="대시"></ref> |
{{자세히|다크월렛}} | {{자세히|다크월렛}} | ||
=== 접근법과 비교 === | === 접근법과 비교 === | ||
* '''제로코인 / 제로캐시''' | * '''제로코인 / 제로캐시''' | ||
− | : [[제로코인]]( | + | : [[제로코인]](zero coin)과 최적화된 [[제로캐시]](zero cash)는 [[지케이스나크]](ZK-SNARKS)와 같은 매우 새로운 암호화를 사용하여 내장 익명성을 제공한다. 제로캐시는 공개 매개 변수의 초기 설정을 위해 신뢰할 수 있는 당사자를 필요로 하는데, 모든 접근 방식은 자체 통화이다. 제로코인 및 제로캐쉬는 [[비트코인]]과 호환되지 않음으로 자체 프로토콜 확장 및 블록체인이 필요하지만 코인셔플은 비트코인 프로토콜을 변경하거나 체인을 포크하지 않고 비트코인 위에서 직접 작동한다.<ref name="크립"></ref> 제로코인은 중요한 계산 및 통신 [[오버헤드]]의 각 거래에 대해 블록체인에 저장해야 하는 증명의 크기는 엄청나게 커서(약 25KB) 증명 크기를 줄이기 위해 제로코인의 유망한 개선으로 교정 크기(1KB 미만) 및 계산 비용을 많이 감소 하였으나, 그럼에도 불구하고 연구 라인은 적응성 측면에서 심각하게 제한된다. 반대로 코인셔플은 더 많은 통신이 필요하지만 즉시 적응할 수 있으며 기존 비트코인 네트워크에서 잘 작동한다.<ref name="셔플"></ref> |
* '''믹스 코인''' | * '''믹스 코인''' | ||
− | : [[믹스코인]]( | + | : [[믹스코인]](mix coin)의 주요 혁신은 믹싱 서버(믹스)에 대한 책임으로, 믹스 서버가 동전을 훔치는 경우 사용자는 이 도난에 대한 암호화 증거를 획득하고 믹스를 책임질 수 있다. 모든 사람들이 증거를 확인할 수 있어 믹스는 그 명성을 잃어버리고 앞으로는 사용하지 못할 것이다. 믹스는 여전히 돈을 훔칠 수 있지만 잡히면 사업에서 쫓겨날 것이다. 반대로 코인셔플의 장점은 도난 후에만 책임감을 제공하는 대신 처음부터 동전을 훔치는 것을 방지하며, 코인셔플에서는 중앙 집중식 혼합 서버가 전혀 필요하지 않으나 코인셔플을 사용하려면 단일 믹싱 라운드 참가자가 동시에 온라인 상태 이어야 한다.<ref name="크립"></ref> |
* '''코인스왑''' | * '''코인스왑''' | ||
− | : 참가자가 [[코인스왑]]( | + | : 참가자가 [[코인스왑]](coin swap)에서 어떤 코인을 어느 코인에 속하는지 알기 때문에 익명성이 제한되며, 최소 4건의 거래와 해당 수수료가 필요로 한 데 비해 코인셔플은 하나의 거래 만 필요하다. 그러나 코인스왑은 본질적으로 두 당사자 프로토콜이므로 상호 작용 및 조정이 덜 필요하며, 원래 코인스왑 스레드 코인셔플을 위한 기초를 제공 코인조인에 상세한 비교를 제공한다.<ref name="크립"></ref> |
{{각주}} | {{각주}} |
2019년 9월 3일 (화) 01:14 기준 최신판
코인셔플(CoinShuffle)은 익명성 프로토콜로 거래 내역을 난독 처리하여 거래를 추적하려는 사람들을 막기 위해 사용되고, 그 안에 저장된 미디어의 데이터 클라우드는 유형과 관계없이 안전한 파일 스토리지 시스템에 사용된다.[1] 비트코인(Bitcoin)에서는 캐시셔플(cashshuffle)이라고 불리며, 대시(Dash)에서는 다크센드(darksend) 또는 다크센드 믹싱(darksend mixing)이라고도 불린다.
개요[편집]
코인셔플은 거래 내역을 난독 처리하여 거래를 추적하려는 사람들을 막기 위해 사용되는 익명성 프로토콜이다.[1] 각각 캐시셔플, 다크샌드, 다크샌드 믹싱 등으로 불리며, 채굴자들이 수익을 얻기 위해서 작업증명 시스템에서 일종의 문제를 풀고 보상을 받는 식이지만, 수익을 얻는 방법인 마스터노드(masternode)가 처리해주는 방법이기도 하다.[2] 코인셔플은 자금을 완전히 익명화할 수 있는 암호화폐 프로토콜이다.
등장배경[편집]
비트코인 테스트 네트워크에 전송된 거래는 네트워크의 첫 번째 코인셔플 구현으로, 2013년 비트코인 개발자 그렉 맥스웰(Greg Maxwell)이 개발한 이 솔루션은 다크월렛(Dark Wallet), 대시(Dash), 엔엑스티(NXT) 및 조인마켓(JoinMarket)에서 구현에 영감을 주어 타사에 의존하지 않는 방식으로 기존 개인정보보호 기술을 구축하기 위해 만들어졌다. 2016년 1월 23일 계정 제어, 코인셔플 및 엔엑스티 데이터 클라우드의 세 가지 주요 기능을 제공하는 블록체인 플랫폼 엔엑스티에서 구현되었지만 2016년 8월 15일 개발자 대니얼 크라위츠(Daniel Krawisz)는 당시 비트코인에서 코인셔플 도구를 사용하는 최초의 트랜잭션이라고 생각했다. 코인셔플 기술의 근본적인 아이디어는 비트코인의 공개 블록체인에서 볼 수 있는 민감한 사용자 정보를 보호하는 것으로 신뢰를 줄이기 위해 거래를 혼합하는 타사 없이 코인조인(coinjoin)을 사용하기 때문에 독특하다.[3]
특징[편집]
- 기능
- 탈중화 : 코인셔플의 핵심 프로토콜에는 신뢰, 책임 또는 신뢰할 수없는 제 3자가 필요하지 않다.
- 익명 성 : 사용자가 혼합 후 사용자의 이전 주소와 새 주소 사이의 관계를 결정할 수 없다.
- 도난 방지 : 코인조인의 원칙에 따라 코인셔플은 혼합 중에 돈을 도난 당하지 않도록 보장된다.
- 호환성 : 코인셔플은 기존 비트코인 프로토콜을 기반으로 실행되며 비트코인 프로토콜 자체를 변경할 필요가 없다.
- 서비스 거부 공격에 대한 견고성 : 코인조인을 기반으로하는 유사한 솔루션이 단일 악의적 인 참가자에 의해 중단 될 수 있지만 코인셔플은 파괴적인 참가자를 식별하여 프로토콜에서 제외 할 수 있다.
- 추가 비용 없다 : 코인셔플은 혼합을 수행하는 데 필요한 표준 비트코인 거래 수수료를 제외하고 추가 혼합 수수료를 요구하지 않는다.
- 성능 : 코인셔플은 사용자에게 작은 통신 오버 헤드 만 도입하고 나머지 비트코인 시스템의 계산 및 통신 오버 헤드를 최소화한다.
- 간단한 암호화 : 코인셔플은 디지털 서명 및 표준 공개 키 암호화와 같은 기본 암호화 기본 만 필요하다.[4]
- 프로토콜
- 프로토콜을 설명하기 위해 4명의 참가자 엘리스(alice), 밥(bob), 찰리(charlie), 데이브(dave)가 있다. 참가자들은 각각의 주소 에 정확히 1개의 BTC를 가지고 있다. 참가자들이 프로토콜을 서로 실행하고 싶다는 것을 이미 알고 있고 서로의 주소를 알고 있다고 가정한다.
- 참가자는 새로운 주소 를 작성하지만 서로에게 표시하지 않고, 코인조인 기반 믹싱의 목표는 입력 주소 및 출력 주소 와 함께 하나의 단일 믹싱 트랜잭션을 만들어 동전과 소유자 간의 관계를 숨기는 것이다. 특정 주문에 충실히 한다면 출력 주소는 A가 속한 가 속한 , 등 입력 및 출력 주소의 연결이 숨겨져 있는지 확인하려면 출력 주소 목록을 섞어야 하고, 생성된 트랜잭션에서 출력 주소를 섞는 것만으로 충분하지 않다. 예를 들면, 모든 사람이 프로토콜 중에 자신의 출력 주소를 알기 쉽게 발표한 경우에 엘리스가 를 발표 하면 모든 사람이 가 엘리스에 속한다는 것을 알게 되고, 프로토콜 중에 전송된 메시지가 익명성을 깨뜨리지 않도록 해야 하며, 코인셔플은 문제를 정확하게 해결할 것이다. 프레젠테이션을 단순화하기 위해 서명을 생략했다.
- 1 단계 : 키 교환
- 엘리스를 제외한 각 참가자는 공개 암호화 키와 개인 암호 해독키로 구성된 공개키 암호화 체계의 키 쌍을 만들고, 공개 암호화 키 를 호출한다. 각 참가자는 자신의 입력 주소에 해당하는 서명 키로 서명된 공개 암호화 키를 발표한다.
- 2 단계 : 셔플 링
- 참가자들은 공개 암호화 키를 알고 있으면 셔플 링을 시작할 수 있다. 엘리스는 모든 암호화 키를 사용하여 출력 주소 를 계층 방식으로 암호화하는데, 엘리스는 데이브를 위해 A'를 먼저 암호화하여 를 얻으면, 암호문은 찰리에 대해 암호화되어 밥에 대해 등을 얻고, 메시지는 밥에게 전송된다.
- 엘리스 ⟶ 밥 :
- 밥은 메시지를 가져 와서 해독하여 를 얻고, 자신의 주소에 대해 중첩 암호화를 작성하여 를 얻으면, 밥은 와 를 포함 하는 두 개의 암호문을 가지고 있고, 밥은이 목록을 무작위로 섞어 두 항목을 교환하거나 남겨 둔다. 참가자들이 교환되는 경우를 가정해 보면, 밥은 섞인 목록을 찰리에게 보낸다.
- 밥 ⟶ 찰리 :
- 찰리는 똑같이 목록에있는 두 항목을 해독하고 자신의 항목을 추가하고 목록을 섞는다.
- 찰리 ⟶ 데이브 :
- 데이브는 다시 동일하게 수행해 모든 항목을 해독하여 를 얻으면, 자신의 주소 추가 를 하여 목록을 섞는다. 결과 섞인 목록은 참가자들에게 보내진다
- 데이브 ⟶ 참가자들 :
- 3 단계 : 거래 생성
- 모든 참가자는 출력 주소 목록을 받고 자신의 출력 주소가 실제로 있는지 확인할 수 있어 거래에 서명한다. 예를 들면, 밥이 자신의 주소가 없다는 것을 알면 거래를 수행하여 동전을 잃을 것이므로 서명하고 싶지 않을 것이다. 밥의 주소가 없으면 프로토콜 실행 중에 누군가가 속임수를 써야 하며, 밥은 불평하고 참가자들은 누가 속이는 사람인지 알아내기 위해 추가 단계에 들어갈 것이다. 코인셔플은 비난 단계가 항상 적어도 한 명의 부정행위 참가자를 노출시키는 지 확인하며, 이 부정행위 참가자는 프로토콜의 후속 실행에서 제외될 수 있다. 밥, 찰리, 데이브가 엘리스 없이 프로토콜을 다시 실행할 수 있다. 2단계에서 셔플링을 수행한 참가자만 자신이 받은 목록의 메시지와 자신이 보낸 목록의 메시지 사이의 관계를 알고 있다는 것이다. 예를 들면, 찰리만이 및 를 연관시킬 수 없기 때문에 를 포함하는 메시지를 첫 번째 위치에 두었다는 것을 알고 있을 것이나 찰리조차도 이것이 밥의 주소가 담긴 메시지임을 알지 못할 것이다. 결국, 정직한 참가자의 모든 주소는 섞여 어떤 참가자도 순열을 모르게 된다.[4]
활용[편집]
비트코인[편집]
비트코인(bitcoin) 혼합 문제에 대한 실용적인 솔루션 코인셔플은 검증 가능성을 보장하기 위해 코인조인(CoinJoin)에서 영감을 받았고, 사용자가 다른 관심 있는 사용자의 동전과 동전을 혼합 할 수 있다. 익명성 및 견고성을 보장하기 위한 그룹 통신 프로토콜 디센트(dissent)가 적극적인 공격에 대한 핵심 아이디어는 암호 해독 믹스 네트워크와 유사하며, 프로토콜에는 서명 및 공개 키와 같은 표준 프리미티브만 필요하다.[5] 코인셔플은 책임 있는 익명 그룹 통신 프로토콜 디샌트(Dissent)에서 영감을 얻었으며 신뢰할 수 있고 책임이 있거나 신뢰할 수 없는 제삼자가 필요하지 않으며 현재 비트코인(Bitcoin) 시스템과 완벽하게 호환되고, 추가 익명 비용을 완전히 피하고 나머지 비트코인 시스템의 계산 및 통신 오버헤드를 최소화하면서 사용자에게 작은 통신 오버헤드 만 도입했다.[6]
코인셔플은 아무도 다른 사람을 믿지 않아도 혼합을 분산시킬 가능성이 있었기 때문에 2014년 자를란트 대학교의 연구원들에 의해 처음 제안되었고, 코인셔플을 사용하면 다른 사용자가 추적을 난독 화하기 위해 단일 주소에 출력 주소를 제출할 수 있어 사용자가 제출한 특정 주소를 다른 사람에게 공개하지 않고 출력 주소를 제출할 수 있고, 모든 참가자는 어떤 주소가 비트코인을 받고 있는지 알 수 있지만 이 비트코인이 어느 주소에서 전송되는지는 아무도 모른다.[7]
- 타사가 없다 : 코인셔플은 비트코인의 분산 된 신뢰 이념을 보존하고, 연결 해제에 관심이 있는 비트코인 사용자가 독점적으로 실행하는 비트코인 거래이며, 신뢰할 수 있고 책임이 없다. 신뢰할 수 없는 제삼자 거래의 비 연결성은 의정서 실행에 최소한 두 명의 참가자가 정직한 한 보호된다.
- 호환성 : 코인셔플은 기존 비트코인 네트워크와 완벽하게 호환되며, 비트코인 규칙을 변경할 필요 없이 비트코인 네트워크 스크립트는 다른 분산 솔루션과 달리 즉시 작동한다.
- 혼합 수수료가 없다 : 서비스 제공 업체 역할을 하는 제 제삼자가 없는 경우, 코인셔플은 추가 믹싱 비용을 사용자에게 부과하지 않으며, 참가자가 비트코인 거래 수수료 측면에서 수행하고, 단일 혼합 거래에 대한 수수료만 청구된다.
- 작은 오버헤드 : 성능 분석 결과 코인셔플이 참가자에게 작은 통신 오버헤드만 도입 계산하는 동안 20명의 참가자가 있는 경우 1분 동안 오버헤드는 무시할 수 있는 수준에 가깝다.
- 공개키,개인키
- 모든 참가자는 다른 사람이 데이터를 암호화할 수 있는 고유한 공개키(public key) 임의의 문자열과 자신이 해독할 수 있는 해당 개인키(private key)를 생성한다. 미리 결정된 임의의 순서에 따라, 모든 참가자는 공개 키를 한 사용자가 모든 공개키로 끝내고, 한 사용자가 모든 것을 한 명으로 끝내는 방식으로 공개 키를 전달한다. 모든 공개 키를 얻은 사용자는 올바른 순서로 하나씩 모든 공개키로 출력 주소를 암호화하고, 모든 개인 키를 사용하여 올바른 순서로 하나씩 만 해독 할 수 있는 암호화 계층으로, 이 패키지는 다음을 제외한 모든 공개 키를 가진 다음 사용자에게 전달된다. 사용자는 자신의 개인 키로 이 패키지를 해독하면, 암호화 양파의 한 계층을 제거하지만 여전히 어떤 출력 주소가 숨겨져 있는지 알 수 없고, 자신의 출력 주소를 모든 공개키 하나만으로 암호화하고 암호화된 패키지를 모두 전달한다. 이다음 사용자는 어떤 패키지가 원래 어떤 사용자에게서 왔는지 전혀 모르지만, 다른 암호화 계층을 둘 다 벗길 수 있으며, 자신이 얻은 모든 공개키로 자신의 출력 주소를 암호화하고 다음에 암호화된 패키지 3개를 전달할 수 있다. 이것은 다른 모든 출력 주소를 포함하는 패키지를 암호화한 마지막 사용자까지 계속되지만, 이 시점에서 모든 패키지에는 하나의 암호화 계층만 남고, 마지막 사용자는 한 번에 모든 암호를 해독 할 수 있으며, 자신의 출력 주소를 믹스에 추가하고 하나의 큰 코인조인 트랜잭션을 구성한 다음 모든 참가자에게 다시 보내 서명하는데, 모든 참가자는 자신의 출력 주소가 트랜잭션에 포함되어 있는지 확인하고 서명하고 트랜잭션을 브로드 캐스트 할 수 있다. 누가 어떤 출력 주소를 제공했는지는 아무도 모른다.[7]
- 코인셔플 ++
- 코인셔플은 의도 한 대로 작동하지만, 프로토콜을 완료하는 데 많은 단계가 필요하므로 일상적인 사용에는 다소 비현실적이어서 코인셔플++은 본질적으로 코인셔플의 기능을 수행하지만, 더 빠르고 좋다. 코인셔플의 참가자가 공개 및 개인 키 쌍을 생성하는 경우 코인셔플 ++ 트랜잭션의 참가자는 상호 비밀을 생성하고, 고유한 숫자 문자열도 있어 각 참가자는 문자열을 다른 모든 참가자와 공유하지만 각 공유 비밀은 두 사람 사이에서만 공유된다. 그런 다음 모든 참가자는 공유하는 모든 비밀을 사용하여 자신의 출력을 마스크 하지만, 공유 비밀은 각 참여자 쌍에 대한 양수 값과 양수 값으로 사용어. 한 참가자가 공유 비밀 12345로 자신의 출력을 마스크 하면 다른 참가자는 -12345로 자신의 출력을 마스크 한다. 다이닝(Dining) 암호화폐 문제에서 설명된 것처럼 트릭을 허용한다. 모든 참가자가 마스킹 된 출력을 공유하면 모든 공유 비밀이 서로 상쇄되는 방식으로 이들을 결합 할 수 있다. 모든 출력의 조합에서 특정 출력을 추출하는 것은 또 다른 수학적 트릭이 작용하는 곳으로, 소위 뉴턴의 정체성 트릭의 기술적인 세부 사항은 고급 수학의 복잡성에 너무 많이 빠져 있기 때문에 자세히 알 수 없으나 기본적으로 메시지의 여러 중복 인코딩을 사용하여 수행되며, 참가자는 누가 어떤 주소를 제공했는지 알 필요 없이 모든 원래 출력 주소를 로컬로 추출하는 데 적용 할 수 있고, 코인셔플 프로토콜보다 훨씬 빠르고 효율적으로 만들기 위해 한 번에 수행 할 수 있다는 것으로 자를란트 대학의 연구원에 따르면 최대 50명의 참가자가 약 15초 안에 코인셔플 ++ 프로토콜을 완성 할 수 있으며, 일반적인 POS(point-of-sale) 상황에 아주 빠르다.[7]
- 대부분의 다른 익명화 솔루션과 마찬가지로 코인셔플 프로토콜은 개인 정보 및 기능을 향상시키지만, 그들 자신과 완전한 익명 성과 기능성을 제공하기에는 충분하지 않으며 약점도 없다. 코인셔플 과 코인셔플 ++ 프로토콜의 한 가지 단점으로는 부정직한 참가자에게만 좋지 않다. 참가자 중 한 명이라도 성공적인 셔플을 차단하려는 경우 프로세스에 가짜(암호화된) 데이터를 삽입하거나 프로세스의 일부에 전혀 참여하지 않을 수 있고, 참가자를 추적해도 특정 참가자 없이 프로토콜을 간단하게 다시 시작할 수 있으며, 모든 혼합의 총 시간이 증가하지만, 혼합은 완료된다. 일반적인 코인조인 거래와 관련된 많은 약점도 셔플 프로토콜을 지원하는 데 가장 중요한 것은, 집단 거래에서 전송된 서로 다른 금액이 동일하지 않은 경우에 어떤 입력과 출력이 대응하는지 파악하여 목적을 완전히 상실 할 수 있어 모든 참가자가 실제로 하나이며, 동일한 엔티티인 경우에 시빌(Sybil) 공격으로 여러 가지 혼합이 전혀 차이가 없을 것이다. 한 엔티티는 단순히 자신의 것이 아닌 입력과 출력만 연결할 수 있다.[7]
- 프로토콜의 보안분석
- 프로토콜의 적합성으로 코인셔플은 비트코인 프로토콜을 변경할 필요가 없고, 코인셔플을 성공적으로 실행하면 트랜잭션 형식이 비트코인의 현재 규칙에 따라 유효한 거래가 가능해서 프로토콜은 즉시 배포 가능하며, 신뢰할 수 있는 타사가 믹싱을 수행하는 시스템 일반적으로 비트코인에 정의된 거래 수수료와 믹싱 서버에 필요한 믹싱 요금(혼합 요금)이 없다. 코인셔플에서는 그렇지 않아서 혼합 요금이 필요하고, 공동으로 실행하는 사용자에게는 요금이 청구되며, 현재 배포된 비트코인 프로토콜에 정의된 거래 수수료, 능률은 이미 비트코인에 배포된 디지털 서명 외에 표준 공개키 암호화 및 해시 기능만 필요하다. 계산이 제한된 하드웨어에서도 프로토콜을 실행할 수 있고, 비트코인에 대한 작은 영향으로는 성공적인 프로토콜 실행 시 코인셔플 참가자는 공동으로 하나의 비트코인 거래 만 생성한 블록체인이며 네트워크의 모든 노드에서 확인해야 하므로 비트코인 시스템에 대한 계산은 코인셔플을 실행하여 스토리지 측면에서 최소한의 오버헤드 만 발생한다.[5]
엔엑스티[편집]
엔엑스티(NXT)가 2016년 1월 23일 발표한 버전 1.7.4는 계정 제어를 통해 탁월한 보안을 위해 다중 서명 계정을 쉽게 만들 수 있으며, 코인셔플은 거래 내역을 난독 처리하여 거래를 추적하려는 사람들을 막기 위해 사용되고, 그 안에 저장된 미디어의 데이터 클라우드는 유형과 관계없이 안전한 파일 스토리지 시스템에 사용된다. 계정관리를 사용하여 최상의 보안을 위해 다중 서명 계정을 만들고, 계정 제어를 통해 엔엑스티 투표 시스템을 사용하여 향상된 다중 서명 트랜잭션을 사용하여 투표 프로세스에 의해 승인된 후에만 계정의 트랜잭션을 실행할 수 있으며, 데이터 클라우드를 사용하여 파일, 문서 또는 임의의 데이터를 블록체인에 저장, 검색 및 게시한다. 엔엑스티 데이터 클라우드는 자동 제거 및 암호화를 포함한 저렴한 비용 / 수수료 및 옵션으로 작은 파일, 문서 또는 임의의 데이터를 블록체인에 분산, 검열 및 변조 방지 게시 및 검색 할 수 있도록 하고, 코인셔플 시스템을 사용하여 엔엑스티 자금을 익명화한다. 엔엑스티는 분산 형 믹싱 / 코인 셔플 서비스를 자체 블록체인에 기본적으로 통합한 최초의 암호화폐 플랫폼으로, 사용자는 엔엑스티에 보유된 자금을 완전히 익명화 할 수 있다.[1] 엔엑스티에 대해 자세히 보기
대시[편집]
대시(dash)는 비트코인(bitcoin)처럼 작업 증명 시스템(PoW)을 사용하고, 대시와 비트코인 둘 다 채굴자들이 수익을 얻기 위해서 작업증명 시스템에서 일종의 문제를 풀고 보상을 받는 식이지만, 두 블록체인의 차이점으로 대시는 수익을 얻는 방법이 마스터 노드(master node)이다. 비트코인은 일반적인 노드만 존재하지만 대시는 일반적인 노드와 마스터 노드 두 가지 모두 존재한다. 마스터 노드는 사용자가 거래할 때마다 여러 다른 사용자 거래와 자동으로 결합이 되는 것으로 여러 사용자끼리 코인이 섞이며, 누가 어떤 돈을 보냈는지 추적할 수 없게 되면, 마피아가 불법 거래 목적으로 보낸 10 대시와 일반인이 구매 물품 목적으로 보낸 10대시의 가치가 같아진다. 자금 추적이 불가능하므로 모든 코인은 같은 가치를 갖게 되고, 마스터 노드가 처리해주는 이 과정을 전문적인 용어로 코인셔플 또는 다크샌드 믹싱(dark send mixing)이라고 하며, 대시 네트워크에서 이러한 코인셔플 과정을 처리해주는 것은 바로 다크샌드 프로토콜이다.[2] 대시에 대해 자세히 보기
다크월렛[편집]
다크월렛(dark wallet)의 다크코인(Dark coin)은 최초의 개인 정보 보호 중심 디지털 통화로 2014년 5월에 다크월렛의 첫 번째 알파 버전을 공개하였으며, 다크코인은 다크샌드(darksend)라는 익명의 기술을 사용하여 사용자 자금을 안전하게 유지하고 향후 일정 시점에 추적하지 않고 일상적인 사용을 위해 블록체인을 보호하며, 다크샌드는 마스터 노드 네트워크로 알려진 2계층 네트워크를 사용하여 믹싱 서비스를 제공한다. 기술을 사용하여 사용자는 높은 수준의 익명성을 얻을 수 있으며, 다크샌드는 신뢰할 수 없고 분산되어 있으며 거의 무료이다. 코인셔플과 다크월렛은 비트코인 네트워크에서 익명을 제공하기 위한 새로운 기술이다. 코인셔플은 자를란트 대학교(Saarland University)의 연구원들에 의해 만들어졌으며, 팀 러핑(Tim Ruffing), 산체스 페드로 모레노(Sanchez Pedro Moreno) 및 케이트 애니켓(Kate Aniket)이 포함되었고, 다크월랫은 2013년 타키 아미르(Taaki Amir)와 윌슨 코디(Wilson Cody)가 만들었지만 오픈 소스 프로그래머 그룹에 의해 채택되었다.[8]
- 취약점
- 코인셔플의 문제는 참가자에게 변경 사항을 반환해야 하기 때문에 발생하고, 익명성이 중요한 상황에서는 최대한 주의를 기울여 변화를 처리해야 하며, 변경이 잘못 처리되면 익명화된 트랜잭션이 노출될 수 있음으로 변경이 매우 중요하다. 이는 익명 트랜잭션을 수행한 후 변경으로 수행된 작업을 관찰하여 발생할 수 있고, 익명성 기술을 만들 때 블록체인이 양방향으로 추적 될 수 있으며, 이러한 취약점은 특정 시점에서 1BTC를 익명화하는 경우 일부를 소비하고 나중에 해당 변경 사항을 식별 가능한 트랜잭션과 별도로 유지해야 한다는 사실에서 비롯되며, 식별 가능한 트랜잭션에서 익명의 트랜잭션으로 트랜잭션을 거꾸로 진행할 수 있다.
- 순방향 변경 링크 :
- 이 예에서 엘리스(alice)는 1.2BTC를 익명화하여 2개의 출력(1BTC 및 0.2BTC)으로 가고, 1BTC 출력에서, 7BTC를 소비하고 0.3BTC의 변경을 수신한다. 0.3BTC는 식별 가능한 소스로 이동하여 엘리스가 7BTC를 이전 트랜잭션에 사용했음을 확인한다. 익명 트랜잭션의 발신자를 식별하려면 코인베이스(coin base) 트랜잭션에서 시작하여 "Alice sends 0.7BTC anonymous"에 도달할 때까지 블록체인에서 뒤로 하여 코인베이스로써, 최근에 익명으로 무언가를 구입하여 익명성을 완전히 위반한 것은 사용자라는 것을 알고 있다.
- 두 번째 예에서 엘리스는 코인베이스에서 1.2BTC를 구매한 다음이 금액을 1BTC 출력으로 익명화하면, 1BTC를 소비하고 0.3BTC의 양을 변경한 다음 0.2BTC 이전 변경과 결합한다. 익명 트랜잭션 0.3BTC의 변경 사항과 코인셔플 트랜잭션에서 수신한 변경 사항을 결합하여 익명을 완전히 위반한 전후의 전체 히스토리를 링크 할 수 있다.
- 해결책:
- 모든 문제를 해결할 수 있지만, 입력 및 출력 표시가 필요하다. $1, $5, $10 및 $20의 명칭을 가진 미국 달러와 마찬가지로 다크샌드는 0.1DRK, 1DRK, 10DRK 및 100DRK를 사용하며, 네트워크에서 믹싱할 때 사용자는 이러한 명칭만 보내고 받을 수 있고, 그 후 교단을 결합하여 필요한 금액을 약간 초과하여 거래를 보호한다. 예를 들면, 사용자가 익명으로 1.17DRK를 지불해야하는 경우 1DRK + 0.1DRK + 0.1DRK를 사용하여, 수취인에게 정확히 1.17DRK를 지불하고 변경 관련 추적을 제거하기 위해 0.03DRK의 채굴 수수료를 지불하는 거래가 발생한다.[8]
접근법과 비교[편집]
- 제로코인 / 제로캐시
- 제로코인(zero coin)과 최적화된 제로캐시(zero cash)는 지케이스나크(ZK-SNARKS)와 같은 매우 새로운 암호화를 사용하여 내장 익명성을 제공한다. 제로캐시는 공개 매개 변수의 초기 설정을 위해 신뢰할 수 있는 당사자를 필요로 하는데, 모든 접근 방식은 자체 통화이다. 제로코인 및 제로캐쉬는 비트코인과 호환되지 않음으로 자체 프로토콜 확장 및 블록체인이 필요하지만 코인셔플은 비트코인 프로토콜을 변경하거나 체인을 포크하지 않고 비트코인 위에서 직접 작동한다.[4] 제로코인은 중요한 계산 및 통신 오버헤드의 각 거래에 대해 블록체인에 저장해야 하는 증명의 크기는 엄청나게 커서(약 25KB) 증명 크기를 줄이기 위해 제로코인의 유망한 개선으로 교정 크기(1KB 미만) 및 계산 비용을 많이 감소 하였으나, 그럼에도 불구하고 연구 라인은 적응성 측면에서 심각하게 제한된다. 반대로 코인셔플은 더 많은 통신이 필요하지만 즉시 적응할 수 있으며 기존 비트코인 네트워크에서 잘 작동한다.[5]
- 믹스 코인
- 믹스코인(mix coin)의 주요 혁신은 믹싱 서버(믹스)에 대한 책임으로, 믹스 서버가 동전을 훔치는 경우 사용자는 이 도난에 대한 암호화 증거를 획득하고 믹스를 책임질 수 있다. 모든 사람들이 증거를 확인할 수 있어 믹스는 그 명성을 잃어버리고 앞으로는 사용하지 못할 것이다. 믹스는 여전히 돈을 훔칠 수 있지만 잡히면 사업에서 쫓겨날 것이다. 반대로 코인셔플의 장점은 도난 후에만 책임감을 제공하는 대신 처음부터 동전을 훔치는 것을 방지하며, 코인셔플에서는 중앙 집중식 혼합 서버가 전혀 필요하지 않으나 코인셔플을 사용하려면 단일 믹싱 라운드 참가자가 동시에 온라인 상태 이어야 한다.[4]
- 코인스왑
- 참가자가 코인스왑(coin swap)에서 어떤 코인을 어느 코인에 속하는지 알기 때문에 익명성이 제한되며, 최소 4건의 거래와 해당 수수료가 필요로 한 데 비해 코인셔플은 하나의 거래 만 필요하다. 그러나 코인스왑은 본질적으로 두 당사자 프로토콜이므로 상호 작용 및 조정이 덜 필요하며, 원래 코인스왑 스레드 코인셔플을 위한 기초를 제공 코인조인에 상세한 비교를 제공한다.[4]
각주[편집]
- ↑ 1.0 1.1 1.2 비트코인 PR 버즈, 〈NXT, NXT ANNOUNCES VERSION 1.7.4!〉, 《비트코이니스트》, 2016-02-05
- ↑ 2.0 2.1 icoreport, 〈Dash를 통해 본 마스터노드의 이해 ( 부제 : 코인으로 돈 세탁을 ?! )〉, 《스팀잇》
- ↑ Alyssa Hertig, 〈Bitcoin Privacy Tool ‘CoinShuffle’ Sees First Transaction〉, 《코인데스크》, 2016-08-25
- ↑ 4.0 4.1 4.2 4.3 4.4 크립시스 공식 홈페이지 - https://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/
- ↑ 5.0 5.1 5.2 2014년 코인셔플 백서 - https://petsymposium.org/2014/papers/Ruffing.pdf
- ↑ 팀 러핑등 3명, 〈[https://dl.acm.org/citation.cfm?id=3088431 CoinShuffle : 비트 코인을위한 실용적인 분산 코인 믹싱]〉, 《ACM DL》, 2014-09-07
- ↑ 7.0 7.1 7.2 7.3 〈프라이버시와 Fungibility를 보호하기위한 동전 섞기 : 전통적인 믹싱의 새로운 장〉, 《비트코인 매거진》, 2016-06-14
- ↑ 8.0 8.1 eduffield, 〈CoinShuffle 및 Darkwallet에 대한 보안 권고〉, 《대시포럼》, 2015-01-25
참고자료[편집]
- 크립시스 공식 홈페이지 - https://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/
- Alyssa Hertig, 〈Bitcoin Privacy Tool ‘CoinShuffle’ Sees First Transaction〉, 《코인데스크》, 2016-08-25
- 비트코인 PR 버즈, 〈NXT, NXT ANNOUNCES VERSION 1.7.4!〉, 《비트코이니스트》, 2016-02-05
- icoreport, 〈Dash를 통해 본 마스터노드의 이해 ( 부제 : 코인으로 돈 세탁을 ?! )〉, 《스팀잇》
- eduffield, 〈CoinShuffle 및 Darkwallet에 대한 보안 권고〉, 《대시포럼》, 2015-01-25
- 〈프라이버시와 Fungibility를 보호하기위한 동전 섞기 : 전통적인 믹싱의 새로운 장〉, 《비트코인 매거진》, 2016-06-14