diff --git a/README.md b/README.md index f390bff..5f6fba6 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This repository contains the formal Rincoin Improvement Proposals (RIPs). RIPs describe consensus rules, processes, and best practices for the Rincoin protocol. -> **Official web interface**: https://rips.rincoin.org +> **Official web interface**: https://rips.rincoin.org > The RIP process itself is defined in [RIP-0001](rip-0001/rip-0001.md). --- @@ -45,11 +45,15 @@ RIPs activate (or are explicitly sealed) at the following block heights (mainnet | 15,768,000 | ~30 | RIP-0007, RIP-0008 | ⏳ Pending | Time-deterministic hard fork | | ~233,280,000 | >400 | RIP-0005, RIP-0006 (full activation) | ⏳ Pending | Time-deterministic hard fork at PoR | -Current chain progress: see [Rincoin Core](https://github.com/Rin-coin/rincoin) repository. +Current chain progress: see the [Rincoin Core](https://github.com/Rin-coin/rincoin) repository. -RIP-0001 is `Active` as the governing process specification. RIP-0002 (Customized Halving) is `Active`: the schedule has been enforced from genesis on the Rincoin mainchain via Core v1.0.6, with Phase 0→1 and Phase 1→2 boundaries validated in production. RIP-0003, RIP-0005 through RIP-0008, RIP-0009 through RIP-0010, and RIP-0011 are `Draft`. Reference implementations exist in [`rincoin-sim`](https://github.com/Aevust/rincoin-sim) and [Rincoin Core](https://github.com/Rin-coin/rincoin) for RIP-0002 and RIP-0004; the RIP-0011 mainnet seal is implemented in `rincoin-sim` (commit `3f3aa91`) and pending in Core v1.0.7; the reference implementation for RIP-0009 and RIP-0010 is in progress (Core v1.0.7 pre-release, definitive in v1.1.0). Reference implementations for RIP-0003 and RIP-0005 through RIP-0008 are pending. +Core development and staging take place in [`rincoin-core/rincoin`](https://github.com/rincoin-core/rincoin); changes reach the canonical repository above only as reviewed pull requests. Per [GOVERNANCE.md §Change Submission Discipline and Emergency Exception](GOVERNANCE.md#change-submission-discipline-and-emergency-exception), the official repository is a verified record of reviewed changes rather than a direct editing surface. The staging repository carries no governance authority of its own and is not authoritative for released Core software. -**Note on the Block 840,000 hard fork**: RIP-0002 (CH dilation), RIP-0009 (RIN3 transaction-version replay protection), and RIP-0010 (Dynamic Subsidy Scaling implementation) are co-activated as a single, well-announced hard-fork event at Block 840,000. Consolidating these consensus changes into one flag day minimizes operational disruption for node operators and mining pools. The minimum-peer-version floor (PROTOCOL_VERSION 70018) is tracked separately as a v1.1.0 networking change activating at the same height. +Statuses are listed in the index above; each RIP's own preamble is authoritative. RIP-0002 is `Active` on the evidence that the schedule has been enforced from genesis on the Rincoin mainchain via Core v1.0.6, with the Phase 0→1, 1→2, and 2→3 boundaries validated in production. + +Reference implementations, which RIP-0001 §RIP Status makes part of the criteria for `Proposed`: RIP-0002 and RIP-0004 are implemented in [`rincoin-sim`](https://github.com/Aevust/rincoin-sim) and [Rincoin Core](https://github.com/Rin-coin/rincoin); the RIP-0011 mainnet seal is implemented in `rincoin-sim` (commit `3f3aa91`) and pending in Core v1.1.0; RIP-0009 and RIP-0010 are in progress in Core v1.1.0. RIP-0003 and RIP-0005 through RIP-0008 have none yet. + +**Note on the Block 840,000 hard fork**: RIP-0002 (CH dilation), RIP-0009 (RIN3 transaction-version replay protection), and RIP-0010 (Dynamic Subsidy Scaling implementation) are co-activated as a single, well-announced hard-fork event at Block 840,000. Consolidating these consensus changes into one flag day minimizes operational disruption for node operators and mining pools. RIN3 P2P capability signaling (the PROTOCOL_VERSION bump to 70018 and the `NODE_RIN3` service bit) is tracked separately as a v1.1.0 networking change and ships with that release rather than activating at a block height. No minimum-peer-version floor is imposed: RIN3 is a soft fork, and gating peers by a self-reported version would create the very split the flag day is designed to avoid. --- @@ -57,7 +61,7 @@ RIP-0001 is `Active` as the governing process specification. RIP-0002 (Customize **Note on RIP-0004 (MWEB)**: While the specification is implemented in Core v1.0.6 and validated in `rincoin-sim`, the mainnet activation has been suspended via BIP9 `NEVER_ACTIVE` per a strategic decision of the Rincoin Core Authority. The suspension is documented in §2.1 of RIP-0004. Testnet and regtest activation at block 840 remains in effect for validation purposes. Any future reactivation requires a successor RIP per the conditions outlined in RIP-0004. -**Note on RIP-0011 (Taproot)**: Taproot (BIPs 340–342) is **not adopted** on Rincoin mainnet. The mainnet `DEPLOYMENT_TAPROOT` is sealed via BIP9 `NEVER_ACTIVE` / `NO_TIMEOUT`; Testnet and Regtest retain `ALWAYS_ACTIVE` to preserve upstream test vectors and keep the codepaths exercised in CI. Unlike RIP-0004 (a time-bound suspension pending wallet migration), RIP-0011 is a non-adoption decision under the current protocol family, reversible only by a successor RIP meeting the conditions in RIP-0011 §4. The mainnet seal is applied in `rincoin-sim` (commit `3f3aa91`) and pending in Core v1.0.7; a wallet-layer guard rejecting Taproot/future-witness sends on mainnet is implemented on the `rincoin-sim` v1.0.8 branch (commit `4aba34a`) and planned for v1.0.8. +**Note on RIP-0011 (Taproot)**: Taproot (BIPs 340–342) is **not adopted** on Rincoin mainnet. The mainnet `DEPLOYMENT_TAPROOT` is sealed via BIP9 `NEVER_ACTIVE` / `NO_TIMEOUT`; Testnet and Regtest retain `ALWAYS_ACTIVE` to preserve upstream test vectors and keep the codepaths exercised in CI. Unlike RIP-0004 (a time-bound suspension pending wallet migration), RIP-0011 is a non-adoption decision under the current protocol family, reversible only by a successor RIP meeting the conditions in RIP-0011 §4. The mainnet seal is applied in `rincoin-sim` (commit `3f3aa91`) and pending in Core v1.1.0; a wallet-layer guard rejecting Taproot/future-witness sends on mainnet is implemented on the `rincoin-sim` v1.1.1 branch (commit `4aba34a`) and planned for v1.1.1. --- @@ -109,7 +113,7 @@ RIP-0001 (Process, foundational) ## Core Role Governance -The Core Strategic Authority (Core Technical Lead, Core Authority Lead, Core Research Lead, Principal Architect), version-numbering scheme (`v[GENERATION].[MAJOR].[MINOR]`), and succession procedure are defined in [RIP-0001](rip-0001/rip-0001.md). Current role assignments are maintained in [`governance/core-role.md`](governance/core-role.md). +The Core Strategic Authority (Core Technical Lead, Core Authority Lead, Core Research Lead, Principal Architect), version-numbering scheme (`v[GENERATION].[MAJOR].[MINOR]`), and succession procedure are defined in [GOVERNANCE.md](GOVERNANCE.md), which is incorporated by reference into [RIP-0001](rip-0001/rip-0001.md). Current role assignments are maintained in [`governance/core-role.md`](governance/core-role.md). For security policy and Core Team verification, see [SECURITY.md](SECURITY.md) or visit [rips.rincoin.org](https://rips.rincoin.org). @@ -148,6 +152,7 @@ RIP-0004 (MWEB) and RIP-0011 (Taproot non-adoption) are protocol-integration / L ``` rincoin-rips/ ├── README.md +├── GOVERNANCE.md ├── SECURITY.md ├── rip-0001/ │ └── rip-0001.md @@ -178,7 +183,7 @@ rincoin-rips/ │ ├── editor-changes.md # Role transition and removal history │ └── emergency-actions.md # Record of emergency-exception commits └── security/ - └── *_public.asc + └── *.asc ``` Reference implementations and simulation suites: diff --git a/SECURITY.md b/SECURITY.md index dcaeab7..f977a42 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,7 +2,7 @@ ## Official Rincoin Core Team -The following individuals are the current Core Role holders of the Rincoin protocol. **Only individuals listed here are authorized to represent the Rincoin Core Team.** Current role assignments are maintained in [`governance/core-role.md`](governance/core-role.md). +The following individuals are the current Core Role holders of the Rincoin protocol. **Only individuals listed here are authorized to represent the Rincoin Core Team.** Current role assignments are maintained in [`governance/core-role.md`](governance/core-role.md); this table is the authoritative record of their verification keys. | Name | Role | Fingerprint | |------|------|-------------| @@ -15,19 +15,46 @@ Individuals not listed above are **not** members of the Rincoin Core Team, regar ## Reporting a Vulnerability -To report security issues send an email to info@rincoin.org (not for support). +To report security issues, send an email to **info@rincoin.org** (not for general support). -Sensitive information may be encrypted using the public keys listed above. +Please do **not** open a public GitHub issue for security-sensitive reports. + +Sensitive information may be encrypted using the key identified above. ### How to obtain our public key -You can import our public key directly from this repository: -`gpg --import security/aevust.asc` +Any of the three channels below serves the same key. Import from whichever is available and verify the fingerprint against the table above. + +From the public keyserver (no clone required): + +``` +gpg --keyserver hkps://keys.openpgp.org --recv-keys ED20B6354EE4526D01F83B538B6E3BF45C714ECA +``` + +Via WKD, when rincoin.org is reachable: -Or fetch it from the keyserver (no clone required): -`gpg --keyserver hkps://keys.openpgp.org --recv-keys ED20B6354EE4526D01F83B538B6E3BF45C714ECA` +``` +gpg --auto-key-locate clear,wkd --locate-keys info@rincoin.org +``` -Viewable at: [keys.openpgp.org/vks/v1/by-fingerprint/ED20B6354EE4526D01F83B538B6E3BF45C714ECA](https://keys.openpgp.org/vks/v1/by-fingerprint/ED20B6354EE4526D01F83B538B6E3BF45C714ECA) +From this repository, if you already have a clone: + +``` +gpg --import security/aevust.asc +``` + +Then verify: + +``` +gpg --fingerprint ED20B6354EE4526D01F83B538B6E3BF45C714ECA +``` + +The three channels may serve byte-different copies of the same key — the keyserver and the copy in this repository carry a superseded self-signature that the WKD response does not. **Verify the fingerprint, not a file digest.** The same fingerprint is pinned in the signed provenance certificate and in `llms.txt` on rincoin.org. + +Signatures made since 2026-06-26 come from a signing subkey (0ED9 9C46 B219 2E37 5381 EF4A C5BE F8A9 FA06 C16F); gpg resolves this automatically once the primary key is imported. A copy of the key imported before that date will fail to verify current signatures and must be refreshed. + +The key is also viewable at +- [keys.openpgp.org/vks/v1/by-fingerprint/ED20B6354EE4526D01F83B538B6E3BF45C714ECA](https://keys.openpgp.org/vks/v1/by-fingerprint/ED20B6354EE4526D01F83B538B6E3BF45C714ECA) --- @@ -38,18 +65,22 @@ Official Rincoin communications are characterized by: - Signatures from keys listed in this document - Publication via the official Discord server (owner: @Aevust) - Publication on **rincoin.org** and **rincoin.com** (operated by @Aevust) -- For protocol-level changes: approval by the Founder (@ysmreg) and Core Strategic Authority as defined in RIP-0001 §Version Authority +- For protocol-level changes: approval by the Founder (@ysmreg) and Core Strategic Authority as defined in [GOVERNANCE.md §Version Authority](GOVERNANCE.md#version-authority) -Communications from individuals not listed above, even when claiming Core Team authority, should not be trusted. The Rincoin Core Team disclaims responsibility for content published outside official channels, as defined in RIP-0001 §Boundary of Official Support and Liability. +Communications from individuals not listed above, even when claiming Core Team authority, should not be trusted. The Rincoin Core Team disclaims responsibility for content published outside official channels, as defined in [GOVERNANCE.md §Boundary of Official Support and Liability](GOVERNANCE.md#boundary-of-official-support-and-liability). --- ## Canonical Sources - **Official RIPs**: [rips.rincoin.org](https://rips.rincoin.org) -- **Core Repository**: [github.com/Rin-coin/rincoin](https://github.com/Rin-coin/rincoin) -- **RIPs Repository (Development)**: [github.com/Aevust/rincoin-rips](https://github.com/Aevust/rincoin-rips) -- **Governance**: [RIP-0001](https://github.com/Aevust/rincoin-rips/blob/main/rip-0001/rip-0001.md) +- **Core Repository (canonical)**: [github.com/Rin-coin/rincoin](https://github.com/Rin-coin/rincoin) +- **Core Repository (development and staging)**: [github.com/rincoin-core/rincoin](https://github.com/rincoin-core/rincoin) +- **RIPs Repository (canonical)**: [github.com/Aevust/rincoin-rips](https://github.com/Aevust/rincoin-rips) +- **Governance framework**: [GOVERNANCE.md](https://github.com/Aevust/rincoin-rips/blob/main/GOVERNANCE.md) +- **RIP process**: [RIP-0001](https://github.com/Aevust/rincoin-rips/blob/main/rip-0001/rip-0001.md) + +The staging repository carries no governance authority of its own; changes reach the canonical Core repository only as reviewed pull requests. --- diff --git a/security/aevust.asc b/security/aevust.asc index 7799c5f..d5fb82c 100644 --- a/security/aevust.asc +++ b/security/aevust.asc @@ -10,17 +10,27 @@ bQH4O1OLbjv0XHFOygUCaeeFuRsUgAAAAAAEAA5tYW51MiwyLjUrMS4xMiwyLDEC GwMFCQWkn+QFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQi2479FxxTsqq 6AEAyO0KzUUhFaQP+wmBBq+iOq7oxLcHKdqABn562nwYy2YBAIBHOl2TDJhybARS omODGd4v9/uRDoqXvRESlg3WtykNzRlBZXZ1c3QgPGluZm9AcmluY29pbi5vcmc+ -wpkEExYKAEEWIQTtILY1TuRSbQH4O1OLbjv0XHFOygUCadkoVwIbAwUJBaSf5AUL -CQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRCLbjv0XHFOylh4AQDEZAl4x5kA -k+tf1rzso5jsorJXR1JrManqAjvdm4aUfgEAq3q1jSAaREg89NOBKVo7wHLtb9Xq -FQfp4SprQrIWMQ/NI0FldnVzdCB8IExlZ2F0dXMgPGluZm9AcmluY29pbi5vcmc+ -wpkEExYKAEEWIQTtILY1TuRSbQH4O1OLbjv0XHFOygUCaWikTAIbAwUJBaSf5AUL -CQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRCLbjv0XHFOyhDPAP0WHVUlNEZU -R085BlRvtCOhEehjwt7wEaSJdTY7nG3wAQEA+0xpM6bY6OueM+2rSfh6oo+JgJu+ -WjHlYQgIHVmcoQrOOARpaKRMEgorBgEEAZdVAQUBAQdA5asb46XxRKFJsICaRvyA -bpGUXdS3piWoPLoGtFg7i28DAQgHwn4EGBYKACYWIQTtILY1TuRSbQH4O1OLbjv0 -XHFOygUCaWikTAIbDAUJBaSf5AAKCRCLbjv0XHFOyn5DAP9QxqiPPzXROCINunK7 -9pm5gvY9pg7oTYNfmlHIIpUMJQD/X1tRWsF823hC4YnUAQDe8cLDubW6Q11KBI11 -BuVGWwI= -=JPqx +wpwEExYKAEQCGwMFCQWkn+QFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AWIQTt +ILY1TuRSbQH4O1OLbjv0XHFOygUCal2oogIZAQAKCRCLbjv0XHFOym6lAP4iLJou +qZ9u1Gmg5zldS2mgmEH8bN3Wr01d7s0tP8BEmwEA92QImCpqfM3uITEDtXUMKUNf +zmwBXvxEHH7JJ9Le6AbCmQQTFgoAQRYhBO0gtjVO5FJtAfg7U4tuO/RccU7KBQJp +2ShXAhsDBQkFpJ/kBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEItuO/Rc +cU7KWHgBAMRkCXjHmQCT61/WvOyjmOyisldHUmsxqeoCO92bhpR+AQCrerWNIBpE +SDz004EpWjvAcu1v1eoVB+nhKmtCshYxD80jQWV2dXN0IHwgTGVnYXR1cyA8aW5m +b0ByaW5jb2luLm9yZz7CmQQTFgoAQRYhBO0gtjVO5FJtAfg7U4tuO/RccU7KBQJp +aKRMAhsDBQkFpJ/kBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEItuO/Rc +cU7KEM8A/RYdVSU0RlRHTzkGVG+0I6ER6GPC3vARpIl1NjucbfABAQD7TGkzptjo +654z7atJ+Hqij4mAm75aMeVhCAgdWZyhCs4zBGo+U8UWCSsGAQQB2kcPAQEHQHlw +4N7TUQ0AtkRr9U/h9NTiDFoW6/BQ+t3RLOVYp64vwsBRBBgWCgBCFiEE7SC2NU7k +Um0B+DtTi2479FxxTsoFAmo+U8UbFIAAAAAABAAObWFudTIsMi41KzEuMTIsMiwx +AhsCBQkEzkerAIEJEItuO/RccU7KdiAEGRYKAB0WIQQO2ZxGshkuN1OB70rFvvip ++gbBbwUCaj5TxQAKCRDFvvip+gbBbxBOAP9G1yU7G4PvW9rLbMQjVME/LY8bawvw +oVS3XPJZyxUJTgD9GUinRQbhhWlElwQ3UsHrcictlKfeo8iictARaXKkSQ6gLQEA +jXgC0O8D7OJiOe4wTAxhFWpD1neElP/LPAcKx2JuAP4BAMUB0i0YLGDkhQWDRJ5C +fpFwI1XsBqObJpwBTeXn3vsHzjgEaWikTBIKKwYBBAGXVQEFAQEHQOWrG+Ol8USh +SbCAmkb8gG6RlF3Ut6YlqDy6BrRYO4tvAwEIB8J+BBgWCgAmFiEE7SC2NU7kUm0B ++DtTi2479FxxTsoFAmlopEwCGwwFCQWkn+QACgkQi2479FxxTsp+QwD/UMaojz81 +0TgiDbpyu/aZuYL2PaYO6E2DX5pRyCKVDCUA/19bUVrBfNt4QuGJ1AEA3vHCw7m1 +ukNdSgSNdQblRlsC +=9kj+ -----END PGP PUBLIC KEY BLOCK-----