스레스홀드(Threshold) 암호화된 메모리 풀을 위한 공모 방지 메커니즘

이 기사는 기계로 번역되었습니다
원문 표시

스레스홀드(Threshold) 암호화된 메모리 풀을 위한 공모 방지 메커니즘

이 게시물에 대한 귀중한 의견을 주신 Luis Bezzenberger에게 감사드립니다.

요약: 암호화된 멤풀은 이더리움과 같은 퍼블릭 블록체인에서 악의적인 MEV(Maximal Extractable Value) (MEV) 추출을 방지하는 유망한 접근 방식입니다. 스레스홀드(Threshold) 암호화는 암호화된 멤풀을 구축하기에 적합한 방법이지만, 안타깝게도 스레스홀드(Threshold) 신뢰 가정에 크게 의존합니다. 임계값 신뢰 가정은 미리 정의된 당사자 집합( 스레스홀드(Threshold) 위원회) 내에서 적어도 이들 중 일부는 정직하게 행동한다는 가정입니다. 이 글에서는 스레스홀드(Threshold) 위원회의 모든 당사자가 공모하더라도 안전하게 유지되는 스레스홀드(Threshold) 암호화 멤풀을 구축하는 접근 방식을 살펴봅니다.

블록체인 네트워크에서 MEV(Maximal Extractable Value) (MEV)는 특정 참여자가 거래 실행 순서를 조작하여 획득할 수 있는 가치를 나타내며, 이는 종종 다른 사용자를 희생시키는 결과를 초래합니다. 실제로 이더리움 사용자로부터 현재까지 도난당한 MEV의 총액은 11억 달러에서 30억 달러 사이로 추산됩니다. 암호화된 멤풀은 거래 실행 순서가 고정될 때까지 거래를 암호화하여 악의적인 MEV 추출을 방지하는 유망한 접근 방식입니다. 암호화된 멤풀을 구축하기에 적합한 후보는 스레스홀드(Threshold) 암호화입니다. 임계값 암호화는 공개 키 암호화 방식으로, 복호화 키가 여러 참여자 위원회에 분배됩니다. 즉, 암호문을 디크립트(Decrypt) 하려면 최소 스레스홀드(Threshold) 값 이상의 참여자가 협력해야 합니다. 이 임계값보다 적은 참여자가 참여하는 경우, 평문이나 복호화 키에 대한 정보는 공개되지 않습니다. 이 기본 방식은 다음과 같이 암호화된 멤풀을 구현합니다.

  1. 스레스홀드(Threshold) 위원회는 처음에 공개 키를 생성하고 해당 비밀 키를 공유합니다.

  2. 사용자는 스레스홀드(Threshold) 위원회의 공개 키로 거래를 암호화합니다.

  3. 암호화된 거래의 위치가 블록 맨 위에 "고정"되면 위원회는 공동으로 암호문을 해독하여 거래를 공개합니다.

스레스홀드(Threshold) 암호화는 유망한 접근 방식이지만, 스레스홀드(Threshold) 신뢰 가정에 의존합니다. 임계값 신뢰 가정은 위원회 구성원 중 악의적인 행동을 하는 사람이 스레스홀드(Threshold) 값보다 적다는 전제입니다. 이 스레스홀드(Threshold) 을 초과하면 악의적인 당사자들이 공모하여 거래를 조기에 디크립트(Decrypt) 암호화된 거래의 내용을 알아내고 악의적인 MEV를 추출할 수 있습니다. 이 글에서는 스레스홀드(Threshold) 신뢰 가정을 효과적으로 줄이는 스레스홀드(Threshold) 암호화된 멤풀의 공모 방지 메커니즘을 살펴봅니다. 셔터 스레스홀드(Threshold) 암호화 방식을 사용하는 암호화된 멤풀의 예를 통해 이 메커니즘을 설명하고, 이후 논의할 내용에서 이 메커니즘이 본질적으로 모든 스레스홀드(Threshold) 암호화 멤풀에 일반화될 수 있음을 설명합니다.

요약: 셔터 암호화된 메모리풀

Shutter는 본질적으로 Boneh-Franklin ID 기반 암호화(IBE) 방식 의 스레스홀드(Threshold) 변형입니다.IBE 방식은 마스터 공개/비밀 키 쌍 (mpk, msk) ( m p k , m s k ) 으로 구성되며, 특정 ID i i 와 마스터 공개 키 mpk m p k 로 메시지 m m 을 암호화할 수 있습니다.다음에서 Shutter 암호화를 ct \leftarrow Shutter.Encrypt(mpk, i, m) c t Sh u t t e r .Enc r y p t ( m p k , i , m ) 표시 합니다 . 결과 암호문 ct c t 는 마스터 비밀 키 msk m s k 와 ID i i 에서 소위 ID 비밀 키 sk_i s k i 를 유도하고 sk_i s k i 를 암호 해독에 사용하여 암호 해독할 수 있습니다.암호 해독을 m \leftarrow Shutter로 표시합니다. (sk_i, ct ) m Sh u t t e r 복호화 합니다 . 복호화 ( s k i , c t ) . 일반적 으로 IBE 방식에서 마스터 비밀 키는 신뢰할 수 있는 기관에서 관리하지만 Shutter의 경우 키퍼라고 하는 당사자 위원회에 분산되므로 단일 당사자가 전체 키에 액세스할 수 없습니다.즉, Shutter 암호화된 메모리 풀의 경우 사용자는 mpk m p k 및 ID i i 로 암호화된 트랜잭션 tx t x 를 보낼 수 있습니다.그런 다음 암호화된 트랜잭션의 위치가 블록 의 맨 위에 고정되면 키퍼는 공동으로 ID 비밀 키 sk_i s k i 를 파생하고 트랜잭션을 디크립트(Decrypt) .

블록 에서 암호문의 위치를 ​​고정한다는 것은 무엇을 의미합니까?

MEV는 블록 내 암호문의 위치가 복호화 전에 맨 위에 고정되는 경우에만 스레스홀드(Threshold) 암호화를 통해 효과적으로 방지할 수 있습니다. 그렇지 않으면 블록 제안자는 암호문이 복호화될 때까지 기다렸다가 내용에 따라 실행 순서를 변경할 수 있습니다. 고정된 위치를 보장하는 방법에는 FOCIL 과 같은 포함 목록이나 제안자 커밋( Commit-Boost 참조)과 같은 여러 가지가 있습니다. 이 글에서는 제안자 커밋을 활용하는 스레스홀드(Threshold) 암호화 메모리 풀 설계에 중점을 둡니다. 이 개념은 최근 여기 에서 자세히 살펴보았습니다. 나중에 이 접근 방식이 복호화 후 트랜잭션 순서를 강제하는 다른 방법으로 일반화될 수 있는 방법에 대해 논의할 것입니다.

제안자 커밋은 블록 제안자가 제안하려는 블록 의 공간 할당에 대한 커밋을 할 수 있도록 합니다. 이러한 커밋의 일반적인 사용 사례는 트랜잭션 사전 확인으로, 블록 제안자가 특정 트랜잭션을 블록 에 포함하기로 커밋하여 트랜잭션 송신자에게 블록 이 완성되면 트랜잭션이 실제로 실행될 것이라는 확신을 제공합니다. 상위 수준에서 제안자 커밋은 서명된 진술이며, 제안자가 커밋을 따르지 않을 경우 슬래싱(slashing)되어 악의적인 행동을 억제할 수 있습니다. 제안자 커밋에 대한 주요 표준화 노력인 Commit-Boost는 커밋이 기존 검증자 키 아래의 BLS 서명과 같은 형태가 될 수 있음을 명시합니다.

암호화된 메모리 풀의 맥락에서 제안자 커밋은 암호화된 거래를 포함하도록 확장될 수 있습니다. 제안자는 결과 거래가 유효한 경우, 복호화된 암호문을 블록 에 포함하도록 커밋할 수 있습니다. 커밋은 " 암호문 ct c t 에 유효한 거래가 포함되어 있고 제때 복호화된다면, ct c t 에 암호화된 거래를 블록 k k 의 맨 위에 포함하겠습니다"라는 서명된 문장일 수 있습니다 .

제안자 커밋을 사용하여 셔터 암호화된 메모리 풀의 흐름.
제안자 커밋을 사용한 셔터 암호화된 메모리 풀의 흐름. 1435×802 122KB

담합 방지 메커니즘

고차원적 아이디어. 담합 방지 메커니즘의 핵심 아이디어는 블록 제안자가 복호화된 거래를 블록 상단에 포함하겠다는 유효한 약속을 하기 전에 키퍼가 암호화된 메모리 풀에서 암호문을 디크립트(Decrypt) 하는 것을 기술적으로 불가능하게 만드는 것입니다. 이를 통해 암호문이 복호화될 경우, 그 결과 거래가 다음 블록 에 포함되거나 제안자의 지분이 삭감됩니다. 그러한 약속이 없으면 키퍼는 암호문을 디크립트(Decrypt) 할 수 없습니다. 아래에서는 이 접근 방식을 보다 기술적인 측면에서 설명합니다.

기술적 세부 사항. 공모 방지 메커니즘의 핵심은 이전 연구(예: 1 , 2 )에서 관찰된 다음과 같은 사항입니다. BLS 서명은 Boneh-Franklin 암호화 체계에서 복호화 키로 사용될 수 있습니다. Shutter는 Boneh-Franklin 체계를 기반으로 하므로 Shutter에도 동일하게 적용됩니다. 비트(Bit) 더 자세히 살펴보겠습니다.

  • Ethereum에서 사용되는 BLS와 Shutter는 동일한 타원 곡선 BLS12-381에서 작동합니다.
  • BLS 공개 키와 비밀 키 쌍은 Shutter의 마스터 키 쌍으로도 사용할 수 있습니다.
  • Shutter의 신원 비밀 키는 BLS 서명의 구조를 가지고 있습니다. 즉, 신원 i i에 대한 신원 비밀 키는 sk_i = H(i)^{msk} s k i = H ( i ) m s k 이고 sk_i s k i는 비밀 키 msk m s k 에서 i i에 대한 유효한 BLS 서명입니다.

이 모든 것은 제안자의 BLS 서명이 Shutter의 암호 해독 키로 사용될 수 있음을 의미합니다.

그러면 공모 방지 메커니즘은 다음과 같이 작동합니다. 셔터 위원회의 마스터 공개 키를 mpk m p k 라고 하고, 제안자의 BLS 공개 키를 pk p k 라고 합니다. 그러면 사용자는 자신의 거래 tx t x 를 다음과 같이 암호화합니다.

  1. 이전과 마찬가지로 사용자는 mpk m p k 와 항등원 i i 를 사용하여 tx t x를 암호화합니다. 즉, 사용자는 ct_1 \leftarrow Shutter.Encrypt ( mpk , i , tx ) c t 1 Shutter.Encry p t ( m p k , i , t x ) 계산 합니다 .
  2. 또한 사용자는 pk pk 다른 ID j j 아래에서 i i를 암호화합니다. 즉, 사용자는 추가로 ct_2 \leftarrow Shutter.Encrypt(pk, j, i) c t 2 Sh u t t e r .Enc r y p t ( p k , j , i ) 계산 합니다 .

그런 다음 사용자는 두 암호문 (ct_1, ct_2) ( c t 1 , c t 2 ) 과 ID j j 를 암호화된 메모리 풀로 보냅니다. ID i i 를 알지 못하면 키퍼는 ct_1 c t 1 디크립트(Decrypt) 할 수 없으므로 트랜잭션 tx t x 를 알 수 없습니다. 결국 제안자는 ID j j 에 대한 BLS 서명을 보내 블록 의 맨 위에 tx t x 를 포함하도록 합니다. 즉, \sigma = H(j)^{sk} σ = H ( j ) sk 입니다 . 이 서명은 본질적으로 ID i i 와 공개 키 pk p k 에 대한 ID 비밀 키입니다. 즉, i \leftarrow Shutter 디크립트(Decrypt) 계산하여 ID i i 를 디크립트(Decrypt) 데 사용할 수 있습니다. (\sigma, ct_2 ) i Sh u t t e r 해독 합니다 . 복호화 p t ( σ , c t 2 ) . 이제 신원 i i 가 알려졌으므로 키퍼는 신원 비밀 키 sk_i s k i 를 먼저 유도한 다음 tx \leftarrow Shutter 디크립트(Decrypt) 계산하여 트랜잭션 tx t x 디크립트(Decrypt) 할 수 있습니다. (sk_i,ct_1) t x Sh u t t e r 을 복호화 합니다 . ( sk_i , ct_1 ) t x ← Sh u t t e r 을 복호화 합니다 . ( sk_i , ct_1 ) 을 복호화 합니다 .

제안자 약속과 공모 방지 메커니즘을 사용하여 셔터 암호화된 메모리 풀의 흐름입니다.
제안자 커밋과 공모 방지 메커니즘을 사용한 셔터 암호화된 메모리 풀의 흐름. 1513×819 143KB

제안자와 키퍼가 공모하지 않는 한, 제안자가 tx t x를 포함하기로 약속하기 전에 키퍼가 tx t x를 디크립트(Decrypt) 것은 기술적으로 불가능합니다. 제안자가 약속을 전송한 후에 tx t x를 복호화하더라도 해당 거래는 이미 블록 상단에 포함되도록 약속되어 있으므로 아무런 문제가 없습니다.

접근 방식에 대한 논의 및 한계

키퍼와 제안자 간의 담합 방지. 제안된 메커니즘은 현재 블록 제안자가 다음 블록 의 상단에 복호화된 암호문을 포함하기로 약속한 경우에만 복호화가 가능하도록 함으로써 스레스홀드(Threshold) 위원회 내 담합의 유해한 영향을 완화합니다. 그러나 앞서 언급했듯이, 이 접근법은 키퍼와 블록 제안자 간의 잠재적 담합 문제를 해결하지 못합니다. 이러한 담합을 효과적으로 억제하기 위해서는 부정 행위 발생 시 키퍼 위원회와 제안자 모두에게 경제적 처벌을 부과하는 것이 필수적입니다.

여러 제안자에게 암호화. 또 다른 한계는 현재 형태에서 사용자가 항상 특정 제안자에게만 거래를 암호화한다는 것입니다. 이 제안자가 거래에 동의하지 않으면 거래가 포함되지 않아 사용자는 거래를 재전송해야 합니다. 확실한 대책은 사용자가 여러 제안자를 대상으로 암호화하도록 하여 그중 한 제안자가 실제로 거래를 포함하도록 동의할 가능성을 높이는 것입니다. 그러나 이 방법에는 두 가지 단점이 있습니다. (1) 제안자 수에 따라 암호문 크기가 선형적으로 증가합니다. (2) 제안자가 많을수록 그중 한 명이 키퍼와 공모할 가능성이 높아집니다. 첫 번째 단점은 다중 수신자 암호화 체계를 사용하여 해결할 수 있습니다. 반면 두 번째 단점은 보안과 편의성 간의 상충 관계에 있는 것으로 보입니다. 사용자가 선택하는 제안자가 많을수록 그중 한 명이 키퍼와 공모할 위험은 커지지만, 사용자가 거래를 재전송해야 할 가능성은 줄어듭니다.

키퍼가 복호화 키를 공개하도록 보장합니다. 모든 키퍼가 악의적으로 행동하고 서로 공모한다고 가정하면, 복호화 키 공개를 거부하여 시스템이 중단될 가능성이 있습니다. 이를 방지하기 위한 해결책은 키퍼가 자금을 일부 예치(stake) 하고, 검증인 위원회가 키퍼가 유효한 제안자 약속을 위해 복호화 키를 공개했는지 여부를 증명하도록 하는 것입니다. 키퍼가 키를 공개하지 않으면 예치(stake) 삭감될 위험이 있습니다.

사용자가 제안자에게 직접 암호화할 수 있는데 왜 키퍼가 필요할까요? 제안자 커밋을 통해 사용자가 제안자에게 직접 거래를 암호화할 수 있는데, 키퍼 위원회가 왜 필요한지 의문이 들 수 있습니다. 위원회가 없다면 악의적인 제안자가 거래를 공개적으로 암호화하지 않고 로컬에서 디크립트(Decrypt) 할 수 있기 때문입니다. 이는 본질적으로 MEV 공격의 가능성을 다시 열어주기 때문입니다. 거래 복호화에 필요한 다른 독립적인 당사자(이 경우에는 위원회)가 있어야만 제안자가 커밋을 공개하도록 강제하고, 이를 통해 제안자의 책임을 묻도록 할 수 있습니다.

블록 상단의 암호화된 거래 순서. 이 글에서는 제안자가 암호화된 거래를 커밋하면 그에 상응하는 복호화된 거래가 블록 상단에 나타나야 한다고 가정했습니다. 하지만 제안자가 여러 거래를 커밋하는 경우에는 어떻게 될까요? 이 경우 거래의 순서가 명확하지 않습니다.
간단한 해결책은 제안자가 각 커밋마다 증가하는 카운터를 포함하는 것입니다. 그러면 거래는 이 카운터를 기준으로 정렬될 수 있으며, 키퍼는 해당 순서대로만 거래를 디크립트(Decrypt) .
제안자 커밋 대신 포함 목록을 사용하는 경우에는 이러한 순서 문제가 발생하지 않습니다. 포함 목록은 블록 에서 암호화된 거래의 순서를 명시적으로 정의할 수 있기 때문입니다.

접근 방식 일반화

우리의 접근 방식은 암호화된 메모리 풀과 관련된 것과 암호문의 위치를 ​​고정하는 메커니즘과 관련된 두 가지 방법으로 일반화될 수 있습니다.

암호화된 메모풀 일반화. 단순화를 위해 Shutter 암호화 메모풀과 관련된 공모 방지 메커니즘을 설명했습니다. 그러나 핵심 아이디어는 Shutter와 무관합니다. 주요 통찰력은 BLS 서명 형태의 제안자 커밋이 Boneh-Franklin IBE 방식에서 복호화 키 역할을 할 수 있다는 것입니다. 이것은 제안자 커밋을 사용하여 모든 (스레스홀드(Threshold)) 암호화 메모풀과 결합할 수 있습니다. 다음과 같은 보다 일반적인 설계를 고려하십시오. pk_C p k C를 (스레스홀드(Threshold)) 암호화 메모풀을 운영하는 위원회의 공개 키라고 하고 pk_P p k P를 제안자 공개 키라고 합니다. 그런 다음 사용자는 먼저 암호화된 메모풀(즉, pk_C p k C 에서)에 대한 트랜잭션을 암호화한 다음 pk_P p k P 에서 Boneh-Frankling IBE 방식을 통해 제안자에게 결과 암호문을 암호화할 수 있습니다. 이는 기본적으로 제안자가 먼저 (약속을 통해) 암호를 해독해야 하는 이중으로 암호화된 거래를 생성한 다음 스레스홀드(Threshold) 위원회가 거래를 디크립트(Decrypt) 할 수 있습니다.

"고정" 메커니즘 일반화. 제안자 커밋을 사용하여 블록 내 암호문의 위치를 ​​고정하는 암호화된 메모리 풀에 대한 공모 방지 메커니즘을 설명했습니다. 그러나 보다 추상적인 수준에서, 이 메커니즘은 위치 고정이 복호화 키 역할을 할 수 있는 BLS 서명 형태로 수행되는 한, 정확한 위치 고정 방식과는 독립적입니다. 예를 들어, FOCIL의 경우, 포함 목록은 BLS 서명으로 서명될 수 있으며, 이를 통해 포함 목록에 있는 모든 거래를 디크립트(Decrypt) 할 수 있습니다. 그러나 FOCIL과 같은 메커니즘을 우리의 공모 방지 솔루션에 정확하게 통합하는 것은 향후 연구 과제로 남아 있습니다.

결론

이 글에서 설명하는 솔루션은 스레스홀드(Threshold) 암호화된 멤풀을 위한 실용적이고 효율적인 공모 방지 메커니즘을 제시하며, 이는 모든 종류의 암호화된 멤풀에도 일반화될 수 있습니다. 복호화를 제안자 약속(그리고 잠재적으로 포함 목록까지)에 연계함으로써, 이 메커니즘은 큰 통신이나 연산 오버헤드 없이 암호화된 멤풀 제공자에 대한 신뢰를 크게 낮춥니다.


출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
2
즐겨찾기에 추가
코멘트