안녕하세요 @areyoucrazy입니다.
1편에 이어 2편을 계속합니다.
2.5 마스터노드 실험계획안
마스터노드들은 마스터노드 어나운스 메시지와 마스터노드 핑 메시지를 포함하는 일련의 프로토콜 확장을 사용하여 네트워크에 전파됩니다. 이 두 메시지 수단들은 네트워크에서 노드를 활성화하는데 필요한 전부이며, 이 메시지들을 넘어선 다른 싱행 하기 위한 서비스 증명 요구는 프라이빗센드와 인스탄트센드가 있습니다.
마스터노드들은 1,000 대쉬를 지갑의 특정 주소로 전송하여 노드를 “활성화”하여 네트워크를 통해 전파할 수 있게함으로써 형성됩니다. 모든 추가 메시지에 서명하는데 사용되는 보조 개인키가 만들어집니다. 후자의 키는 독립 모드에서 실행할 시에 지갑을 완전히 잠글 수 있습니다.
콜드 모드는 두 개의 개별 기계에서 2차 개인 키를 활용함으로써 사용가능합니다. 기본적인 “핫” 고객은 메세지에 2차 개인 키를 포함한 1,000 대쉬 입력에 서명합니다. 콜드 고객이 2차 키를 포함한 메시지를 확인하자마자 마스터 노드로 활성화합니다. 이를 통해 “핫” 고객은 비활성화 (고객이 꺼집니다)되어 공격자가 활성화 후 마스터노드에 접속하여 1,000 대쉬에 접근할 가능성이 없습니다.
시작시, 마스터노드는 “마스터노드 소개” 메시지를 네트워크에 다음을 포합해 보냅니다:
Message: (1K DASH Input, Reachable IP Address, Signature, Signature Time, 1K Dash Public Key, Secondary Public Key, Donation Public Key, Donation Percentage)
이후 15분마다 노드가 아직 활성화 됐음을 나타내는 핑 메시지가 전송됩니다.
Message: (1K DASH Input, Signature (using secondary key), Signature Time, Stop)
활성화 시간이 만료되면 네트워크는 비활성 노드르 제거하여, 고객이 사용하지 못하거나 지불을 할 수 없도록 만듭니다. 노드들은 지속적으로 핑할 수 있지만, 포트가 열려있지 않으면, 비활성 상태로 표시되고 지불은 일체 되지 않습니다.
2.6 마스터노드 목록의 전파
대쉬 네트워크에 새로 입문하는 고객들은 반드시 그들의 서비스들을 활용하기 위해서는 네트워크상의 현재 활성화된 마스터노드들을 인지하고 있어야합니다. 고객들을 메쉬 네트워크에 합류하자마자, 그들의 동료들한테 마스터노드들의 알려진 목록을 묻는 명령이 전송됩니다. 캐시 객체는 고객들이 마스터노드들과 그들의 현재 상태를 기록하는데 사용됨으로써, 고개들이 재시작할 때 그들이 단순히 마스터노드들의 전체 목록을 묻는 대신에 파일을 로드하기만 하면 됩니다.
2.7 채굴과 집행을 통한 지불방법들
각 각의 마스터노드가 공정한 블록에 해당하는 보상금을 지불하는 것을 사수 하기우해서, 네트워크는 반드시 블록들을 올바른 마스터노드에 지불하는 것을 강요합니다. 만약 채굴자가 준순하지 않은 경우 해당 블록을 네트워크에서 거부해합니다, 그렇지 않으면 부정 행위가 유도됩니다.
저희는 마스터노드들이 쿼럼들을 형성하고, 승리하는 마스터노드를 선택하고 그에 해당하는 메시지들을 공개하는 전략을 제안합니다. N 개의 메시지들이 동일한 수취인을 선택한 방송이 나간 후, 의견 일치가 형성되어 문제의 블록은 해당 마스터노드를 지불해야합니다.
네트워크에서 채굴할 시, 풀 소프트웨어 (개별 채굴자들의 노력을 합치는 웹사이트들)는 RPC API 인터페이스를 사용하여 어떻게 블록을 생성하는 지에 대한 정보를 얻습니다. 마스터노드들에게 지불을 하기 위해서는, 이 인터페이스가 반드시 “겟블록템플릿”에 보조 수취인을 확장해야합니다. 그런 다음 푸들은 성공적으로 채굴된 블록들을 전파하고 자신들과 마스터노드 사이에 분할 지불을 합니다.
- 프라이빗샌드
저희는 높은 수준의 사생활을 제공하는 참조 클라이언트에서 고객의 사적 업무를 존중하기 위해 표준적인 신용 없는 구현이 중요하다고 생각합니다. 일렉트럼, 안드로이드, 그리고 아이폰과 같은 다른 클라이언드들도 동일한 익명 계층이 직접 구현되며 실험계획안을 확장하여 활용합니다. 이를 통해 고객들은 공통적으로 잘 이해된 시스템을 사용하여 익명 자금들을 처리할 수 있습니다.
프라이빗샌드는 코인조인이 향상되고 확장된 형태입니다. 코인조인의 핵심적인 개념에 추가하여, 저희들은 분권화, 체인 접근법을 통한 강력한 익명성, 교단 및 수동적인 시단대 별 혼합과 같은 일련의 개선 사항들을 채택합니다.
암호화 화페의 사적인 자유와 대체 가능성을 개선 할 때 가장 큰 과제는 블록 체인 전체를 모호하게하지 않도록 하는 것입니다. 비트코인 기반 암호화 통화에서는, 누구나 사용되지 않은 출력과 그렇지 않은 출력들 (일반적으로 UTXO로 알려진, UTXO는 사용되지 않은 거래 출력을 뜻함)을 구별할 수 있습니다. 이로 인해 어떠한 사용자든 거래의 무결성을 보증하는 역할 수 있는 공용 원장이 되는 상황으로 연결됩니다. 비트코인 계획안은 신뢰할 수 있는 거래 상대방이 부재시의 그들의 참여 없이 작동할 수 있도록 설계됐으며, 공용 블록체인을 통해 감사 기능들을 사용자가 쉽게 이용할 수 있는 것은 결정적입니다. 저희의 목표는 사적인 자유와 대체 성을 저희가 믿는 성공적인 화폐의 핵심적인 요소들을 잃지 않고 향상시키는 것입니다.
통화 내에서 분산된 혼합 서비스가 있음으로써, 저희는 토와 자체를 완벽하게 대체 가능하게 할 수 있는 능력을 얻습니다. 대체 가능성은 통화의 모든 단위가 평등하게 유지 됨을 통재하는 속성입니다. 사용자가 통화 내의 돈을 수령하면, 이전 사용자들의 기록과 같이 오지 말아야합니다. 그렇지 않으면 사용자들은 그 기록에서 그들을 분리하여 모든 코인들을 동일하게 유지해야합니다. 동시에, 어느 사용자든 다른 사용자들의 사생활을 손상키지 않으면서 공공 장부의 재정적 무결성을 보장하기 위한 감사원을 역할을 수행할 수도 있습니다.
대체 가능성을 개선하고 공개 블록 체인의 무결성을 유지하기 위해, 저희는 사전에 분산된 신용 없는 혼합 전략을 사용하는 것을 제안합니다. 화폐를 대체 성을 효과적으로 유지하기 위해서, ㅇㅣ 서비스는 통화에 직접 내장되어 있어, 일반적인 사용자가 사용하기 쉽고 안전합니다.
3.1 금액에 의한 코인조인 추적
코인 조인의 존재하는 비트코인 구현에서 일반적인 전략은 단순히 거래들을 병합하는 것입니다. 이것은 사용자들을 이런 결합된 거래들을 통해 사용자의 코인을 추적하는 다양한 방벙들에 노출시킵니다.
그림 2: 2명의 사용자가 있는 코인조인의 거래 예시 [11][12]
이 거래에서, 0.05BTC가 믹서를 통해 전송되었습니다. 돈의 출처를 확인하개 위해, 오른쪽의 값들을 왼쪽의 값들 중 일치하는 것이 있을 때까지 더하면 됩니다.
거래를 속보:
0.05 + 0.0499 + 0.0001 (수수료) = 0.10BTC.
0.0499 + 0.05940182 + 0.0001 (수수료) = 0.10940182BTC.
더 많은 사용자들이 믹서에 추가되면 될수록 기하 급수적으로 이 방법은 어려워집니다. 그러나, 이러한 활동들은 미래에 언제든지 소급 적용할 수 있습니다.
3.2 연결 및 순방향 연결
코인조인의 다른 제안된 구현들에서는, 사용자가 돈을 익명화 한 다음 해당 거래에서 교환 또는 사용자 신원을 알고 있는 다른 독립체로 잔 돈/거스름돈을 전송할 수도 있습니다. 이것은 익명성을 깨뜨리고 독립체가 해당 사용자들의 거래들을 역행할 수 있게합니다. 저희는 이러한 유형의 공격을 “순방향 링크”라고 부릅니다.
그림 3: 순방향 연결
이 예에서는, 엘리스는 1.2BTC를 익명화합니다. 이 출력은 1BTC와 0.2BTC 두개의 출력으로 연결됩니다. 그 후 그녀는 1BTC 출력에서 0.7BTC를 활용합으로써 0.3의 거스름돈을 수령합니다. 그 0.3 BTC는 이후 식별 가능한 출처로 이동하여, 이전 거래에서 0.7BTC를 소비했을 확인합니다.
익명 거래의 수신자를 확인하기 위해서, “교환” 거래에서 시작하고 “앨리스가 0.7BTC를 익명으로 전송했음”이 나올 때까지 블록첸을 역행합니다. 교환으로, 당신은 당신의 사용자가 방금 익멱으로 무언가를 샀다는 것을 알게됨으로써, 익명성을 완전히 무너뜨립니다. 저희는 이러한 유형의 공격을 “잔돈을 통한 연결”이라고 부릅니다.
그림 4: 잔돈/거스름 돈을 통한 연결
두 번째 예에서 앨리스는 1.2BTC를 코인베이스로부터 구입 한 후 이 금액을 1BTC 출력으로 익명화 합니다. 그녀는 그후 1BTC를 소비하고 0.3BTC 금액의 거스름 돈을 수령한 후 이전 0.2BTC 잔돈과 결합합니다.
익명 거래(0.3BTC)의 잔돈과 코인조인 거래를 통해 받은 잔돈을 결합하여 당신은 기록 전체를 전과 후로 연결하여 익명성을 완전히 깰 수 있습니다.
3.3 개선되 개인 정보 보호 및 서비수 거부 (DOS) 저항
프라이빗샌드는 거래가 여러 당사들에 의해 구성되고 여러 당사자들이 이 후에 연결 해제할 수 없는 형식으로 자금을 병합하기 위해 만들어 졌다는 사실을 이용합니다. 모든 프라이빗샌드 거래들이 사용자에게 지불되도록 설정되어있다는 전재하에, 시스템은 도난으로부터 보안이 철저하며 사용자들의 코인들은 언제나 안전합니다. 현재 프라이빗샌드들 사용하려면 최소한 3 명의 참가자들이 필요로합니다.
그림 5: 3명의 사용자들이 기금을 명명된 기금을 공동 거래로 제추밥니다. 사용자들은 임의적인 순서인 새로운 출력들의 형태로 자신들에게 다시 지불합니다.
전체 시스템의 사적 자유도를 향상시키 위해서, 저희는 0.1 대쉬, 1 대쉬, 10대쉬, 및 100 대쉬의 공통 액면 금액을 제안합니다. 각 혼합 기간에, 모든 사용자들은 입력 및 출력과 동일한 단위들로 제출해야합니다. 액면 금액에 추가하여, 수수료는 거래들로부터 제외되며 별도의 간헐적인 연결이 불가능한 거래로 대량 청구되어야합니다.
가능성 있는 DOS 공격들을 해결하기 위해, 저희는 모든 사용자들이 가입을 할 시 거래들을 담보로 풀에 제출할 것을 제안합니다. 이거래는 자체적으로 이루어지며 채굴자에게 높은 수수료를 지불하게 됩니다. 이 경우에 한 사용자가 혼합된 풀에 요청을 넣으면, 그들은 반드시 교환 초기에 담보를 제공해야합니다. 어느한 상황에서든 서명을 거부하거나 협조하지 않는 경우, 담보 거래는 자동을 방송될 것입니다. 이것은 사생활 보호 네트워크에 지속적인 공격을 하는데 비용이 많이 들게 할 것입니다.
번역 저작권
- 이용시 출처 표시
- 비상업적 이용만 가능
- 변형 등 2차적 저작물 작성 가능
3편서 이어집니다.