Skip to content

rsksmart/RSKIPs

Repository files navigation

RSKIPs

This repository contains the RSK Improvement Proposals (RSKIPs).

You can find an easily browseable version of this information here.

RSKIP status terms

  • Draft - an RSKIP that is open for consideration
  • Accepted - an RSKIP planned for immediate adoption in the reference client, i.e., expected to be included in the following reference client release.
  • Adopted - an RSKIP adopted in a previous reference client release.
  • Deferred - an RSKIP not being considered for immediate adoption in the reference client. May be reconsidered in the future for a subsequent release of the reference client.
  • Rejected - an RSKIP that was rejected

RSKIP purpose terms

  • Sca - an RSKIP that improves scalability
  • Usa - an RSKIP that improves usability
  • Fair - an RSKIP that improves fairness
  • Sec - an RSKIP that improves security
  • ST - an RSKIP that proposes a standard track

Layer

  • Core - Core, consensus related
  • Node - Related to node manager interfaces, such as RPC
  • UI - User Interface
  • 2nd - Second-layer protocols, such as off-chain payment channels
  • Net - Related to p2p networking
  • DApp - Dapp application interfaces

Implementation Complexity

  • 1 - Minimal
  • 2 - Medium
  • 3 - High

Index

Nr Title Creation Date Author Pur Layer C Status
0 RSKIP Purpose and Guidelines 07-MAY-18 JL Adopted
1 Distributed Memory 09-JUN-16 SDL Sca Core 2 Draft
2 Dynamic Contract Dependency 11-JUN-16 SDL Sca Core 2 Rejected
3 Parallel Execution using static contract dependencies 22-JUN-16 SDL Sca Core 2 Rejected
4 Parallel Execution using runtime contract dependencies 22-JUN-16 SDL Sca Core 2 Accepted
5 Shift Operations 22-JUN-16 SDL Sca Core 1 Rejected
6 Block Size Limit 22-JUN-16 SDL Sca Core 1 Adopted
7 Persistent Storage Rent Paid by Code 11-JUN-16 SDL Sca Core 3 Rejected
8 Verification-less mining 29-SEP-16 SDL Fair Core 2 Draft
9 Negotiated Minimum Gas Price 21-OCT-16 SDL Sca Core 2 Adopted
10 Transactions never invalidate blocks 21-OCT-16 SDL Sca Core 2 Accepted
11 TXINDEX Opcode 07-AUG-16 SDL Sca Core 1 Adopted
12 Contract Sleep 06-AUG-16 SDL Sca Core 1 Rejected
13 Support for stable assets & token issuance 08-AUG-16 SDL Sca Core 3 Draft
14 Reward Manager Smart Contract (REMASC) 10-NOV-16 SDL Sca Core 3 Rejected
15 Simplified Reward Manager Smart Contract (REMASC) 14-NOV-16 SDL Sca Core 3 Adopted
16 Combined State Tree 01-NOV-16 SDL Sca Core 3 Draft
17 Simpler Persistent Storage Rent 27-SEP-16 SDL Sca Core 3 Rejected
18 Fast Hibernation Wakeup using Trie 28-SEP-16 SDL Sca Core 2 Draft
19 RSK Address formats 24-NOV-16 SDL Sca Core 1 Draft*
20 Survive and Ephemeral Memory Spaces 25-NOV-16 SDL Sca Core 2 Draft
21 Efficient Persistent Storage Rent 02-DIC-16 SDL Sca Core 2 Draft*
22 Commit to number of Merkle tree elements 04-DIC-16 SDL Sca Core 1 Draft
23 Onchain PoUBS 05-DIC-16 SDL Sca Core 3 Draft*
24 New Binary Trie 23-DIC-16 SDL Sca Core 3 Adopted
25 Memory caches 27-DIC-16 SDL Sca Core 2 Draft
26 DUPN and SWAPN opcodes 27-DIC-16 SDL Sca Core 1 Adopted
27 Highly Efficient Storage Rent 29-DIC-16 SDL Sca/Fair Core 2 Draft
28 Ephemeral segwit 29-DIC-16 SDL Sca Core 1 Draft*
29 Change in Account creation cost 01-JAN-17 SDL Sca Core 1 Reject
30 Code Pagination 01-JAN-17 SDL Sca Core 2 Draft
31 Hibernation Compression 10-JAN-17 SDL Sca Core 3 Draft
32 Double-Hashed Addresses 10-JAN-17 SDL Sca Core 2 Draft*
33 CODEREPLACE opcode 17-JAN-17 SDL Sec/Usa Core 2 Adopted
34 Contract const DATA Sections 20-JAN-17 SDL Sca Core 1 Draft*
35 Managing BridgeMaster Federation Members 02-FEB-17 SDL Sca Core 3 Draft
36 Transaction Encapsulation 02-FEB-17 SDL Sca Core 2 Draft
37 Single Address Smart Wallets 18-FEB-17 SDL Sca/Usa Core 3 Draft
38 Signature Compression 21-FEB-17 SDL Sca Core 3 Draft
39 Multi-key Accounts 25-FEB-17 SDL Sca Core 2 Draft
40 Basic Bridge for two-way-peg to Bitcoin 25-APR-17 SDL Usa Core 2 Adopted
41 Extended Bitcoin Bridge Transactions 25-APR-17 SDL Usa Core 2 Draft*
42 Remove world midstates from receipts 22-JUN-17 SDL Sca Core 1 Adopted
43 Sequential Address format 23-JUN-17 SDL Sca Core 2 Draft
44 Remove the zero-byte discount in data 24-JUN-17 SDL Sca Core 1 Draft
45 New Event Tree and Extended LOG 26-JUN-17 SDL Sca Core 2 Adopted
46 Block Mining Fees Information Mechanism 04-OCT-17 MM Usa Node 1 Adopted
47 CALLNUM opcode 18-OCT-17 SDL Sca Core 1 Draft
48 Informing average free gas per block 28-NOV-17 SDL Sca Core 2 Draft
49 One-To-Many hub payment channels 01-DIC-17 SDL Sca Core 2 Draft
50 Script Versions using HEADER pesuo-opcode 07-DIC-17 SDL Sca Core 1 Adopted
51 Memory-Mapped configuration register 10-DIC-17 SDL Usa Core 1 Adopted
52 Cache Oriented Storage Rent 12-DIC-17 SDL Sca Core 2 Draft*
53 Lumino Transaction Compression (LTCP) 20-FEB-17 SDL Sca Core 3 Draft*
54 Transaction amount & destination privacy 07-MAR-17 SDL Usa Core 3 Draft
55 Native Probabilistic payments 11-MAR-17 SDL Usa Core 3 Draft*
56 Sporadic Verification-less mining 11-MAR-17 SDL Fair Core 3 Draft
57 Derivation Path for Hierarchical Deterministic Wallets 05-ABR-18 IO Usa Net 1 Draft
58 Handling Bitcoin Forks 14-NOV-17 SDL Sca Core 3 Draft
59 Child Contracts 11-JUN-16 SDL Sca Core 1 Accepted
60 Checksum Address Encoding 25-JUN-18 IO ST Net 1 Adopted
61 Cache Oriented Storage Rent (collect at EOT version) 03-MAY-18 SDL Sca Core 2 Draft*
62 Compressed block propagation using state trie update batch (COBLO) 07-MAY-18 SDL Sca Core 2 Draft*
63 Double Signing for Delayed Signature Aggregation 07-MAY-18 SDL Sca Core 2 Draft
64 Garbage Collector for State Pruning 29-MAY-18 SDL & MMa Sca,Usa Core 2 Draft
65 MINGASPRICE Opcode 18-MAY-18 JIO Sec CORE 1 DRAFT
70 Default TX Data 25-NOV-16 SDL Sca Core 2 Draft
71 Transfer 2300 gas units for code execution in external transactions 30-JAN-19 SDL Usa Core 1 Draft
75 Native Off-Chain Probabilistic payments 07-MAY-18 SDL Sca Core 2 Draft
77 Smoother Difficulty adjustment 2016 SDL Sca, Fair Core 2 Draft
85 Remasc native contract improvements 11-JUL-2018 LS Sca Core 2 Adopted
87 Whitelisting unlimited mode 12-JUL-18 JD Usa Core 2 Adopted
89 Add Bitcoin block query methods to the bridge contract JULY-18 SDL Usa Core 2 Adopted
91 STATIC_CALL opcode 2018 AE Usa Core 2 Adopted
92 Merkle Proof serialization 2018 DLL & MC Sca Core 2 Adopted
95 DELEGATECALL as an instruction set extension 2018 SDL Sca Core 2 Draft
98 Deactivation of the federated fallback system for block production 2018 SDL Sca Core 1 Adopted
99 Orchid Network Upgrade 2018 AE Scan,Sec,Usa Core 3 Adopted
102 Efficient and Secure Fee Bumping 2018 SDL Usa Core 2 Draft
106 Precompiled contract for HDWallet utility functions 2019 AM Usa Core 1 Adopted
107 Smaller Unitrie Nodes for Higher Scalability 2019 SDL Sca Core 1 Draft
108 More Efficient Unitrie Key Mapping 2019 SDL & AL Usa,Sca Core 2 Draft
109 Lower Storage Gas Costs for Shorter Keys 2019 SDL Usa,Sca Core 2 Draft
110 Fork Detection Data in RSKBLOCK tags 2019 SDL Sec Core 1 Draft
112 Unitrie Node identifiers 2019 SDL Sec,Sca Core 1 Draft
113 Unified Cache Oriented Storage Rent for the Unitrie 2019 SDL Sec,Sca Core 2 Draft
115 Removal of Unused Headers from the Bridge Contract 2019 SDL Sca Core 2 Draft
116 Failure of SSTORE on Low-Gas Recursive CALLs 2019 SDL Sec,Sca,Usa Core 1 Draft
119 Precompiled contract for inspecting block headers 2019 DM Usa Core 1 Draft
120 Shifting opcodes 2019 SMS Sca Core 1 Adopted
122 New method GetBtcTransactionConfirmations for Bridge contract 2019 SMS Usa Core 2 Draft
123 Multikey federation members 2019 AM Sca, Sec Core 2 Adopted
125 Create2 2019 SMS Sca Core 1 Adopted
131 Preventing CREATE2-after-SUICIDE in the same block 2019 SMS & SDL Sca,Usa Core 1 Adopted
132 Bridge ReceiveHeaders Gas Cost increase 2019 JD & SDL Fair Core 1 Adopted
134 Locking cap 2019 JD Sec,Sca,Usa Core 2 Draft
135 Managing BridgeMaster Federation Members 25-NOV-16 SDL Sca Core 2 Draft
138 Multi-signed transactions supporting enveloping and multi-key accounts 10-SEP-19 SDL Sca Core 2 Draft
139 Precompile to get transaction refunds 10-SEP-19 SDL Sca Core 1 Draft
140 EXTCODEHASH opcode 04-SEP-19 JL Usa Core 2 Adopted
141 Network Upgrade: Papyrus 27-SEP-19 AE Sca,Usa,Sec Core 2 Adopted
144 Parallel Transaction Execution for Unitrie 13-OCT-19 SDL Sca Core 3 Draft
145 Struct Transaction Format 20-FEB-17 SDL Sca Core 2 Draft
146 Encode bridge events in Solidity format 25-OCT-19 MI & JD Usa Core 2 Adopted
148 ERC1820 Pseudo-introspection Registry Contract 6-NOV-19 PMP Usa DApp 1 Adopted
149 Improved Asset transfers 10-NOV-19 SDL Sca Core 2 Draft
152 CHAINID Opcode 19-NOV-19 SMS Sec Core 1 Draft
153 Add BLAKE2 Compression Function F Precompile 19-NOV-20 FJ Usa Core 2 Adopted
157 Cumulative Difficulty in JSON-RPC block responses 11-FEB-20 MP Usa Node 1 Accepted
159 Minimal Proxy Contract 19-FEB-20 PMP Usa DApp 1 Adopted
167 Install Code Precompile 07-JUL-20 SDL Usa Core 1 Draft
169 Rectify EXTCODEHASH implementation 31-JUL-20 NPS Usa Core 2 Adopted
170 Peg-in to any address 01-SEP-20 MI Usa Core 2 Adopted
171 Clean EVM Internal Buffer in Call-like Opcodes 02-SEP-20 FJ Usa Core 1 Adopted
172 Subroutines for EVM 01-SEP-20 AL Usa Core 2 Draft
173 Chunk-Based Code Merkleization using the Unitrie 10-SEP-20 SDL Sca Core 2 Draft
174 Preserve balance in contract creation 23-JUL-21 VK Usa/Fair Core 1 Adopted
176 Programmable Peg-in Addresses for faster peg-ins 15-SEP-20 SDL,GM Usa Core 2 Adopted
177 Universal Merged Mining Extension APR-2020 SDL & MP Usa Node 1 Adopted
178 External Confirmation Hashrate 2-SEP-20 SDL Sec Core 2 Draft
179 BTC-RSK timestamp linking 16-OCT-20 SDL Sec Core 1 Adopted
180 Limit the RSK merged mining merkle proof 15-JUL-21 VK Sec Core 1 Adopted
181 Peg-in rejection events 03-NOV-20 JD Usa Core 2 Adopted
185 Peg-out refund and events 19-NOV-20 JD Usa Core 1 Adopted
186 Active Federation creation block height registration 19-NOV-20 JD Sec Core 2 Adopted
187 Network Upgrade: Iris 20-NOV-20 AE Usa, Sec Core 2 Adopted
190 Powpeg address change audit trail 21-NOV-20 SDL Sec Core 1 Draft
191 Remove opcodes incompatible with Ethereum 23-NOV-20 AL Usa Core 1 Adopted
192 getTransactionIndex Precompile method 24-NOV-20 SDL Usa Core 1 Draft
194 Bloom filter compression 28-NOV-20 SDL Sca Core 1 Draft
197 Fix Precompile Calls Not Conforming With CALL Semantics 15-DEC-20 FJ Usa Core 2 Adopted
198 Minpeg, a miners' multisig in the peg JAN-21 SDL Sec Core 2 Draft
199 registerBtcTransaction Is Public 07-JAN-21 MI Sca,USa,Sec Core 2 Adoted
200 Receive headers limits 08-JAN-21 PGP & MI Sec Core 2 Adopted
201 Time-locked Emergency Multisignature 15-JAN-21 SDL Sec Core 2 Adopted
203 getCallStackDepth Precompile method 15-JAN-21 SDL Usa Core 1 Adopted
207 Emergency Time-locks Refresh 18-JAN-21 SDL Sec Core 2 Draft
208 checkEnvironment Precompile method 19-JAN-21 SDL Usa Core 1 Draft
209 Stack-overflow removal 21-JAN-21 SDL Sec Core 2 Draft
212 HW-compatible Transaction Versioning System 29-JAN-21 SDL Sca Core 1 Draft
213 Simple Transaction Versioning System 2-FEB-21 SDL Sca Core 1 Draft
214 Ephemeral Calldata using Precompile 29-JAN-21 SDL Sca Core 2 Draft
215 Ephemeral Blockchain 3-FEB-21 SDL Sca Core 2 Draft
218 New Fee Rewards Address for the RSK Core Developers Fund 25-MAR-21 FJ Usa Core 1 Adopted
219 New minimum values for peg-in and peg-outs 12-JUL-21 MI Usa Core 1 Adopted
220 Obtain block or block header by hash or height in bridge methods 26-MAR-21 PGP,SDL Sca Core 1 Adopted
223 Cumulative Work in Fork Detection Data 31-MAR-21 SDL Sec Core 2 Draft
224 Include Uncles in CPV in Fork Detection Data 1-APR-21 SDL Sec Core 2 Draft
225 Emergency Multisig public keys 1-APR-21 SDL Sec Core 1 Adopted
239 Reprice Trie Read Opcodes 20-APR-21 SDL & SM Sec, Sca Core 1 Draft
240 Implement Storage Rent in RSK 27-APR-21 SDL, SM & DM Sec, Sca, Fair Core 2 Draft
241 User-triggered peg-out tx fee-bumping 5-MAY-21 SDL Usa,Sec Core 2 Draft
242 Proxy code Incentive 14-MAY-21 SDL Sca,Fair Core 1 Draft
243 Intra-transaction Gas Refunds 16-MAY-21 SDL Sca,Fair Core 2 Draft
244 Variable Storage Costs 16-MAY-21 SDL Sca,Fair Core 2 Draft
252 Transaction Gas Price Cap 29-JUN-21 SDL Sec,Fair Core 1 Adopted
264 Simplified Emergency Time-locks Refresh 12-AUG-21 SDL Sec Core 2 Draft
265 Bridge UTXOs Coin Selection 13-AUG-21 SDL Sec,Usa Core 2 Draft
270 Bridge UTXO set size management 13-AUG-21 SDL Sec,Usa Core 2 Draft
271 Bridge peg-out Batching 13-AUG-21 SDL Sec,Usa Core 2 Adopted
272 Bridge UTXO Management Account 13-AUG-21 SDL Sec,Usa Core 2 Draft
281 Rollup-optimized Ephemeral Calldata 5-OCT-21 SDL Sca Core 2 Draft
284 New deserialization method for Flyover refund addresses 19-OCT-21 JD Usa,Sec Core 1 Adopted
285 Utility Methods to Make PPA safer 25-OCT-21 SDL Usa,Sec Core 1 Draft
290 Adjust Testnet block minimum difficulty 18-NOV-21 AE Usa Core 1 Adopted
291 Network Upgrade: Hop 14-DEC-21 AE Sec,Usa Core 3 Adopted
293 Add method getActivePowpegRedeemScript to the Bridge contract and perform additional Flyover peg-in validations 18-JAN-22 JD Usa, Sec Core 2 Adopted
294 Limit the number of inputs to include in a migration transaction 03-FEB-22 MI Sca, Sec Core 1 Adopted
297 Increase max timestamp difference between btc and rsk blocks for Testnet 13-APR-22 VK Usa Core 1 Adopted
298 Bridge peg-out creation index 18-APR-22 JD Sca Core 2 Draft
305 Peg-out efficiency improvement (Segwit) 01-JUN-22 PDG, RVF & NV Sca, Usa, Sec Core 2 Draft
326 Pegout events improvements 21-JUNE-22 KI & JT Usa Core 1 Adopted
336 Simple Parallelizable Semaphore 11-JUL-22 SDL Sca Core 2 Draft
351 Miniheader: block header compression 12-SEP-22 IO Sca Core 1 Draft
353 Align RSK P2SH redeem script with Bitcoin Core standard transactions checks 24-OCT-22 MI,AE Usa,Sec Core 2 Adopted
357 Adjust the number of block confirmations for a PowPeg migration period 25-OCT-22 AE Usa,Sec Core 1 Adopted
358 Network Upgrade (patch): Hop 4.0.1 26-OCT-22 AE Usa,Sec Core 2 Adopted
374 Reestablish the number of block confirmations for a PowPeg migration period 15-FEB-23 MI Usa,Sec Core 1 Adopted
375 Use the pegout creation transaction hash as the key in the map structure that stores the pegout transactions waiting for signatures 30-MAY-23 MI Sca,Usa Core 1 Adopted
376 Set version 2 to PowPeg migration transactions 12-DEC-23 MI Usa Core 1 Adopted
377 Store the last retired federation standard P2SH script 17-MAY-23 MI Usa Core 1 Adopted
379 Bridge peg-out and migration transactions index 12-DEC-23 MI Sca,Sec Core 2 Adopted
383 Increase POWpeg activation age 10-MAY-23 JD Fair Core 1 Adopted
385 Bridge method getEstimatedFeesForNextPegOutEvent improvement 12-MAY-23 MI Usa Core 1 Adopted
387 Support for Bridging Ordinals 19-MAY-23 SDL Usa Core 2 Draft
388 Network Upgrade: Fingerroot 31-MAY-23 AE Usa,Sec Core 2 Adopted
398 PUSH0 instruction 11-JUL-23 VK Sca Core 2 Adopted
400 Calldata gas cost reduction 12-JUL-23 VK Sca Core 2 Adopted
412 BASEFEE instruction 9-NOV-23 VK Usa Core 2 Adopted
414 Network Upgrade: Arrowhead 7-DEC-23 VK Usa,Sec Core 2 Adopted
415 Fix pegnatories address derivation from public keys 30-JAN-24 MI Usa Core 1 Adopted
417 Avoid transactions to be reverted when Bridge method calls from smart contracts return an empty response 28-FEB-24 MI Usa Core 1 Adopted
419 Powpeg Spendability Validation Protocol 31-AUG-23 JD, JZ Sec Core 2 Draft
427 Express the amount value in wei for peg-out related events 17-APR-24 MI Usa Core 1 Draft
428 New pegout creation event including UTXO outpoint values 23-APR-24 NC, MI Sca, Sec Core 1 Draft
434 Bridge Bitcoin block chainwork up to 12 unsigned bytes 26-Jun-24 JD,JZ,MI Sec Core 1 Adopted
435 Network Upgrade: Lovell 27-JUN-24 AE Usa, Sec, Sca Core 2 Draft
436 Network Upgrade (patch): Arrowhead 6.3.1 4-JUL-24 AE Usa Core 2 Adopted
438 Limit the maximum size of initcode and apply extra gas cost for every 32-byte chunk of initcode 16-JUL-24 FML Fai Core 2 Draft
445 MCOPY instruction 12-AUG-24 AE Usa Core 2 Draft
446 Transient storage opcodes 12-AUG-24 AE Usa Core 2 Draft
453 Prevent address creation on failed CREATE/CREATE2 operations 09-OCT-24 AS Usa Core 1 Draft
454 Support bitcoin blocks with chain work up to 32 unsigned bytes 25-OCT-24 NC Sca Core 1 Draft
459 Mark rejected peg-ins as processed 10-DEC-24 MI Usa Core 1 Draft
460 Ignore non-standard outputs when searching for the witness commitment hash 12-DEC-24 MI Usa,Sec Core 1 Draft

(*) Under evaluation to be implemented in the next reference client release

Author Index

Initials Full name Email
AE Adrian Eidelman [email protected]
AL Angel Lopez
AS Angel Soto [email protected]
AM Ariel Mendelzon [email protected]
DLL Diego López León
DM Diego Masini
FJ Federico Jinich [email protected]
FML Frederico M. Leal [email protected]
GM Guido Medina
IO Ilan Olkies [email protected]
JIO Jose Ignacio Orlicki
JD Jose Dahlquist [email protected]
JL Julian Len [email protected]
JT Jeremy Then [email protected]
JZ Julia Zack [email protected]
KI Kelvin Isievwore
LS Lisandro Sebrie
MC Martín Coll
MI Marcos Irisarri [email protected]
MM Martin Medina
MMA Matias Marquez
MP Martin Picco
NC Nathaniel Calderón [email protected]
NPS Nicolas Perez Santoro
NV Nicolás Vescovo [email protected]
PDG Patricio Diego Gallardo [email protected]
PGP Pamela Gonzalez Perilli
PMP Pedro Meulen Prete
RFV Ramses Fernandez-Valencia
SDL Sergio Demian Lerner [email protected]
SM Shreemoy Mishra [email protected]
SMS Sebastian Matias Sicardi
VK Volodymyr Kravets [email protected]

Build locally

Install prerequisites

  1. Open Terminal.

  2. Check whether you have Ruby 2.1.0 or higher installed:

    ruby --version
  3. If you don't have Ruby installed, install Ruby 2.1.0 or higher.

  4. Install Bundler:

    gem install bundler
  5. Install dependencies:

    bundle install

Build your local Jekyll site

  1. Bundle assets and start the server:

    bundle exec jekyll serve
  2. Preview your local Jekyll site in your web browser at http://localhost:4000.