원래의:Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium》
저자: Vitalik Buterin, Jacob Illum, Matthias Nadler, Fabian Schar 및 Ameen Soleimani
편집 : 오데일리 어때요?
오늘 부테린과 다른 사람들은 블록체인 개인 정보 보호 및 규제 준수: 실용 균형을 향하여라는 제목의 개인 정보 보호 프로토콜에 관한 연구 논문을 공동으로 작성했습니다.
이 백서는 스마트 계약을 기반으로 한 새로운 개인 정보 보호 프로토콜인 개인 정보 보호 풀을 설명하고, 그 장점과 단점을 논의하고, 정직한 사용자와 부정직한 사용자의 균형을 맞추는 방법을 보여줍니다. 이 프로토콜은 영지식 증명을 사용하여 전체 거래 내역을 공개하지 않고 사용자 자금의 적법성을 확인하고, 개인 정보 보호 및 규제 요구 사항의 균형을 맞추는 동시에 범죄 활동과 관련된 자금을 필터링하도록 설계되었습니다.
이제 오데일리는 논문의 핵심을 다음과 같이 정리합니다.
I. 소개
퍼블릭 블록체인은 설계상 투명합니다. 기본 아이디어는 중앙집중화된 제3자에 의존하지 않고도 누구나 거래 확인을 선택할 수 있다는 것입니다. 의존성을 줄임으로써 금융 및 자주권 신원을 포함하되 이에 국한되지 않는 다양한 애플리케이션을 위한 중립적 기반을 제공합니다.
그러나 개인 정보 보호 관점에서 볼 때 공개 데이터세트는 모든 블록체인 주소를 포함하는 모든 거래를 소유합니다. 누군가가 자산을 다른 주소로 이전하거나 스마트 계약과 상호 작용할 때마다 해당 거래는 항상 블록체인에 표시됩니다. 이는 분명히 개인 정보 보호 요구 사항에 부합하지 않습니다.
예: Alice는 블록체인 지갑으로 레스토랑에서의 저녁 식사 비용을 지불합니다. 이제 수취인은 Alice의 주소를 알고 해당 주소에서 과거와 미래의 모든 활동을 분석할 수 있습니다. 마찬가지로 이제 Alice는 레스토랑의 지갑 주소를 알고 있으며 이 정보를 사용하여 다른 손님의 지갑 주소를 얻거나 레스토랑의 수익을 볼 수 있습니다. 또는 레스토랑과 앨리스의 지갑 주소를 알고 있는 제3자(예: 소셜 미디어)는 앨리스의 실제 거주지 주소를 쉽게 추론하고 앨리스의 과거 및 미래 거래를 연구할 수 있습니다.
개인 정보 보호 강화 프로토콜의 등장은 위의 문제를 해결하는 것입니다. 이를 통해 사용자는 하나의 주소를 사용하여 프로토콜에 자금을 입금하고 나중에 다른 주소를 사용하여 프로토콜에서 자금을 인출할 수 있습니다. 모든 입출금은 여전히 블록체인에서 볼 수 있지만 특정 이체 및 출금 간의 통신은 더 이상 공개되지 않습니다.
가장 잘 알려진 개인 정보 보호 강화 프로토콜 중 하나는 Tornado Cash입니다. 위의 문제를 성공적으로 해결하여 사용자가 일부 개인 정보를 유지할 수 있습니다. 그러나 데이터를 보호하려는 합법적인 사용자 외에도 Tornado Cash는 다양한 악의적인 행위자에 의해 사용됩니다. 입금 데이터를 보면 해커 그룹이 이 프로토콜을 통해 자금을 이체한 것으로 나타났습니다. 이 개인정보 보호 프로토콜이 북한 해킹 그룹에서도 사용되었다는 증거가 있으며, 결과적으로 프로토콜의 스마트 계약 주소가 미국 해외자산통제국(OFAC)이 관리하는 특별 지정 국민 및 차단자 목록에 포함되었습니다. (종종 SDN 목록이라고도 함)
Tornado Cash의 주요 문제는 합법적 사용자와 범죄 사용자 간의 경계가 모호해진다는 것입니다.따라서 Tornado Cash는 사용자가 특정 인출금이 어느 예금에서 발생했는지에 대한 증거를 생성할 수 있는 규정 준수 기능을 제공합니다. 이 메커니즘을 통해 사람들은 자신의 결백을 증명할 수 있지만 중앙 집중식 중개자를 신뢰해야 하고 정보 비대칭이 발생하는 대가를 치르게 됩니다. 결국 이 메커니즘은 사용자들이 거의 사용하지 않게 되었습니다.
이 기사에서는 사용자가 개인 정보를 잃지 않으면서 인출금이 어떤 예금에서 발생했는지에 대한 정보를 공개적으로 증명할 수 있도록 하는 이 접근 방식의 확장에 대해 설명합니다.프라이버시 풀은 일반적인 개념을 제안합니다. 즉, 멤버십 증명(“내 출금이 이 예금 중 하나에서 이루어졌음을 증명합니다”) 또는 제외 증명(“내 출금이 이 예금 중 하나에서 이루어지지 않았음을 증명합니다”)을 허용합니다.이 문서에서는 이 제안에 대해 논의하고 이 제안을 사용하여 정직한 사용자와 부정직한 사용자 간의 균형을 달성하는 방법을 설명합니다.
개인 정보 보호 풀은 사용자의 작업 집합을 확장하여 추가 선택 사항을 제공합니다. 필요한 경우 특정 거래상대방에게 더 자세한 인증을 제공할 수 있습니다. 그러나 어떤 경우에는 회원 자격 또는 제외 증명만으로 충분할 수 있습니다. 또한 이러한 인증을 공개적으로 공개하는 옵션은 양자 공개에 비해 여러 가지 이점을 제공합니다.
2. 기술적 배경
이 섹션에서는 간략한 기술 개요를 제공하고 개인 정보 보호 풀과 같은 프로토콜의 기술 구성 및 일반 원칙에 대해 논의합니다.
1. ZK-SNARK 이전의 블록체인 개인정보 보호
역사적으로 블록체인 지지자들은 모든 거래가 투명하지만 블록체인은 익명성을 제공하기 때문에 개인정보를 보호한다고 주장해 왔습니다.
최신 클러스터링 및 분석 도구의 출현으로 이러한 개인 정보 보호가 충분하지 않게 되었습니다. 퍼블릭 블록체인의 개인정보 보호를 개선하기 위해 토큰 조인 및 모네로와 같은 더 강력한 기술이 도입되었습니다. 하지만,이러한 기술에는 여전히 데이터 유출 위험이 있습니다.
그런 다음 각 거래의 익명성 세트를 모든 이전 거래의 전체 세트와 동일하게 만들 수 있는 Zcash 및 Tornado Cash와 같은 범용 영지식 증명 기술이 등장했습니다. 이 기술을 종종 ZK-SNARK라고 합니다.
2、 ZK-SNARKs
ZK-SNARK는 증명자가 공개 및 비공개 데이터에 대한 특정 수학적 주장을 증명할 수 있도록 하는 기술입니다.무지식(Zero Knowledge)과 단순성(Simplicity)이라는 두 가지 핵심 속성을 동시에 충족합니다.
●제로 지식:해당 개인 데이터가 주장을 준수한다는 것을 증명하는 것 외에는 개인 데이터에 대한 어떠한 정보도 공개되지 않습니다.
● 간단:증명된 주장에 시간이 많이 걸리는 계산이 필요하더라도 증명은 짧고 빠르게 확인할 수 있습니다.
ZK-SNARK는 ZK 롤업과 같은 확장성 중요성으로 인해 블록체인 커뮤니티에서 많은 관심을 받았습니다. 개인 정보 보호 애플리케이션의 경우 단순성은 특별히 중요하지 않지만 지식이 없는 것이 필수적입니다.
ZK-SNARK로 입증됨"성명"으로 볼 수 있다"회로"공개 및 비공개 입력을 사용하여 함수 f(x, w)의 결과를 계산한 다음 주어진 공개 입력 x에 대해 f(x, w의 결과가 되는 비공개 입력 w가 존재함을 증명하는 프로그램 유형 ) 사실이다.
3. Zcash 및 Tornado Cash와 같은 시스템에 ZK-SNARK 적용
다양한 버전의 Zcash와 Tornado Cash 등 Zcash에서 영감을 받은 시스템 간에는 약간의 차이가 있습니다. 그러나 그들이 의존하는 기본 논리는 매우 유사합니다. 이 섹션에서는 이러한 프로토콜이 작동하는 방식과 대략적으로 일치하는 간단한 버전을 설명합니다.
토큰은 소유자가 보유한 비밀로 구성됩니다. s에서 두 가지 값을 파생할 수 있습니다.
● 공개 토큰 ID L = hash(s + 1)
● 무효화기U = hash(s + 2)
그 중 해시(hash)는 SHA 256과 같은 암호화 해시 함수를 말한다. s가 주어지면 토큰 ID와 제로라이저를 계산할 수 있습니다. 그러나 제로저 세트와 공개 토큰 ID가 주어지면 해시 함수의 의사 무작위 동작으로 인해 두 제로저를 모두 생성한 비밀을 알지 않는 한 어떤 제로저가 어떤 토큰 ID와 연관되어 있는지 확인할 수 없습니다.
블록체인 추적에는"만들다"모든 토큰 ID 중"경비"모든 제로라이저 중. 두 세트 모두 지속적으로 증가하고 있습니다(프로토콜이 언제 토큰을 사용해야 하는지 강제하지 않는 한).
토큰 ID 모음은 Merkle 트리라는 데이터 구조에 저장됩니다. 트리에 N 항목이 포함되어 있으면 인접한 각 항목이 해시되고(결과적으로 ⌈ N/2 ⌉ 해시가 생성됨) 인접한 각 해시가 다시 해시됩니다(결과적으로 ⌈ N/4 ⌉ 해시) 등 전체 데이터가 단일 서버에 제출될 때까지 계속됩니다."루트 해시"가운데.
트리의 특정 값과 루트 해시가 주어지면 Merkle 분기를 제공할 수 있습니다. 즉, 해당 값에서 루트까지 경로의 각 단계에서 함께 해시되는 해시입니다."자매의 가치". 이 Merkle 분기는 특정 값이 실제로 트리에 있음을 증명하는 데 사용할 수 있는 작은(log 2(N) 해시) 데이터 조각이기 때문에 유용합니다. 아래 그림은 높이 4의 머클 트리의 예를 보여줍니다.
사용자가 다른 사람에게 코인을 보낼 때 다음을 제공합니다.
● 쓰고 싶은 널파이어U
● 생성하려는 새 토큰의 토큰 ID L(수신자에게 이를 제공하도록 요청)
● ZK-SNARK.
ZK-SNARK에는 다음과 같은 개인 입력이 포함되어 있습니다.
● 사용자의 비밀
● 토큰 ID 트리의 머클 분기는 토큰 ID L = 해시(s + 1)인 토큰이 실제로 과거 어느 시점에 생성되었음을 증명합니다.
또한 다음과 같은 공개 입력도 포함됩니다.
● U, 지출된 토큰의 제로화 장치
● R, Merkle 증명이 대상으로 삼는 루트 해시
ZK-SNARK는 두 가지 속성을 증명합니다.
● U = hash(s + 2)
● Merkle 분기가 유효합니다.
ZK-SNARK 외에도 프로토콜은 다음을 확인합니다.
● R은 토큰 ID 트리의 현재 또는 과거 루트 해시입니다.
● U는 소모된 nullifier 세트에 포함되지 않습니다.
트랜잭션이 유효하면 사용된 무효화 집합에 U를 추가하고 토큰 ID 목록에 L을 추가합니다. U를 표시하면 단일 토큰이 이중으로 사용되는 것을 방지할 수 있습니다. 그러나 그 외의 정보는 공개되지 않습니다.외부 세계는 트랜잭션이 전송되는 시기만 볼 수 있으며 누가 이러한 트랜잭션을 보내고 받는지에 대한 패턴을 얻을 수 없으며 토큰의 통합 소스를 구별할 수 없습니다.
위 패턴에는 입금과 출금이라는 두 가지 예외가 있습니다. 예금에서는 이전 토큰을 무효화하지 않고도 토큰 ID를 생성할 수 있습니다. 개인 정보 보호 관점에서 볼 때, 주어진 L과 L을 추가할 수 있는 외부 이벤트(Tornado Cash에서는 시스템에 ETH를 입금하고 Zcash에서는 새로운 ZEC 채굴) 사이의 연관성으로 인해 예금은 익명이 아닙니다.
다시 말해서,예금은 과거 거래 내역과 연결되어 있습니다.출금 시에는 새로운 토큰 ID 추가 없이 제로라이저가 소모됩니다. 이로 인해 해당 예금에서 인출이 차단되고 과거 거래 내역에서 간접적으로 연결이 끊어질 수 있습니다. 그러나 인출은 인출 이벤트 이후에 발생하는 향후 거래와 연결될 수 있습니다.
Tornado Cash의 첫 번째 버전에는 내부 이체 개념이 없으며 입금 및 출금만 허용됩니다. 아직 실험적인 최신 버전에서는 내부 이체와 다양한 액면가의 동전도 허용했습니다."분할"그리고"병합"운영 지원. 우리는 이후 장에서 기본적인 개인정보 보호 코인 전송 시스템과 개인정보 풀을 임의 단위로 확장하는 방법에 대해 논의할 것입니다.
4. 프라이버시 풀의 ZK-SNARK
프라이버시 풀의 핵심 아이디어는 사용자가 영지식 증명을 통해 출금이 이전 예금과 연관되어 있음을 증명할 뿐만 아니라 더 엄격한 연관 집합에 속한다는 것을 증명하는 것입니다.연관된 컬렉션은 이전에 이루어진 모든 예금의 하위 집합이거나 사용자 자신의 예금만 포함하는 컬렉션이거나 그 사이의 모든 것일 수 있습니다. 사용자는 관련 세트의 Merkle 루트를 공개 입력으로 제공하여 세트를 지정합니다.
아래 그림과 같이 단순화를 위해 관련 세트가 실제로 이전에 입금된 부분 집합인지 직접 증명하지 않고, 대신 사용자에게 리프 노드와 동일한 코인 ID를 사용하도록 요구합니다. 제로 지식을 통해 두 개의 Merkle 분기를 증명합니다.
● 전체 코인 ID 세트의 루트 R의 Merkle 분기를 입력합니다.
●제공된 연관 세트 루트 RA의 Merkle 분기로
이것의 목적은 전체 연관 세트를 어딘가(온체인일 수 있음)에 배치하는 것입니다. 핵심 개념은 사용자에게 정확히 어느 예금에서 인출했는지 지정하도록 요구하거나 극단적으로 이중 지출이 없다는 증거 외에는 정보를 제공하지 않고 사용자가 소스가 될 수 있는 일련의 옵션을 제공할 수 있도록 허용한다는 것입니다. 그리고 이 컬렉션은 원하는 만큼 넓거나 좁을 수 있습니다.
우리는 사용자가 자신의 선호도에 맞는 연결 모음을 더 쉽게 지정할 수 있도록 하는 생태계 형성을 권장합니다. 이 문서의 나머지 부분에서는 이 간단한 핵심 메커니즘을 기반으로 한 인프라와 그 결과에 대해서만 설명합니다.
3. 실제 고려 사항 및 사용 사례
적용 측면에서 개인정보 보호 강화 프로토콜이 실제로 어떻게 사용되는지 분석합니다.
1. 연관 컬렉션 사용 사례
법 집행 환경에서 이 프로그램의 가치를 설명하기 위한 예는 다음과 같습니다.
Alice, Bob, Carl, David, Eve 등 5명의 사용자가 있다고 가정합니다. 처음 4명의 사용자는 정직하고 법을 준수하지만 개인정보 보호에 민감한 사용자인 반면 Eve는 도둑입니다. 이브라고 적힌 주소의 코인이 도난당했다는 정보를 통해 대중은 이브가 도둑이라는 사실을 알고 있기 때문이다. 실제로 이런 일이 자주 발생합니다. 퍼블릭 블록체인에서는 DeFi 프로토콜의 취약점을 악용하여 생성된 자금을 추적하고 태그를 지정하여 Tornado Cash로 유입되는 불법 자금을 식별합니다.
이 5명의 사용자가 각각 탈퇴할 때 지정할 관련 세트를 선택할 수 있습니다. 관련 세트에는 자신의 예금이 포함되어야 하지만, 포함할 다른 주소를 자유롭게 선택할 수 있습니다. 처음 4명의 사용자는 한편으로는 자신의 개인 정보를 최대한 보호하기를 원했습니다. 이것은 그들이 연합 세트를 더 크게 만드는 경향이 있도록 동기를 부여합니다. 반면에 그들은 상인이나 거래소에서 자신의 코인이 의심스러운 것으로 간주될 가능성을 줄이고 싶어합니다. 이를 수행하는 쉬운 방법이 있습니다. 관련 세트에 Eve를 포함하지 않습니다. 그러므로 그들 중 네 명에 대한 선택은 분명합니다. 그들의 연관 집합을 {Alice, Bob, Carl, David}로 두십시오.
물론 Eve도 자신의 연관 집합을 최대화하고 싶어합니다. 그러나 그녀는 자신의 예금을 제외할 수 없으므로 그녀는 다섯 가지 예금의 집합과 동일한 연관 집합을 갖게 됩니다. 참가자의 관련 컬렉션 선택은 아래 그림과 같습니다.
이브 자신은 아무런 정보도 제공하지 않았지만, 간단한 배제 과정을 통해 우리는 명확한 추론을 할 수 있습니다. 즉, 5단계 철수는 이브에게서만 나올 수 있다는 것입니다.
2. 관련 컬렉션 구축
이전 섹션에서는 프라이버시 풀과 유사한 프로토콜에서 관련 세트를 사용하는 한 가지 가능한 방법과 정직한 참가자를 나쁜 참가자로부터 분리할 수 있는 방법을 설명했습니다. 시스템은 Alice, Bob, Carl 및 David의 이타주의에 의존하지 않으며 분리를 정당화할 명확한 인센티브가 있습니다. 이제 관련 컬렉션의 구성을 더 자세히 살펴보겠습니다. 일반적으로 연관 컬렉션을 생성하는 데는 두 가지 주요 전략이 있습니다. 아래에 설명되어 있으며 아래 이미지에 시각화되어 있습니다.
● 포함(또는 회원):위험도가 낮은 것으로 간주할 수 있는 강력한 증거가 있는 특정 예금 집합을 식별하고 해당 예금만 포함하는 연관 집합을 구성합니다.
● 들어오지 못하게 하다:위험도가 높다고 판단되는 결정적인 증거가 있는 특정 예금 집합을 식별하고 해당 예금을 제외한 모든 예금을 포함하는 연관 집합을 구성합니다.
실제로 사용자는 관련 컬렉션에 포함할 예금을 수동으로 선택하지 않습니다. 반대로,사용자는 특정 속성을 가진 연관 컬렉션을 생성하는 ASP(Association Collection Provider)라고 하는 중개자를 구독하게 됩니다.어떤 경우에는 ASP가 완전히 온체인에 구축되어 인간(또는 AI) 개입이 필요하지 않을 수도 있습니다. 다른 경우에는 ASP가 관련 컬렉션을 독립적으로 생성하고 관련 컬렉션을 온체인 또는 다른 곳에 게시합니다.
최소한 연결 집합의 Merkle 루트를 온체인에 게시하는 것이 좋습니다. 이렇게 하면 악의적인 ASP가 사용자에 대해 특정 유형의 공격을 수행하는 기능이 제거됩니다(예: 익명화를 위해 다른 사용자에게 다른 연결 집합 제공). 전체 컬렉션은 API를 통해 또는 이상적으로는 IPFS와 같은 저비용 분산형 스토리지 시스템을 통해 제공되어야 합니다.
전체 연결 세트를 다운로드하는 기능은 사용자가 인출에 해당하는 예금은 물론 ASP에 추가 정보를 공개하지 않고도 로컬에서 멤버십 증명을 생성할 수 있기 때문에 중요합니다.
실제로 ASP가 구성되는 방식은 다음과 같습니다.
● 나쁜 행위자를 제외하고 추가 지연:모든 예치금은 일정 시간(예: 7일)이 지나면 관련 컬렉션에 자동으로 추가되지만, 시스템이 예치금이 대량 절도 또는 정부가 게시한 제재 목록에 있는 주소와 같은 알려진 나쁜 행위와 연관되어 있음을 감지하는 경우, 보증금은 추가되지 않습니다. 실제로 이는 커뮤니티에서 관리하는 컬렉션이나 이미 나쁜 행동과 관련된 예금을 식별하고 추적하는 작업을 수행한 기존 거래 심사 서비스 제공업체를 통해 달성할 수 있습니다.
● 1인당 월별 요금:연관 집합에 가입하려면 예치금의 가치가 고정된 최대치보다 낮아야 하며 예금자는 자신이 일부 신원 토큰(예: 정부 지원 국가 ID 시스템 또는 경량 메커니즘)을 보유하고 있다는 사실을 전혀 모르고 증명해야 합니다. 소셜 미디어 계정 확인으로). 이번 달의 폐기 메커니즘을 나타내는 추가 매개변수와 혼합하여 각 ID가 한 달에 한 번만 관련 컬렉션에 예치금을 커밋할 수 있도록 합니다. 이 디자인은 많은 일반적인 자금 세탁 방지 규칙의 정신을 구현하려고 시도하여 특정 기준점 미만의 소액 결제를 통해 더 높은 수준의 개인 정보 보호를 허용합니다. 이는 전적으로 스마트 계약으로 구현될 수 있으므로 지속적인 운영을 유지하기 위해 수동 감독이 필요하지 않습니다.
● 신뢰할 수 있는 커뮤니티 회원에게는 매월 요금이 청구됩니다.1인 월별 요금과 비슷하지만 더 제한적입니다. 사용자는 신뢰도가 높은 커뮤니티의 구성원임을 증명해야 합니다. 신뢰도가 높은 커뮤니티 구성원은 서로에게 개인정보를 제공하는 데 동의합니다.
● 인공지능 기반 실시간 채점:AI ASP 시스템은 실시간으로 각 예금에 대한 위험 점수를 제공할 수 있으며, 시스템은 위험 점수가 특정 임계값 이하인 예금이 포함된 관련 컬렉션을 출력합니다. 잠재적으로 ASP는 여러 위험 점수 임계값에 해당하는 여러 세트를 출력할 수 있습니다.
4. 추가 기술 설명
본 절에서는 제안이 어떻게 임의 명칭을 지원하는지 분석하고, 재인증, 양자 직접 인증, 순차 인증 등 특수 사례를 논의한다.
1. 어떤 교단이든 지지하라
위의 단순화된 개인정보 보호 통화 시스템은 동일한 단위의 통화 이체만 지원합니다. Zcash는 UTXO 모델을 사용하여 임의 명칭을 지원합니다. 각 트랜잭션에는 여러 입력(각 입력에 대해 nilifier를 게시해야 함)과 여러 출력(각 출력에 대해 토큰 ID를 게시해야 함)이 있을 수 있습니다. 생성된 각 토큰 ID에는 암호화 명칭 값이 동반되어야 합니다. 제로라이저의 유효성을 입증하는 것 외에도 각 거래에는 생성된 코인의 액면가 합계가 소비된 코인의 액면가 합계를 초과하지 않는다는 추가 증거가 수반되어야 합니다. 아래 그림은 이 추가 증거를 보여줍니다.
이 설계는 예금을 (암호화되지 않은) 입력으로, 인출을 (암호화되지 않은) 출력으로 처리하여 예금 및 인출을 지원하도록 확장될 수 있습니다. 또한 분석을 단순화하기 위해 설계를 제한할 수도 있습니다. 예를 들어, 부분 인출만 허용될 수 있으므로 거래에는 암호화된 입력 1개와 출력 2개가 있습니다. 즉, 인출을 나타내는 암호화되지 않은 출력과 향후 인출에 사용할 수 있는 나머지 자금을 나타내는 암호화된 변경 출력이 있습니다.
자연스러운 질문은 프라이버시 풀을 지원하기 위해 이 디자인을 확장하는 방법입니다. 이를 변경하지 않고 프라이버시 풀에 삽입하는 것은 거래 그래프가 우리가 직관적으로 기대하는 것과 일치하지 않기 때문에 이상적이지 않습니다. 사용자가 10개의 토큰을 입금한 다음 4번의 연속 인출 토큰에 1+2+3+4를 소비하면 우리는 각각의 토큰을 처리하려고 합니다. 이 4개의 인출은 원래 10개 토큰 예금의 원천입니다. 그러나 실제 결과는 아래 그림과 같습니다. 첫 번째 출금 소스는 10개 토큰의 입금이고, 두 번째 출금 소스는 첫 번째 출금으로 생성된 9개 토큰의 변경 출력입니다. 이로 인해 ASP가 중간 예치금을 검증하고 이를 관련 컬렉션에 추가해야 하기 때문에 실제로 문제가 발생합니다.
이 예에서 4번의 인출이 모두 원래의 10코인 예치금을 소스로 가지려면 두 가지 문제를 해결해야 합니다.
● 각각의 부분 인출이 다른 인출과 공개적으로 연결되어 있지 않은지 확인하세요.
● 각각의 부분 인출에 관련 컬렉션의 구성원으로 예금을 포함할 수 있습니다.
더 복잡한 MIMO 트랜잭션 대신 부분 인출만 지원하고 각 인출에 해당하는 단일 정의가 있는지 확인하는 경우"원래 예금", 이를 직접 수행하는 방법에는 여러 가지가 있습니다. 자연스럽고 확장 가능한 접근 방식은 트랜잭션을 통해 일부 정보의 가능성을 전파하는 것입니다. 예를 들어, 블라인드를 보장하기 위해 임의의 값 r이 추가된 커밋 해시(coinID+hash®)를 트랜잭션에 포함하도록 요구할 수 있으며, 트랜잭션의 커밋이 상위 트랜잭션과 동일하다는 것을 증명하기 위해 ZK-SNARK를 요구할 수 있습니다. 상위 트랜잭션 자체가 출금인 경우 약정은 원래 예금의 코인 ID와 동일하며, 상위 트랜잭션이 예금인 경우 약정은 원래 예금의 코인 ID와 동일합니다. 따라서 체인의 모든 거래에는 원래 예금 코인 ID에 대한 약속이 포함되어야 하며 이 값이 거래에서 제공하는 관련 세트에 있다는 증거가 필요합니다.
잔액 집계 공격에 대한 개인정보 보호를 강화하기 위해 코인 병합도 지원할 수 있습니다. 예를 들어, 코인이 남아 있으면 다음 입금 시 코인과 병합할 수 있습니다. 이를 수용하기 위해 우리는 트랜잭션에 코인 ID 세트를 커밋하도록 요구할 수 있으며, 상위 항목의 결합을 커밋하기 위해 여러 입력이 있는 트랜잭션을 요구할 수 있습니다. 인출에는 모든 커밋된 코인 ID가 관련 세트에 있다는 증거가 포함됩니다.
2. 특별한 상황
● 꾸짖다:사용자는 프라이버시 풀 프로토콜과 유사하게 예금을 인출하기 위해 비밀 예금 정보가 필요합니다. 동일한 비밀 정보는 연관 세트 멤버십 증명을 구성하는 데에도 사용됩니다. 비밀 정보를 보존하면 사용자는 다른 세트 또는 업데이트된 관련 세트에 맞는 새로운 증명을 생성할 수 있습니다. 이는 사용자에게 더 큰 유연성을 제공하지만 추가적인 위험을 초래할 수도 있습니다.
● 양자 직접 증명:경우에 따라 사용자는 정확한 출금 출처를 다른 당사자에게 공개해야 할 수도 있습니다. 사용자는 자신의 예금만 포함하는 관련 컬렉션을 만들고 해당 컬렉션에 대한 증거를 생성할 수 있습니다. 이러한 증명은 일반적으로 예외이며 두 당사자가 공유할 때 부분적인 개인 정보 보호에만 기여합니다. 그러나 증거를 공유하려면 강력한 신뢰 가정을 설정해야 합니다.
● 순차적 증명:프라이버시 풀과 같은 시스템을 사용하는 빠른 거래 경제에서는 이러한 환경에 맞게 프로토콜을 수정해야 합니다. 입출금 거래 유형 외에도 프로토콜은 효율성을 높이기 위해 내부 전송 작업을 지원해야 합니다. 또한 Merkle 지점과 키를 전달함으로써 사용자는 거래 내역에 대한 정보를 전파하여 수신자가 자금 출처를 확인할 수 있습니다. 이를 통해 각 사용자는 자신이 받는 자금에 대한 신뢰를 갖는 데 필요한 최소한의 정보를 갖게 됩니다.
실제로 동전에는 여러 원산지가 있을 수 있습니다. 예를 들어, Bob은 커피 가판대 주인이고 Alice로부터 토큰 5개, Ashley로부터 토큰 4개, Anne으로부터 토큰 7개를 받고, 하루가 끝날 때 저녁 식사 비용을 지불하기 위해 Carl에게 토큰 15개를 지불해야 합니다. 대신 David는 Carl으로부터 15개의 토큰을, Chris로부터 25개의 토큰을 받았을 수 있으며 Emma(교환)에 30개의 토큰을 입금하려고 합니다. 이러한 보다 복잡한 경우에는 동일한 원칙을 따릅니다. 즉, 오래 전에 연관된 컬렉션에 추가된 기록은 무시할 수 있지만 새로운 기록은 전달되어야 합니다.
5. 자세한 내용
개인 정보 보호 풀과 같은 시스템을 통해 사용자는 알려진 불법 활동과의 분리를 입증하는 기능을 유지하면서 금융 거래 데이터의 개인 정보를 더 많이 보호할 수 있습니다. 우리는 정직한 사용자가 다음 두 가지 요소의 조합을 통해 그러한 계획에 참여하도록 장려될 것으로 기대합니다.
● 개인정보 보호에 대한 욕구
● 의심을 불러일으키지 않으려는 욕구
1. 사회적 합의와 연합 세트
자금이 좋은지 나쁜지 판단하는 데 완벽한 합의가 있다면 시스템은 간단한 분리 균형을 생성합니다. 좋은 자산을 소유한 모든 사용자는 유일한 좋은 관련 세트에 속한다는 것을 증명할 수 있는 강력한 인센티브와 능력을 갖습니다. 반면, 악의적인 행위자는 그러한 증거를 제공할 수 없습니다. 그들은 여전히 불량 자금을 풀에 예치할 수 있지만, 이는 그들에게 어떤 호의도 주지 않습니다. 누구나 개인 정보 보호가 강화된 프로토콜에서 자금이 인출되었음을 쉽게 확인할 수 있으며 인출이 의심스러운 출처의 예금이 포함된 관련 컬렉션을 참조하는지 확인할 수 있습니다. 게다가 나쁜 돈이 좋은 돈을 더럽히지 않습니다. 합법적인 예금에서 자금을 인출할 때 소유자는 관련 컬렉션에서 알려진 불량 예금을 모두 제외할 수 있습니다.
전 세계적으로 합의가 이루어지고 자금이 좋음 또는 나쁨으로 간주되는지 여부에 대한 결론이 사회적 관점이나 관할권에 따라 달라지는 경우 협회 집합은 매우 다양할 수 있습니다. 서로 다른 규칙 세트를 가진 두 개의 관할권이 있다고 가정합니다. A 관할권과 B 관할권의 주체는 동일한 개인 정보 보호 강화 계약을 사용할 수 있으며 해당 관할권의 요구 사항을 충족하는 인증서를 발급하도록 선택할 수 있습니다. 둘 다 자체 관련 컬렉션 내에서 개인 정보 보호를 쉽게 구현하고 해당 관할권의 요구 사항을 준수하지 않는 출금을 제외할 수 있습니다. 원할 경우 두 관련 세트의 교차점에 대해 회원 증명서가 발행될 수 있으므로 인출에 해당하는 예치금이 두 관할권의 요구 사항을 준수한다는 것을 확실하게 증명할 수 있습니다.
따라서 제안은 매우 유연하며 중립적인 인프라로 간주되어야 합니다. 한편으로는 검열에 맞서 싸우고 있습니다. 이를 통해 누구나 자신이 선택한 제휴 컬렉션에 가입하고 자신의 커뮤니티 내에서 비공개로 유지할 수 있습니다. 반면, 외부인은 규제 요구 사항을 충족하는 특정 협회에 대한 증거를 요구할 수 있습니다. 따라서 개인 정보 보호 강화 프로토콜에 악의적인 행위자 커뮤니티가 있더라도 해당 정보가 관련 세트 구성에 정확하게 반영되는 한 의심스러운 예금 출처를 숨길 수 없습니다.
2. 관련 컬렉션의 속성
연관 컬렉션이 작동하려면 특정 속성이 필요합니다. 사용자가 인출된 자금을 안전하게 사용하고 있다는 것을 신뢰할 수 있도록 수집은 정확해야 합니다. 또한 각 세트의 속성은 안정적이어야 합니다. 즉, 시간이 지나도 변경될 가능성이 낮아야 합니다. 이는 새로운 컬렉션에 대한 재검증 철회의 필요성을 줄여줍니다. 마지막으로, 의미 있는 개인 정보 보호를 달성하려면 연관 세트가 충분히 커야 하며 다양한 유형의 예금을 포함해야 합니다. 그러나 이러한 속성은 서로 충돌합니다. 일반적으로 크고 다양한 컬렉션은 더 나은 개인 정보 보호 속성을 가질 수 있지만 정확성과 안정성이 떨어질 수 있으며, 작은 컬렉션은 유지 관리가 더 쉽지만 개인 정보 보호 수준이 낮습니다.
3. 실무적 고려사항 및 경쟁
암호화폐 자산을 수용하는 규제 대상 기관은 자신에게 적용되는 법률 및 규정이 해당 자금의 수용을 허용하는지 확인해야 합니다. 오늘날 이러한 기업 중 다수는 잠재적으로 의심스러운 활동, 불법 주소에 대한 링크 또는 기타 비준수 거래를 식별하기 위해 블록체인을 분석하는 소프트웨어 또는 서비스인 소위 거래 검사 도구에 의존합니다. 스크리닝 도구는 종종 위험 점수를 통해 각 거래와 관련된 위험을 표현합니다. 이 등급은 이체된 자금의 목적지와 거래 내역을 기반으로 합니다. 개인 정보 보호를 강화하는 프로토콜은 이와 관련하여 문제를 일으킬 수 있습니다. 이는 입금과 출금 사이의 가시적인 연결을 제거합니다. 따라서 개인 정보 보호 강화 프로토콜이 있는 경우 위험 점수는 증명을 고려하고 연관 집합을 기반으로 점수를 할당해야 합니다.
거래 심사를 위한 도구 및 서비스는 주로 블록체인 분석 및 관련 법률 분야의 전문 지식을 갖춘 전문 회사에서 제공됩니다. 이상적으로는 이러한 회사(및 기타 모든 사람)는 모든 거래에 대한 정확한 위험 점수를 제공하기 위해 모든 회원 증명 및 해당 관련 컬렉션에 액세스할 수 있습니다. 따라서 모든 증거는 블록체인이나 기타 공개적으로 접근 가능한 증거 저장소에 저장하는 것이 좋습니다. 유일한 예외는 특정 상대방과 공유되는 크기 1의 회원 증명서입니다. 분명한 이유로 이러한 증거는 공개적으로 제공되어서는 안 됩니다.
증명을 체인에 직접 저장하면 추가 거래 비용이 추가되지만 조정 노력이 줄어들고 경쟁이 더욱 심화되며 비공개 증명에 대한 지식으로 인해 심사 도구 제공업체가 개발할 수 있는 준독점 위험이 완화됩니다.
프라이버시 풀의 일반 설정은 매우 유연합니다. 특정 연관 컬렉션을 생성하여 다양한 사용 사례에 맞게 프로토콜을 사용자 정의할 수 있습니다. 다음은 이러한 특수 연관 컬렉션의 두 가지 예입니다.
● 상업 은행 컨소시엄은 고객의 예금만 포함하는 관련 컬렉션을 만들 수 있습니다.이를 통해 모든 인출은 컬렉션이 참여 은행 중 한 곳에서 고객 파악(KYC) 및 자금 세탁 방지(AML) 절차를 거쳤다는 증거를 생성하지만 어떤 인출이 어느 고객에게 속하는지는 밝히지 않습니다.
● 금융 중개인이 자금 출처를 명확하게 문서화해야 하는 경우 사용자 예금만 포함된 관련 세트에 대한 증거를 제공하도록 사용자에게 요구할 수 있습니다.그런 다음 이 증명은 중개자와 쌍방으로 교환되므로 사용자가 개인 정보 보호 풀을 사용한 적이 없는 것처럼 자금을 추적할 수 있습니다. 이를 위해서는 사용자가 증거를 공개하지 않는 중개자를 신뢰해야 하지만 이상적으로는 사용자가 정보를 대중에게 공개하지 않고도 규정을 준수할 수 있습니다.
4. 디자인 선택 및 대안
연관 컬렉션, zk 증명 및 자발적 공개를 기반으로 하는 매우 유연한 설정입니다. 이는 제안이 다양한 관할권에 적용될 수 있도록 하는 데 유용하지만 특정 설계 선택에 대해서는 매우 주의해야 합니다. 특히 우리가 반대하는 두 가지 잠재적 조정이 있습니다. 우리는 그들이 신뢰 요구 사항에 문제가 있고 준독점적인 시장 구조를 만들 수 있다고 믿습니다. 아래에서는 이러한 대안을 간략하게 설명하고 논의합니다.
● 중앙 집중식 액세스:법 집행 기관, 암호화폐 위험 평가 제공자 또는 유사한 행위자는 다른 사람의 개인 정보를 유지하면서 사용자 거래 간의 링크를 볼 수 있는 액세스 권한을 얻을 수 있습니다.
● 시스템 전체 화이트리스트:개인 정보 보호 시스템은 풀에 코인을 입금할 수 있는 사용자 유형에 제한을 두거나 추가 증거를 제공하도록 요구하거나 중앙 위험 평가 시스템이 예금을 거부할 수 있는 대기 기간을 갖도록 예금을 요구할 수 있습니다.
두 가지 방법은 특정 엔터티에 권한을 부여한다는 점에서 유사합니다. 이로 인해 복잡한 거버넌스 질문이 제기됩니다. 누가 이 정보에 접근할 수 있습니까? 권한을 관리할 수 있는 권한은 누구에게 있습니까? 민간 기업은 좋은 선택이 아닌 것 같습니다. 어떤 특권이라도 소수의 기업이 이러한 서비스를 제공하는 데이터에 접근할 수 있는 반면 다른 기업은 경쟁할 수 없는 과점 시장 구조를 만들 가능성이 있기 때문입니다.
마찬가지로, 특히 국제적 환경에서 공공 기관에 권한을 위임할 때 많은 거버넌스 및 정치적 문제에 직면하게 됩니다. 기관이 지금까지 100% 신뢰할 수 있고 정치적 의제를 추구하기 위해 권한을 남용하지 않으며 권한 남용을 강요할 수 있는 다른 기관에 의존하지 않더라도 이 상황은 정체의 신호입니다. 시간이 지남에 따라 조직, 구성원, 국가 및 조직 내의 정치 구조가 변경됩니다. 외부 압력이 있을 수 있으며 이러한 특권의 존재는 조직의 거버넌스 시스템을 방해하고 영향력을 얻기 위한 추가적인 인센티브를 생성할 수 있습니다.
또한 조직 내부 또는 외부의 공격이나 중앙화된 엔터티를 대신한 오류는 광범위한 결과를 초래할 수 있습니다. 우리는 이러한 중앙화된 실패 지점의 생성을 방지해야 한다고 믿습니다.
그럼에도 불구하고 우리는 다양한 거래 규모와 상황에 따라 다양한 증거 조합이 필요할 수 있음을 인정합니다. 예를 들어, 대규모 거래의 경우 많은 사용자는 결국 체인 상에서 배제에 대한 기본적인 증거를 제공하고 거래 상대방에게 자금 출처에 대한 보다 자세한 정보를 제공하게 될 수 있습니다.
5. 심층연구의 방향
이 연구는 zkSNARK 기반 개인정보 보호 강화 프로토콜이 규제된 환경에서 어떻게 사용될 수 있는지에 대한 개요를 제공하지만, 추가 연구를 할 가치가 있는 몇 가지 측면이 있습니다.
첫째, 이러한 프로토콜을 통해 얻은 개인 정보 보호는 다양한 요인에 따라 달라진다는 점을 인식해야 합니다. 공격자는 불충분하게 큰 연관 세트, 잘못된 루트 선택 및 사용자 오류를 기반으로 인출을 특정 예금과 연관시킬 수 있습니다.
또한, 다른 사용자의 선택이 귀하의 개인정보에 부정적인 영향을 미칠 수 있습니다. 극단적인 경우, 풀에 있는 다른 모든 사람들은 규모 1의 멤버십 증명을 게시하여 예금과 출금 사이의 직접적인 연관성을 드러냅니다. 분명히 이것은 남아있는 유일한 입출금 거래 사이의 연관성을 암묵적으로 드러낼 것입니다. 좀 더 미묘한 예에서는 다양한 멤버십 증명의 제약 조건을 사용하여 정보를 추출하고 잠재적으로 입출금을 높은 확률로 연관시킬 수 있습니다. 이렇게 증명된 정보가 거래 메타데이터와 결합되면 프로토콜의 개인 정보 보호 속성이 손상될 수 있습니다.
마지막으로, 악의적인 ASP는 알려진 해당 출금과 함께 예금을 추가하여 정보 추출을 최대화하거나 인식된 익명성을 높일 수 있는 방식으로 제안된 연관 세트를 컴파일하도록 선택할 수 있습니다. 이러한 모든 문제에는 제공된 개인정보 보호 속성을 평가하기 위한 추가 연구가 필요합니다. 비슷한 맥락에서, 균형 분리의 속성을 더 조사하고, 특정 가정 하에서 좋은 플레이어와 나쁜 플레이어가 어떻게 행동하는지, 전자에 대한 공개 증거가 후자의 개인 정보 보호에 어떻게 영향을 미치는지 모델링하는 것은 흥미로울 것입니다.
법률 전문가는 특정 공개 요구 사항을 추가로 조사할 수 있습니다. 본 백서에 제시된 시나리오는 유연하며, 법률 전문가의 통찰력은 다양한 법적 관할권에서 규정 준수를 보장하기 위해 계약 및 이를 중심으로 구축된 생태계를 맞춤화하는 데 도움이 될 수 있습니다.
6. 결론
많은 경우 개인정보 보호와 규정 준수는 서로 충돌하는 것으로 간주됩니다. 이 기사에서는 개인 정보 보호 강화 프로토콜을 통해 사용자가 자금 출처의 특정 속성을 증명할 수 있는 경우 반드시 그런 것은 아니라고 제안합니다. 예를 들어, 사용자는 추가 정보를 공개하지 않고도 자신의 자금이 알려진 불법 출처의 예금과 연결되어 있지 않거나 해당 자금이 특정 예금 모음의 일부임을 증명할 수 있다고 가정합니다.
이러한 설정은 정직한 사용자가 자신이 일부 규정을 준수하는 연관 집합에 속해 있음을 증명하고 해당 집합 내에서 개인 정보 보호를 유지하도록 강력하게 인센티브를 받는 분리 균형을 생성할 수 있습니다. 반면, 부정직한 사용자의 경우 그러한 증거를 제공할 수 없습니다. 이를 통해 정직한 사용자는 자신이 동의하지 않는 제3자 예금과의 연결을 끊거나 규정을 준수하는 환경에서 자금을 사용하는 것을 방지할 수 있습니다. 우리는 이 제안이 유연하며 잠재적으로 다양한 규제 요구 사항에 맞게 조정될 수 있다고 믿습니다.
이 기사는 금융 개인정보 보호와 규제의 미래 공존 가능성에 대한 기여로 간주되어야 합니다. 우리는 토론을 자극하고 대화를 보다 긍정적이고 건설적인 방향으로 이끌어 나가기를 바랍니다. 이 제안을 확장하고 수정하려면 실무자, 여러 학문 분야의 학계, 정책 입안자, 규제 기관 간의 협력이 필요하며, 궁극적인 목표는 규제된 환경에서 사용할 수 있는 개인 정보 보호 강화 인프라를 만드는 것입니다.