Discussion on KIP-249 (Slot-Based Auction on Kaia)

  • Below is Korean translation (참고: 아래에 한국어 번역본이 있습니다)

KIP-249 link: Slot-Based Auction on Kaia

Summary of KIP-249

Proposes a slot-based auction mechanism that places a winning backrun transaction immediately after its target, minimizing reorder exploits and capturing MEV in a structured way.
An off-chain Auctioneer coordinates hidden bids, and the on-chain AuctionEntryPoint contract handles atomic bid payment, execution, and gas refunds, with all proceeds routed to a governance-controlled vault.
By enforcing deposits, limiting one winning bid per searcher per block, and bundling transactions, the design aims to distribute MEV proceeds fairly.

Technical Outlook

Deposit & Cooldown
Searchers must lock up enough funds to cover both bid and gas, with a mandatory cooldown to prevent removing deposits immediately after bidding.
Slot-Based Adjacency
The winning backrun call is placed directly after its target transaction, minimizing reordering exploits and ensuring consistent MEV capture.
Atomic Execution via AuctionEntryPoint
Bid payment, backrun logic, and gas refunds occur in a single function call, preventing partial failures and simplifying coordination.
One Winning Bid per Searcher per Block
Each searcher can only submit one winning bid per block, preventing any single participant from dominating backrun slots or spamming multiple bids.
Performance & Latency
An early deadline is introduced to run the auction quickly, aiming to keep user transaction latency as low as possible.

FAQ

1) Why do we need a slot-based auction?
It locks the backrun call directly after its target transaction, reducing reorder exploits and ensuring fairer MEV distribution.

2) How do searchers participate?
They deposit enough funds (bid + gas) in a vault and submit hidden bids off-chain. If their bid wins, it’s placed immediately after the target transaction.

3) What is the “target transaction”?
Any user transaction that creates a profitable backrun opportunity—e.g., a large swap that searchers want to exploit right after it executes.

4) What if the backrun transaction fails?
The searcher still pays the bid, and everything is handled atomically in the AuctionEntryPoint (so no partial failures).

5) Why only one winning bid per searcher per block?
It prevents a single searcher from spamming multiple backrun slots, keeping the auction more balanced and fair.

6) What is “Deposit & Cooldown”?
Searchers lock up funds and must wait out a cooldown period before withdrawing, ensuring enough coverage if their backrun fails.

7) Does the Auctioneer have to be trusted?
Currently, yes. The Auctioneer privately coordinates hidden bids, but final checks (signatures, deposits) occur on-chain to mitigate abuses.

8) What does the “early deadline” achieve?
It stops new user transactions after a cutoff, giving time for the auction to finish and ensuring minimal delay for normal transactions.

KIP-249 링크: [Slot-Based Auction on Kaia ([KIP-249] Slot-Based Auction on Kaia by jiseongnoh · Pull Request #49 · kaiachain/kips · GitHub)

KIP-249 요약

대상 거래 직후에 낙찰된 거래를 배치하는 슬롯 기반 경매 메커니즘을 제안하여 재정렬 공격(reorder exploit)을 최소화하고 MEV를 체계적인 방식으로 포착합니다.

오프체인 경매인은 입찰을조정하며, 온체인 AuctionEntryPoint 컨트랙트는 입찰의 지불, 백런 실행, 가스 환불을 원자적으로 처리하며, 수익금은 거버넌스가 제어하는 금고로 전달됩니다.

서처는 경매 참여를 위해 디파짓이 필요하며, 하나의 서처는 블록 당 한 개의 입찰 당첨으로 제한합니다. 트랜잭션 번들링을 통해 MEV 수익을 공정하게 분배하는 것을 목표로 합니다.

기술적 관점

입금 및 쿨다운

검색자는 입찰 금액과 가스를 충당할 수 있는 충분한 자금을 입금해야 하며, 입찰 후 즉시 자금을 인출하지 못하도록 쿨다운(cooldown) 기간이 적용됩니다.

슬롯 기반 인접성

낙찰된 백런 콜은 대상 거래 직후에 배치되어 재정렬 공격을 최소화하고 일관된 MEV 캡처를 보장합니다.

경매 진입점을 통한 원자 실행

입찰 결제, 백런 논리, 가스 환불은 단일 함수 호출로 이루어지므로 부분적인 실패를 방지하고 처리를 단순화할 수 있습니다.

검색자당 블록당 하나의 낙찰 입찰

각 검색자는 블록당 하나의 낙찰 입찰만 제출할 수 있으므로, 단일 참가자가 백런 슬롯을 독점하거나 스팸성 다중 입찰을 방지할 수 있습니다.

성능 및 지연 시간

사용자의 트랜잭션 지연을 최소화하고, 신속한 경매를 위해 조기 마감(early deadline) 기법이 도입되었습니다.

자주 묻는 질문

1) 슬롯 기반 경매가 필요한 이유는 무엇인가요?

백런 콜을 타겟 트랜잭션 직후에 고정 배치하여 재정렬 공격을 줄이고, MEV를 보다 공정하게 분배하기 위함입니다.

2) 검색자는 어떻게 참여하나요?

검색자는 (입찰액 + 가스)만큼의 예치금을 입금금하고, 오프체인에서 경매인에게 입찰을 제출합니다. 입찰에 당첨되면 타겟 트랜잭션 직후에 트랜잭션이 배치됩니다.

3) “타겟 트랜잭션”이란 무엇인가요?

백런 기회를 만들어내는 사용자 트랜잭션(예: 큰 규모의 스왑)으로, 검색자가 해당 트랜잭션 직후에 MEV를 추출하려고 합니다.

4) 백런 트랜잭션이 실패하면 어떻게 되나요?

백런 로직이 실패(리버트)해도 검색자는 입찰액을 지불해야 하며, 모든 처리는 AuctionEntryPoint에서 원자적으로 진행되어 부분 실패가 발생하지 않습니다.

5) 왜 검색자는 블록당 하나의 당첨 입찰만 가능하나요?

한 검색자가 여러 백런 슬롯을 독점하거나 스팸성 입찰을 뿌려 다른 참여자를 차단하는 행위를 막고, 경매의 균형을 유지하기 위함입니다.

6) “Deposit & Cooldown”이란 무엇인가요?

검색자가 충분한 자금을 예치한 뒤, 일정 기간 이후에만 인출할 수 있도록 합니다.

7) 경매인은 반드시 신뢰해야 하나요?

현재는 그렇습니다. 경매인은 오프체인에서 히든 입찰을 관리하고 우승 입찰을 조율하지만, 궁극적인 입찰 검증(서명·예치금·블록 참조 등)은 온체인에서 이루어져 남용 위험을 줄입니다.

8) “사전 마감(early deadline)”은 어떤 역할을 하나요?

마감 시간이 지난 후에는 새 사용자 트랜잭션을 받지 않고 경매를 마무리함으로써, 일반 트랜잭션 처리 지연을 최소화하면서도 경매 과정을 완료할 시간을 확보합니다.

1개의 좋아요

[한국어 번역은 아래에 있습니다.]
This KIP-249 introduces the concept of “early deadline” to ensure the enough auction time for all transactions in a block. But, without proper detection rule, the malicious validators might not follow this early deadline to get the exclusive opportunity for profitable transaction. Since it’s not an easy problem, we’d like to hear the voice from community and find out the solutions.

In the highest level, we need to choose whether validating early deadline into consensus or not, and prepare initial ideas from our side. If you have any question/ideas/feedbacks, please feel free to leave a comment so gather more brain power!

1. Auction In Consensus

Goal: To prevent the modification of auction transactions (tx) or the addition of arbitrary auction transactions, thereby mitigating the risks posed by malicious proposers.

Out-of-Scope Issue:
While proposers are not strictly obligated to include auction transactions in a block, failing to do so would result in a loss of potential profit. This makes it unlikely for them to disregard this obligation.

Terminology:

  • Prebuilt Block Template (PBT): A predefined list of transactions committed at an early deadline.

Method

  1. The proposer of Block N broadcasts the PBT to all CNs.
  2. The proposer of Block N+1 appends auction and lend transactions to the received PBT and proceeds with mining Block N+1.
  3. Verification process of Block N+1 in step by step
  4. Auction transaction verification
    1. Verify the signature of the proposer of Block N+1.
    2. Check whether the auctioneer signature field in the auction transaction contains the valid signature of the auctioneer.
  5. Lend transaction verification
    1. Verify the signature of the proposer of Block N+1.
    2. Confirm the presence of the two following transactions (approve, swap) after the lend transaction.
    3. Ensure that transactions A (approve) and S (swap) are included in the PBT.
    4. Validate compliance with KIP-245 (e.g., checking whether the to address of L, A, and S is a whitelisted ERC-20 contract).

Issues

  • Auction Bypass Attack
    • If the transaction S was created by the proposer of Block N and the proposer of Block N+1 omits the auction transaction while appending a GA bundle (LAS) immediately after the target transaction hash, the logic above would still validate it. This allows the proposer to indirectly hijack the auction.
      • However, for this attack to succeed, the proposers of Block N and Block N+1 must have aligned interests. If they do not, there is no incentive to ignore the auction transaction, making this attack path feasible only if at least two malicious proposers collaborate.
    • Example**:**
      • PBT = [target_tx, S]
      • Expected Scenario = [target_tx, auction, LAS]
      • Attack Scenario = [target_tx, LAS] (Executing backrun via GA bundling without consuming a bid)
  • Issues and Solutions of the PBT Approach
    • Issue 1: Validation of the PBT propagated to CNs in every block.
    • Solution 1: Ensure that the PBT signature matches the signature of the previous block’s proposer.
    • Issue 2: Since the transaction list for the next block is pre-constructed by the previous block’s proposer, it could be manipulated. A malicious proposer could propose an invalid block that violates state rules or exclude transactions to not earn gas fees.
    • Solution 2: In the PBT approach, the block proposer must create not only the current block but also the template for the next block. To ensure fairness, block rewards should be tightly coupled between consecutive blocks. Thus, the block reward mechanism should be modified as follows:
      • Tightly Coupled Block Rewards
        • Distribute the current block’s reward in a 50:50 ratio between the previous proposer and the current proposer.

1. Auction In Non-consensus

Goal: We need to detect the malicious actions of validators.

  1. The validators should follow the early deadline to ensure the auction window for all transactions.
  2. The auctioneer should process the auction results as protocol rule.

Basic Idea: The auctioneer keeps receiving the pending transactions from each validators already, so we can check if the each validators follow the early deadline with one more message: MSM. (Mining Start Message)

  • MSM: Each validators will send the ordered hashes of all transactions in a block and a mining block number to the auctioneer right after the mining started: {hashes, miningBlockNum}.

Then, the auctioneer will receive below two messages via websocket from each validators and it records message with the timestamp.

  • Pending transactions: Similar to eth_subscribe([“newPendingTransactions”], but share the full transaction to auctioneer.
  • MSM: As soon as a validator starts the mining.

Please note that the auctioneer should have received all transactions in MSM previously since the transactions in MSM must come from pending transaction. So the expected timing would be:

tx -> Val1: Receives transactions and add it to pending pool.
Val1 -> auctioneer: Sends newly added pending transaction.
...
Val1 -> auctioneer: Sends MSM

For example, Validator#1 will send messages like below:

Val1 -> Auctioneer: [... {hashZ, N-1}], [A, B, C, D {hash{A, B, C}, N}], [E, F, G, {hash{D, E, F}, N+1}], [H, I, {hash{H, I}, N+2}], ...

Then, the auctioneer can expect the tx list of a block if Val#1 becomes the proposer. If the Val#1 becomes proposer at blockN+1, then the blockN+1 should contain {D, E, F} and the last transaction would be F.

As we checked before, the auctioneer has receiving time of all pending transactions and MSM. Using this, we can estimate the early deadline of proposer.

// In auctioneer's local time
Tx D: 00:40
Tx E: 00:63
Tx F: 00:85
<- Early deadline
Tx G: 00:93
MSM : 01:05 {D, E, F}

In the above timestamp, we can assume that the proposer sets the early deadline between F and G, at least 01:05 - 00:93 = 00:12. Since it is affected by network condition, we can assume that proposer doesn’t follow the rule if it occurs in very suspicious timing (there was very profitable arbitrage chances) or regularly. The standards will be set after discussion with ecosystem participants if needed.

And in transaction insertion perspective, a block might contain the transactions that auctioneer doesn’t receive from validator. We can separate this case in two:

  1. Insert non-reported txs before the last tx: D, *G*, E, F
  2. If G is bundle transactions or correctly broadcasted txs, there’s no problem.
  3. If G is arbitrary transactions from proposer, it’s scope-out.
  4. Insert non-reported txs after the last tx: D, E, F, *G*
  5. If G is bundle transactions, there’s no problem.
  6. If G is arbitrary transactions from proposer, we can 100% sure the proposer is malicious.

And in bundle process perspective, we can assume the validator is malicious if it doesn’t contain the auction result once the auctioneer sends it to the CN network.

  1. If auction result doesn’t pass the static validation: Can be detected off-chain
  2. If proposer claims it hasn’t received any bid result: We can suspect if other validators receive the bid result without issues.

Using this methods, we can find malicious actions of validators with minimum impact of CN client.

By leveraging this post-validation, we can detect/punish the malicious proposer accordingly. For example, we once introduced the rule to exclude validators from network temporary if do not participate in on-chain governance.

Note: We need to adjust the time record timing to after the insertion in node client.

              Receive     Insertion           Mining
Tx1: ------------|------------|-----------------|------
                   R    I                     Mining  
Tx2: --------------|----|-----------------------|------
                           ^ Early-deadline: Tx1 can't have enough auction time
So, the early deadline based on receipt will be passed, but it can't count the actual "insertion" where the auctioneer can start the auction.


[KR]
본 KIP-249는 모든 트랜잭션에 대하여 충분한 옥션 타임을 보장하기 위한 장치인 "early deadline"을 도입합니다. 하지만, 적절한 규칙없이는 악의적인 validator가 수익성있는 transaction에 대한 독점 기회를 가지기 위해 이러한 early deadline을 올바르게 따르지 않을 수 있습니다. 이를 해결하기 위해 저희는 생태계 참여자들의 의견을 함께 듣고자 합니다.

가장 상위 레벨에서, 저희는 early deadline과 관련된 규칙을 "컨센서스"단에서 다룰 것인지 여부를 결정하고, 이를 토대로 적절한 솔루션을 생각해볼 수 있고, 우선 고려될 수 있는 아이디어를 각각 하나씩 준비했습니다. 만약 해당 의견과 관련하여 질문/아이디어/피드백이나 새로운 아이디어가 있다면 꼭 함께 이야기해볼 수 있으면 좋겠습니다. 감사합니다.

1. Auction In Consensus

  • 목표: 옥션 tx를 수정하거나 임의의(옥션) tx를 추가할 수 없도록하여 악의적인 프로포저의 위협을 제한합니다.
  • 범주외의 문제: 옥션 tx를 블럭에 삽입해야하는 의무를 따르지 않을 수 있으나 이익을 버리는것과 동일하기에 의무를 따르지 않을 동기가 적습니다.
  • 용어정리
    • Prebuilt Block Template (PBT) : Early deadline에서의 커밋할 tx list
  • 방법
    • 블럭N의 프로포저는 PBT를 모든 CN들에게 broadcasting
    • 블럭N+1의 프로포저는 앞에서 전파받은 PBT에 Auction + Lend 을 덧붙여서 블럭N+1을 마이닝
    • 블럭N+1을 검증
      • Invariant: B[N+1] - PBT[N+1] = {auction tx, lend tx} or {}
        • auction tx의 발견
          • 블럭N+1의 프로포저의 서명확인
          • 옥션tx의 옥셔니어 시그니쳐 필드가 옥셔니어의 서명인지확인
        • lend tx의 발견
          • 블럭N+1의 프로포저의 서명확인
          • lend tx 뒤 따라오는 트랜잭션 2개(approve, swap)을 확인
            • A, S가 PBT에 포함되어있는지 확인
            • KIP-245에 따른 검증 (예: L,A,S의 to address가 whitelisted ERC20 인지 확인)
  • 문제점
      1. 옥션 우회 공격
      • S tx가 블럭N의 프로포저가 만든 tx이고, 블럭N+1 프로포저가 옥션tx를 삽입 하지않으면서 target tx hash에 곧이어 GA 번들링(LAS)을 붙여 넣을 경우 위의 로직에서는 유효하므로 프로포저가 간접적으로 옥션을 탈취할 수 있습니다.
        • 단, N블록 프로포저와 N+1블록 프로포저와 이해관계가 있어야 하며 이해관계가 없다면 옥션 tx를 삽입하지 않을 동기가 없기때문에 이러한 attack path는 최소 2명의 악의적인 프로포저가 협심해야 합니다.
        • 예제)
          • PBT = [target_tx, S]
          • 기대 시나리오 = [target_tx, auction, LAS]
          • 공격 시나리오 = [target_tx, LAS] (bid 소모없이 GA 번들링으로 backrun 실행)
  • PBT 방식자체의 문제점과 해결방안
    • 문제점1
      • 매블럭마다 CN들에게 전파되는 PBT의 유효성 검증문제
    • 해결방안1
      • PBT의 서명값이 직전 블록 프로포저의 서명값인지 확인
    • 문제점2
      • 다음 블럭의 프로포저가 제안할 블럭의 tx list를 직전 블록의 프로포저가 미리 생성하는 흐름에 의하여 임의로 조작한 블럭을 넘길 수 있습니다. 임의로 조작된 블럭은 state를 위반하는 트랜잭션이거나, 트랜잭션을 포함하지않아 가스 수수료를 얻지 못하는 등의 공격을 할 수 있습니다.
    • 해결방안 제안
      • PBT 방식에서는 블록 프로포저는 현재 블록 뿐만 아니라 다음 블록의 템플릿까지 만들어야하는 추가 의무를 수행하여야 합니다. 따라서 블록보상을 현재 블록과 다음 블록을 강결합하여 블록 보상 메커니즘을 다음과 같이 수정이 필요합니다.
        • 블럭간 강결합 보상
          • 현재 블록의 보상을 5:5의 비율로 직전 프로포저와 현재 프로포저에게 분배 합니다.

2. Auction In Non-consensus

목표: Validator의 악의적인 행동 탐지

  1. Validator는 모든 거래에 대해 충분한 경매시간이 보장될 수 있도록 조기 마감 기한 (early deadline)을 준수해야 한다.
  2. Validator는 프로토콜 규칙에 따라 경매를 처리해야 한다.

기본 개념

Auctioneer는 이미 각 validator들로부터 pending transactions들을 수신하고 있으므로, validator가 조기 마감 기한을 준수하는지 확인하기 위해 추가적인 메시지인 MSM (Mining Start Message) 를 활용할 수 있다.

  • MSM: 각 검증인은 채굴이 시작되자마자, 블록 내 모든 거래의 정렬된 해시 목록과 해당 블록 번호를 경매 진행자에게 전송한다. 즉, MSM 메시지는 다음과 같은 구조를 가진다: {hashes, miningBlockNum}

즉, 옥셔니어는 websocket을 통해 각 validator들로부터 다음과 같은 메세지를 받으며, 이를 로컬 타임과 함께 기록한다.

  • Pending transactions: 기존 eth_subscribe[“newPendingTransactions”]과 유사하지만, full transaction을 전송.
  • MSM: Validator가 블록 마이닝을 시작하자마자 전송.

여기서 중요한 점은, 옥셔니어는 MSM에 기록되어있는 hashes의 존재를 이미 pending transactions을 통해 전달받았을 것이라는 점입니다. 따라서 예상되는 메세지 수신 타이밍은 다음과 같습니다.

tx -> Val1: Receives transactions and add it to pending pool.
Val1 -> auctioneer: Sends newly added pending transaction.
...
Val1 -> auctioneer: Sends MSM

예를들어, Val#1은 다음과 같이 옥셔니어에게 메세지를 전송하고 있습니다.

Val1 -> Auctioneer: [... {hashZ, N-1}], [A, B, C, D {hash{A, B, C}, N}], [E, F, G, {hash{D, E, F}, N+1}], [H, I, {hash{H, I}, N+2}], ...

위 예시에서, 옥셔니어는 Val#1이 proposer가 됐을 때 블록의 컨텐츠를 예상할 수 있습니다. 만약 Val#1이 블록 N+1의 proposer라면, 블록 N+1은 {D, E, F}를 담고 있어야 하며, 마지막 트랜잭션은 F 라는 것을 알 수 있습니다.

또한 이미 위에서 이야기했듯, 옥셔니어는 MSM을 받기전 이미 pending transactions을 통해 각 tx 메세지를 로컬 타임과 함께 기록해 두었고, 이를 이용하여 proposer가 사용한 early deadline을 계산할 수 있습니다.

// In auctioneer's local time
Tx D: 00:40
Tx E: 00:63
Tx F: 00:85
<- Early deadline
Tx G: 00:93
MSM : 01:05 {D, E, F}

위의 예시에서, 우리는 proposer가 F, G 사이에서 early deadline을 끊었다는 것을 알 수 있고, 이는 최소 01:05 - 00:93 = 00:12의 early deadline을 보장했다는 뜻입니다. 이는 모두 이상적인 네트워크 환경에서의 예시이며, 실제로는 여러 변수가 존재하기 때문에 우리는 계산된 early deadline이 기대치를 벗어나는 경우가 1. 매우 의심가는 상황이거나 2. 특정 validator에게 자주 발생했을 때를 기준으로 proposer의 malicious함을 사후 평가할 수 있습니다. 이 기준은 생태계 참여자들과의 토의를 통해 결정될 수 있습니다.

다음으로 트랜잭션 삽입 관점에서, 블록은 옥셔니어가 모르는 트랜잭션을 포함할 수도 있습니다. 이는 크게 두 가지 케이스가 존재합니다:

  1. 수신받지 못한 tx가 last tx 이전에 들어온 경우: D, *G*, E, F
  2. 만약 G가 번들링으로 인한 tx거나, 정상적인 전파과정을 거쳤다면, 문제가 없습니다.
  3. 만약 G가 proposer가 삽입한 임의의 tx라면, 이는 옥션과 별도의 문제입니다.
  4. 수신받지 못한 tx가 last tx 이후에 들어온 경우: D, E, F, *G*
  5. 만약 G가 번들링으로 인한 tx라면, 문제가 없습니다.
  6. 만약 G가 proposer가 삽입한 임의의 tx라면 해당 proposer는 룰을 지키지 않았다고 확신할 수 있습니다.

다음으로 번들 처리관점에서, 옥셔니어는 옥션 결과를 최대한 많은 CN에게 전달하며, CN도 내부적으로 broadcasting을 진행합니다. 즉, 옥셔니어가 정상적으로 옥션 결과를 발송했다면 validator는 이를 블록에 포함시켜야 합니다.

  1. 만약 옥션 결과가 static validation을 통과하지 못했다면: Offchain으로 검증할 수 있습니다.
  2. 만약 프로포저가 옥션 결과를 받지 못했다고 주장한다면: 다른 CN들은 옥션 결과를 정상적으로 수신했고, 다른 모든 CN들로부터 전파도 받지 못했을 확률은 매우 낮으므로 반복적일 경우 malicious하다고 추정할 수 있습니다.

위의 방법론을 사용해서, 우리는 CN client의 변화를 최소하하면서도 validator의 malicious한 행동을 발견할 수 있습니다.

이를 사용하여, 우리는 malicious한 validator를 발견/처벌할 수 있습니다. 이전에 온체인 거버넌스에 지속적으로 참여하지않은 validator들을 network에서 제거했듯이, permissionless 전까지도 이를 발견하여 적절한 조치를 취할 수 있을 것이라 기대합니다.

Note: node에서 tx.time을 찍는 시점을 pending list에 추가하는 시점으로 수정해야 합니다.

                수신          삽입               마이닝
Tx1: ------------|------------|-----------------|------
                  수신  삽입
Tx2: --------------|----|-----------------------|------
                           ^ Early-deadline
즉, 수신을 기준으로하는 early deadline은 통과하지만, 실질적으로 "삽입"이 되어서 auctioneer에게 전달한 이후로부터는 충분한 early deadline이 보장되지 않음.
1개의 좋아요

[Update]

  1. We decided to use non-consensus methodology.
  2. The searcher doesn’t need to check the block number, but the auctioneer will select the appropriate block number on behalf of searchers. We’d expect that this change can ease the searcher’s burden.

If you have further questions/thought, please feel free to share them! Thanks.

2개의 좋아요

[Update]

Let’s think about the following situation when the auctioneer evaluates the searcher’s block number.

We have a rule: Only one winning bid allowed for one searcher in a block. To prevent multiple wining bids from one searcher get accepted, the auctioneer will check if the searcher’s bid will be included in one block or not. But it’s impossible to exactly know the mining time so the searcher’s bid can be canceled even if searcher think it’s fine.

At first, we thought it would be better to let searchers do not care about the block number, but it causes more difficulties to searchers because of the above issue. So, we decided to rollback to our previous design that searcher needs to specify the block number for their bid inclusion.

Please note that the searcher’s bid can be included in curr + 1 or curr + 2, it’s allowed for searchers to send maximum two bids that have different block number for a same target tx: [target, curr+1, ...] and [target, curr+2, ...].

And, we decided to use non-zero bid as valid, not explicit minimum bid amount. Its motivation was to prevent attack point, but it turns out there’re no possible scenario since anyway searcher needs to pay gas fee. But to prevent any misuse of auction, we at least check if the bid > 0.

It would be better to undestand with the following diagram. M for Mining and I for Insertion.

  M(#N)        I(#N)       M(#N+1)      I(#N+1)      M(#N+2)
----|------------|------------|------------|------------|---
    |-----------txs-----------|-----------txs-----------|---
                 |---------currBlk---------|---------currBlk------|

Since the block number will be shared to auctioneer after finalized, auctioneer can’t exactly know when the mining has been started exactly.

KIP-249 is now shown at KIP 249: Slot-Based Auction on Kaia

2개의 좋아요