Safeheron 파트너는 MPC에 대한 Vitalik의 의견에 응답합니다: MPC와 스마트 계약 지갑은 경쟁 관계에 있지 않습니다.
작성자: Kane Wang, Safeheron 파트너 및 기술 부사장

최근 이더리움 창시자인 Vitalik은 MPC 지갑과 스마트 계약 지갑의 장점과 단점에 대한 자신의 견해를 다음과 같이 표현했습니다.

Vitalik은 MPC 기반 EOA 지갑에는 키를 취소할 수 없고, 재공유(re-sharing)로도 이 문제를 해결할 수 없기 때문에 근본적인 결함이 있다고 생각합니다. 개인 키 따라서 스마트 계약 지갑이 유일한 옵션입니다.
이는 또한 MPC 지갑과 스마트 계약 지갑에 대한 커뮤니티의 열띤 토론으로 이어졌습니다. 게시하기 전에 일부 친구들은 Vitalik의 MPC 부정적인 댓글에 대해서도 물었습니다. 개인적으로 이 문제에 대한 논의는 결국 입장 논의로 발전했고, 불일치하는 적용 시나리오와 비즈니스 시나리오를 전제로 한 논의에는 옳고 그름이 없습니다.
긴장의 지점으로 가기보다는 논란의 지점을 명확히 하는 것이 좋습니다. Vitalik이 지적한 취소 키는 정확히 무엇이며, 어떤 시나리오에 적합한가요?MPC 지갑개인 키 샤딩 관리 메커니즘 및스마트 계약 지갑개인 키 관리 메커니즘은 어떻게 다릅니까?
(1) 개인키 철회(revoke key) 작업이란

예를 들어 스마트 계약 지갑을 사용할 때 지갑 주소가 1번 주소이고, 사용자 A는 개인키 SK_A를 사용하고, 사용자 B는 SK_B를 사용하여 스마트 계약 지갑을 관리한다고 가정하면, 사용자 A와 사용자 B는 사용 시 모두 승인을 받아야 합니다. 돈을 이체하는 지갑.
예를 들어 사용자가 지갑의 관리권한을 변경하고 싶다면, 예를 들어 사용자 A, B가 원래 지갑을 관리하다가 지금은 지갑 주소를 그대로 유지하고 싶다면 사용자 C, D로 지갑을 관리하도록 변경하고, 취소하면 됩니다. 사용자 A와 B의 관리 권한. 스마트 컨트랙트를 통해 사용자 A, B의 해당 개인키 SK_A, SK_B의 지갑에 대한 관리권한을 철회하고, 사용자 C, D가 사용하는 개인키 SK_C, SK_D에 대한 해당 관리권한을 수정할 수 있습니다.
개인 키 SK_A 및 SK_B는 여전히 개인 키로 서명할 수 있으며 취소할 수 없습니다.대신 스마트 계약의 프로그래밍 가능한 기능을 통해 전송 권한을 확인하는 방법이 개인 키 SK_A 및 SK_B 확인에서 SK_C 및 SK_D 확인으로 변경됩니다.지갑 사용 측면에서 개인키 SK_A, SK_B가 계약 지갑 관리 권한을 철회했다고 볼 수 있다.
(2) MPC의 개인키 샤드 리샤드(Re-shard)와 개인키 샤드 리프레시(Private Key Shard Refresh)란 무엇인가?
MPC/SMPC(Secure Multi-Party Computation)는 체인 아래의 일종의 암호화 기술로, 특정 블록체인과는 아무런 관련이 없습니다.서명 알고리즘 수준에서 MPC 프로토콜은 t/n 다중 서명을 달성할 수 있습니다. 다자간 컴퓨팅을 통해 개인 키 생성, 사용, 새로 고침, 재샤딩 등의 과정에서 키의 사용 가능은 보장되지만 보이지는 않습니다. 따라서 MPC는 EOA를 직접 관리할 수 있으며, 스마트 컨트랙트 지갑과 결합하여 자산을 관리할 수도 있습니다.

일반적으로 MPC를 통해 지갑을 관리할 때 분산 방식으로 개인 키 조각을 생성해야 하는데, 예를 들어 2/2 당사자가 각각 개인 키 조각 KeyShare_A와 KeyShare_B를 생성하고 해당 지갑 주소는 Address 2입니다.

자금 이체 시 분산 서명을 사용하고 KeyShare_A 및 KeyShare_B를 사용하여 서명 계약을 실행하고 지갑 이체를 승인합니다.

개인 키 샤드 새로 고침은 지갑 주소 주소 2를 변경하지 않고 유지하는 것을 의미하며, 개인 키 샤드 KeyShare_A 및 KeyShare_B 그룹이 분산 새로 고침 프로토콜을 거친 후 개인 키 샤드를 보유하는 두 당사자가 각각 새로운 것을 얻을 수 있습니다. 샤드 KeyShare_A' 및 KeyShare_B', 그리고 KeyShare_A' 및 KeyShare_B'는 나중에 지갑 전송을 승인하는 데 사용될 수 있습니다. 그러나 KeyShare_A 및 KeyShare_B는 계속 사용할 수 있습니다.

개인키 샤딩 재샤딩(re-sharing)은 새로고침과 유사하며, 새로고침과의 차이점은 재샤딩은 실행 후 2/2에 해당하는 개인키 샤드 집합 KeyShare_A, KeyShare_B 등 임계값을 수정할 수 있다는 점입니다. 재샤딩 프로토콜에서는 임계값이 3/3으로 변경되고 두 당사자와 새로 참여하는 당사자는 각각 새로운 개인 키 샤드 세트 KeyShare_A', KeyShare_B' 및 KeyShare_C'를 얻습니다. 새로운 개인 키 샤드 세트의 경우, 세 개의 개인 키 조각이 필요합니다. 서명은 분산 서명 프로토콜이 함께 실행될 때만 서명될 수 있습니다. 그러나 KeyShare_A 및 KeyShare_B는 2/2 임계값에 따라 계속 사용할 수 있습니다.
위의 네 가지 프로세스에서 그 뒤에 있는 원래 개인 키는 수학적 의미로만 존재하며 실제로 모든 프로세스에 나타나지 않았으며 각 당사자는 다른 당사자의 개인 키 조각을 얻을 수 없다는 점을 언급할 가치가 있습니다.
(3) MPC 지갑이 키를 취소할 수 없는 상황
우선 MPC 암호화 프로토콜과 MPC 지갑이 두 가지 개념이라는 점을 명확히 할 필요가 있습니다.MPC 지갑은 키 조각 배포 및 임계값 관리 메커니즘 + MPC 암호화 프로토콜을 설계하여 지갑을 구축합니다. 스마트 계약 지갑은 프로그래밍 가능한 스마트 계약을 사용하여 개인 키 관리 메커니즘 + 서명 알고리즘을 설계하여 지갑을 구축하는 것으로 이해될 수 있습니다. 또한 스마트 계약에서 사용하는 서명 알고리즘은 단일 개인 키 서명 알고리즘일 수도 있고 MPC 기반의 임계값 서명 알고리즘일 수도 있습니다.
MPC-TSS 프로토콜의 경우 암호화의 특성으로 인해 두 번째 질문에서 설명한 대로 재샤딩 및 새로 고침 문제가 발생합니다. 재샤딩 및 새로 고침 후에도 원래 개인 키 조각인 KeyShare_A 및 KeyShare_B는 MPC 프로토콜 수준에서 계속 사용할 수 있습니다. ,각 개인 키 샤드 세트는 취소할 수 없습니다.; 이는 첫 번째 질문에서 개인키 SK_A, SK_B를 개인키 SK_C, SK_D로 전환한 스마트 컨트랙트 지갑 검증 방법과 유사하며,암호화 개인 키 SK_A 및 SK_B는 계속 사용 가능하며 취소할 수 없습니다.
그렇다면 어떤 상황에서 MPC 지갑이 키를 취소하지 못할 수 있나요? 예를 들어 MPC 지갑 설계의 임계값은 2/2이고 관리 방법은 KeyShare_A와 KeyShare_B를 각각 보유한 사용자 A와 사용자 B가 관리합니다. 이 지갑의 관리 권한을 변경하려면 사용자 C와 사용자 D는 MPC 새로 고침/재샤딩 프로토콜을 통해 KeyShare_A' 및 KeyShare_B'를 얻습니다. 새로고침 및 재샤딩을 하는 동안 사용자 C와 사용자 D는 지갑을 관리할 수 있으며,그러나 지갑 사용의 관점에서 볼 때 이전 샤드 소유자인 사용자 A와 사용자 B는 여전히 지갑을 관리할 수 있습니다. 즉, 이러한 종류의 MPC 지갑은 키를 취소할 수 없습니다.
(4) MPC 지갑은 어떤 상황에서 키를 취소할 수 있나요?

개인 지갑 Zengo를 예로 들면 기본 서명 임계값은 2/2이고 사용자는 개인 키 샤드 KeyShare_A를 보유하고 있으며 Zengo는 개인 키 샤드 KeyShare_B를 보유하고 있습니다. 이론적으로 지갑 주소를 변경하지 않는다는 전제 하에 개인 키 조각인 KeyShare_A가 도난당했다고 고객이 의심하는 경우 사용자는 Zengo를 통해 키 새로 고침을 요청할 수 있으며, 양측 모두 KeyShare_A'와 KeyShare_B'를 각각 받게 됩니다. 새로 고침이 성공하면 Zengo가 KeyShare_B를 물리적으로 삭제하고 후속 서명에 계속 참여하기 위해 KeyShare_B 사용을 거부한 후에는 KeyShare_B'만 사용되고 사용자는 KeyShare_A'를 사용합니다.지갑 사용 측면에서 보면 KeyShare_A와 KeyShare_B'는 정확한 서명을 계산할 수 없기 때문에 공격자가 훔친 KeyShare_A는 이번에 취소되었습니다.

기업용 지갑 Safeheron을 예로 들면, 기본 서명 임계값은 3/3입니다. 회원 1이 서명에 참여할 때 개인 키 조각의 배포는 회원의 로컬 모바일 장치에서 KeyShare_A, 신뢰할 수 있는 컴퓨팅 환경에서 KeyShare_B입니다. 신뢰할 수 있는 컴퓨팅 환경에서 신뢰할 수 있는 타사 클라우드의 Safeheron 클라우드, KeyShare_C. 회원 1이 자신의 개인 키 조각 KeyShare_A가 도난당했다고 의심하는 경우, 회원 1은 Zengo 시나리오와 유사하게 지갑 주소를 변경하지 않고 유지한다는 전제하에 클라우드를 통해 키 새로 고침을 요청할 수 있습니다. 새로 고침이 성공한 후 세 당사자는 각각 새로운 개인 키 키 샤드 KeyShare_A', KeyShare_B' 및 KeyShare_C'를 얻고, 신뢰할 수 있는 클라우드 실행 환경에서 KeyShare_B 및 KeyShare_C를 물리적으로 삭제합니다.이때 지갑 사용 측면에서 KeyShare_A는 철회됩니다.
기업이 관리 과정에서 자산을 공동 관리하기 위해 구성원 1을 구성원 2로 교체해야 하는 경우, 신뢰할 수 있는 클라우드 실행 환경은 구성원 1에 해당하는 두 개의 개인 키 조각 KeyShare_B 및 KeyShare_C를 삭제하고 팀 생성 후 구성원 2를 추가합니다. 멤버 2에 대한 새로운 개인 키 샤드 세트 KeyShare_A 2 , KeyShare_B 2 및 KeyShare_C 2. 구성원 2의 개인 키 배포 방법은 구성원 1과 동일합니다.요약하다
요약하다
이 토론에서 논란이 되는 점을 정리하고 나면 Vitalik의 답변을 비교적 쉽게 이해할 수 있습니다. 내 생각에는위의 세 번째 질문에 언급된 시나리오에서 Vitalik의 관점은 정확하지만 Vitalik의 답변은 부분적입니다.답변 자체에 관한 한 모든 MPC 지갑을 키 취소 없이 사용할 수 있는 것은 아니며 다양한 MPC 지갑 방식도 다릅니다. MPC 지갑과 스마트 계약 지갑은 문제 해결에 중점을 두고 있으며, MPC 지갑은 다중 체인, 다중 서명 자산 보안 관리 문제를 해결하는 데 더 중점을 두고 있습니다.
또한, MPC 지갑과 스마트 계약 지갑은 서로 적대적이지 않으며, 오프체인 MPC와 온체인 스마트 계약 지갑의 장점을 결합함으로써 앞으로 많은 혁신적인 MPC + 스마트 계약 제품과 솔루션을 볼 수 있을 것으로 예상됩니다.


