슬래싱
보안 고려사항
Validator Set은 이중 서명 또는 기타 부정 행위에 대해 슬래싱되는 스테이크가 뒷받침하는 실제 키 세트입니다. 우리는 일반적으로 체인의 보안을 _Validator Set_의 보안으로 간주합니다. 이는 각 체인마다 다르지만 우리의 황금 표준입니다. IBC조차도 관련된 두 Validator Set의 최소값보다 더 많은 보안을 제공하지 않습니다. Eth bridge relayer는 검증자 세트에 의해 메인injectived 데몬과 함께 실행되는 바이너리입니다. 이것은 순전히 코드 구성의 문제로 존재하며 Ethereum 트랜잭션에 서명하고, Ethereum의 이벤트를 관찰하여 Injective Chain 상태로 가져오는 역할을 합니다. Ethereum 키로 Ethereum에 바인딩된 트랜잭션에 서명하고, Injective Chain 계정 키로 Ethereum에서 오는 이벤트에 서명합니다. _Validator Set_이 실행하는 _Eth Signer_의 잘못 서명된 메시지에 슬래싱 조건을 추가하고 _Validator Set_과 동일한 보안을 제공할 수 있습니다. 단지 다른 모듈이 악의의 증거를 감지하고 얼마나 슬래싱할지 결정합니다. _Validator Set_의 _Eth Signer_가 서명한 트랜잭션이 불법이거나 악의적임을 증명할 수 있다면 Injective Chain 측에서 슬래싱하고 잠재적으로 _Validator Set_의 100% 보안을 제공할 수 있습니다. 이것은 또한 즉시 언본딩하더라도 증거를 슬래싱할 수 있는 3주 언본딩 기간에 접근할 수 있습니다.
아래는 Peggy에서 사용하는 다양한 슬래싱 조건입니다.
PEGGYSLASH-01: 가짜 검증자 세트 또는 tx 배치 증거 서명
이 슬래싱 조건은 검증자가 Injective Chain에 존재하지 않은 검증자 세트와 nonce에 서명하는 것을 막기 위한 것입니다. 이것은 증거 메커니즘을 통해 작동하며, 누구나 가짜 검증자 세트에 대한 검증자의 서명이 포함된 메시지를 제출할 수 있습니다. 이것은 가짜 검증자 세트를 제출하려는 검증자 카르텔이 형성되면 한 명의 이탈자가 모두를 슬래싱시킬 수 있는 효과를 만들기 위한 것입니다.PEGGYSLASH-02: tx 배치 서명 실패
이 슬래싱 조건은 검증자가 Peggy 모듈에 의해 생성된 후SignedBatchesWindow 내에 트랜잭션 배치에 서명하지 않을 때 트리거됩니다. 이것은 두 가지 나쁜 시나리오를 방지합니다-
- 검증자가 시스템에서 올바른 바이너리를 실행하는 것을 귀찮게하지 않음
- 1/3 이상의 검증자 카르텔이 언본딩한 다음 업데이트에 서명하기를 거부하여 Peggy Ethereum 컨트랙트에 제출할 충분한 서명을 얻지 못하도록 배치를 방지
PEGGYSLASH-03: 검증자 세트 업데이트 서명 실패
이 슬래싱 조건은 검증자가 Peggy 모듈에 의해 생성된 검증자 세트 업데이트에 서명하지 않을 때 트리거됩니다. 이것은 두 가지 나쁜 시나리오를 방지합니다-- 검증자가 시스템에서 올바른 바이너리를 실행하는 것을 귀찮게하지 않음
- 1/3 이상의 검증자 카르텔이 언본딩한 다음 업데이트에 서명하기를 거부하여 Peggy Ethereum 컨트랙트에 제출할 충분한 서명을 얻지 못하도록 검증자 세트 업데이트를 방지. Injective Chain 언본딩 기간보다 오래 검증자 세트 업데이트를 방지하면 가짜 검증자 세트 업데이트와 tx 배치 제출에 대해 더 이상 처벌받을 수 없습니다 (PEGGYSLASH-01 및 PEGGYSLASH-03).
UnbondSlashingValsetsWindow 블록 동안 여전히 언본딩 기간에 있는 검증자도 슬래싱해야 합니다. 이것은 검증자가 검증자 세트를 떠날 때 최소 UnbondSlashingValsetsWindow 블록 동안 장비를 계속 실행해야 함을 의미합니다. 이것은 Injective Chain에서 흔하지 않으며 검증자에게 수용되지 않을 수 있습니다.
UnbondSlashingValsetsWindow의 현재 값은 25,000 블록, 또는 약 12-14시간입니다. 다음 논리를 기반으로 이것을 안전한 값으로 결정했습니다. 검증자 세트를 떠나는 모든 검증자가 자신이 포함되지 않은 최소 하나의 검증자 세트 업데이트에 서명하는 한, relayer가 체인의 현재 상태를 현재 상태로 변환하기 위한 검증자 세트 업데이트 체인을 생성하는 것이 보장됩니다.
PEGGYSLASH-02와 PEGGYSLASH-03 모두 컨센서스 코드 내에서 Ethereum 서명을 수행하는 것이 가능하다면 보안 손실 없이 제거될 수 있습니다. 이것은 Peggy를 슬래싱에 훨씬 덜 취약하게 만드는 Tendermint에 대한 상당히 제한적인 기능 추가입니다.
