PoCs

의식은 끝나지만 위원회는 남는다

분산 키 생성은 일회성 사건으로 서술됩니다. 그런데 실제 배포된 것은 전부 구성원이 바뀌는 위원회이고, 두 번째 의식인 리셰어링은 아무도 예산에 넣지 않는 쪽입니다.

아직 만들지 않았습니다

이 페이지는 카드에 적힌 내용을 펼쳐 보여줄 뿐입니다 — 돌아가는 코드도, 열어볼 데모도 아직 없습니다. 무엇을 왜 만들려는지가 아래에 있습니다.

어떻게 보나

아직 범위 미정 — 기존 라이브러리로 n=7, t=5 DKG를 돌린 뒤 참여자 하나를 빼고 그룹 공개키가 살아남는지 본다. 암호학이 아니라 운영을 잰다. 가장 먼저 찾아볼 것: 운영 중에 실제로 리셰어링을 해 본 배포 — 문서상 가능하다고만 적힌 것 말고.

기술 노트

각 항목이 실제로 무엇을 보여주고 어떻게 동작하는지 — 위 카드보다 자세한 기술 설명입니다.

의식은 끝나지만 위원회는 남는다준비 중

목적: 분산 키 생성(DKG)은 **n**개 주체가 하나의 키쌍을 함께 만들되 **개인키가 어디에서도 조립되지 않고**, 그중 **t**개가 모이면 서명하거나 복호화할 수 있게 하는 프로토콜입니다. 이 카탈로그가 이미 카드를 가진 넷의 밑에 깔린 원시 기능입니다 — DVT 검증인 키(`dvt`), 암호화 멤풀의 keyper 위원회(`encrypted-mempool`), MPC 수탁(`fisheries-receivable-rail`의 수탁사), 그리고 랜덤성 비콘. 모든 글이 같은 성질을 말합니다 — *t-of-n, 단일 침해 지점 없음* — 그리고 사실입니다. **그런데 거의 아무도 말하지 않는 것은 의식이 끝난 다음입니다.** DKG는 **사건**으로 서술되지만, 실제 운영되는 것은 전부 **위원회**이고 위원회는 바뀝니다. 운영자가 떠나고, 새 운영자가 들어오고, 누군가는 디스크가 죽어 지분(share)을 잃습니다. 그 각각에 **두 번째 의식** — **리셰어링(resharing)** — 이 필요하고, 그것은 첫 번째만큼 신뢰할 수 있어야 합니다. 그리고 이 부분이 문서에서 빠지고, 수상하리만치 자주 배포에서도 빠집니다. 이게 들리는 것보다 중요한 이유는 성질 하나 때문입니다: **리셰어링은 그룹의 공개키를 보존할 수 있습니다.** 지분은 다시 무작위화되고 구성원은 바뀌지만 공개키는 그대로입니다. 그리고 **공개키야말로 대개 다른 곳에 못 박혀 있는 부분**입니다 — 비콘 체인에 등록된 검증인 공개키, 고객이 저장해 둔 입금 주소, 이미 브로드캐스트된 암호화 트랜잭션에 박힌 key ID. 리셰어링이 되면 운영자 교체는 **운영 작업**입니다. 안 되면 **"운영자 집합을 바꾼다"는 말은 조용히 "그 키를 참조한 모든 것을 이전한다"가 됩니다.**

동작 방식: ### DKG가 실제로 만들어 내는 것 | 산출물 | 누가 갖나 | 비고 | |---|---|---| | **개인키** | **아무도, 한 번도** | 지분의 보간으로만 암묵적으로 존재 | | 공개키 | 모두, 공개됨 | 다른 시스템이 묶이는 대상 | | 지분 *i* | 참여자 *i* | 임계치 미만에서는 단독으로 무용 | | **트랜스크립트** | 공개되어야 함 | 주장한 대로 키가 생성됐다는 증거 | 마지막 행을 가장 세게 봐야 합니다. 임계 주장은 **외부인이 그 의식이 정말 주장된 참여자와 주장된 임계치로 돌았는지 확인할 수 있는 만큼만** 값어치가 있습니다. ### 구성원 변경 세 가지 | 사건 | 무엇이 일어나야 하나 | 성패를 가르는 질문 | |---|---|---| | 운영자가 떠남 | n−1로 리셰어, 또는 자리 교체 | **그룹 공개키가 살아남나?** | | 운영자가 들어옴 | n+1로 리셰어 | 누가 승인하고, 기존 구성원이 거부할 수 있나? | | 지분 분실 | t개 이상에서 복구, 또는 리셰어 | **복구와 절도가 구별되나?** | 마지막 질문이 날카로운 쪽입니다. 지분을 잃은 구성원을 위해 *t*명이 지분을 복원해 주는 절차는, 구조적으로 **공모한 *t*명이 아무에게나 지분을 넘겨줄 수 있는 절차와 같습니다.** 둘을 가르는 것이 무엇이든 그것은 암호학 **바깥의 정책**이고, `aml-compliance` 카드가 다루는 바로 그 경계입니다. ### 측정 — 작습니다 로컬에서 진짜 DKG를 돌립니다. n = 7, t = 5, 직접 구현하지 말고 기존 라이브러리로. 그리고 암호학이 아니라 **운영**을 잽니다: 1. 최초 의식의 라운드 수와 실제 소요 시간. 2. 참여자 하나를 뺀다. **그룹 공개키가 바뀌는가?** 3. 하나를 더한다. 몇 라운드이고, 그룹의 몇 %가 동시에 온라인이어야 하는가? 4. 의식 도중에 참여자 하나를 죽인다. 프로토콜이 중단되는가, 재시작하는가, 배제하는가? 5. 외부인이 공개 데이터만으로 트랜스크립트를 검증하게 한다. 산출물은 **아무도 발표하지 않고 모든 운영자가 필요로 하는** 표 하나입니다: | 사건 | 라운드 | 필요한 온라인 정족수 | 다운타임 | 공개키 보존 | |---|---|---|---|---| ### n이 n이기를 멈추는 지점 `stake-concentration`·`aqua-shared-liquidity`와 같은 형태입니다 — 겉보기엔 독립 단위 n개인데 실제 독립성의 단위는 더 작다는 것. 키 위원회에서 상관된 축은 구체적입니다: 같은 클라우드 리전, 같은 클라이언트 구현, 같은 관할권, 명목상 분리된 노드 여럿을 한 운영자가 돌리는 경우. **임계치 t는 산술입니다. n의 독립성은 경험적 주장이고, 아무도 재지 않는 쪽이 그것입니다.** `encrypted-mempool` 카드가 반대편에서 같은 지점에 부딪혔고(정직한 keyper가 k 미만이면 멤풀 단계 MEV가 되살아난다), `third-party-blast-radius`는 위원회 장악에 대해 같은 질문을 합니다. ### 리셰어링이 불가능하다면 각 카드에서 무엇이 깨지나 | 카드 | 다른 곳에 못 박혀 있는 키 | 결과 | |---|---|---| | `dvt` | 비콘 체인에 등록된 검증인 공개키 | 운영자 교체 = 出금 후 재예치 | | `encrypted-mempool` | 평문 봉투 안의 key provider ID·key ID | 위원회 변경이 이미 브로드캐스트된 참조를 무효화 | | `fisheries-receivable-rail` | 고객이 저장해 둔 수탁 주소 | "운영자 집합 교체"가 "자산 이전"이 됨 | ### 열린 질문 - **의식 트랜스크립트를 공개하는 곳이 있는가?** 없다면 임계치는 검증 가능한 사실이 아니라 **주장**이고, 하위의 모든 카드는 확인할 수 없는 주장을 믿고 있는 셈입니다. - **실제로 배포된 DKG가 어느 것인가** — 이의제기 라운드가 있는 Pedersen(편향 가능하고, 악의적 참여자 하나가 재시작을 강제할 수 있음), GJKR, Schnorr 임계 서명용 FROST, 혹은 BLS 변형. 선택이 **중단(abort) 동작**을 결정하고, 중단 동작이 곧 운영 성질입니다. - **운영 중에 실제로 리셰어링을 해 본 배포가 있는가** — "할 수 있다"고 문서에 적은 것 말고. **그 데이터 한 점이 어떤 스펙 독해보다 값어치가 큽니다**, 그리고 가장 먼저 찾아볼 것입니다.