mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-28 07:35:50 +00:00
new amendments in v1.5.0
This commit is contained in:
@@ -7,11 +7,12 @@ The following is a comprehensive list of all known amendments and their status o
|
||||
|:--------------------------------|:-----------|:------------------------------------|
|
||||
| [CryptoConditionsSuite][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [OwnerPaysFee][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [SHAMapV2][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [Tickets][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [fixQualityUpperBound][] | v1.5.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [RequireFullyCanonicalSig][] | v1.5.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [DeletableAccounts][] | v1.4.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [fixCheckThreading][] | v1.4.0 | [Expected: 2020-01-18](https://xrpl.org/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected.html "BADGE_BLUE") |
|
||||
| [fixPayChanRecipientOwnerDir][] | v1.4.0 | [Expected: 2020-01-18](https://xrpl.org/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected.html "BADGE_BLUE") |
|
||||
| [fixCheckThreading][] | v1.4.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [fixPayChanRecipientOwnerDir][] | v1.4.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [Checks][] | v0.90.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [FlowCross][] | v0.70.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [fixMasterKeyAsRegularKey][] | v1.3.1 | [Enabled: 2019-10-02](https://xrpcharts.ripple.com/#/transactions/61096F8B5AFDD8F5BAF7FC7221BA4D1849C4E21B1BA79733E44B12FC8DA6EA20 "BADGE_GREEN") |
|
||||
@@ -41,6 +42,7 @@ The following is a comprehensive list of all known amendments and their status o
|
||||
| [TrustSetAuth][] | v0.30.0 | [Enabled: 2016-07-19](https://xrpcharts.ripple.com/#/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF "BADGE_GREEN") |
|
||||
| [MultiSign][] | v0.31.0 | [Enabled: 2016-06-27](https://xrpcharts.ripple.com/#/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7 "BADGE_GREEN") |
|
||||
| [FeeEscalation][] | v0.31.0 | [Enabled: 2016-05-19](https://xrpcharts.ripple.com/#/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3 "BADGE_GREEN") |
|
||||
| [SHAMapV2][] | v0.32.1 | [Vetoed: Removed in v1.4.0](https://xrpl.org/blog/2019/rippled-1.4.0.html "BADGE_RED") |
|
||||
| [FlowV2][] | v0.32.1 | [Vetoed: Removed in v0.33.0](https://xrpl.org/blog/2016/flowv2-vetoed.html "BADGE_RED") |
|
||||
| [SusPay][] | v0.31.0 | [Vetoed: Removed in v0.60.0](https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features "BADGE_RED") |
|
||||
|
||||
@@ -375,6 +377,18 @@ Changes the [PaymentChannelCreate transaction][] type so that it adds new [payme
|
||||
This change makes it easier to look up payment channels by their recipient and prevents accounts from being deleted if they are the recipient for open payment channels (except those channels created before this amendment).
|
||||
|
||||
|
||||
## fixQualityUpperBound
|
||||
[fixQualityUpperBound]: #fixqualityupperbound
|
||||
|
||||
| Amendment ID | Status |
|
||||
|:-----------------------------------------------------------------|:----------|
|
||||
| 89308AF3B8B10B7192C4E613E1D2E4D9BA64B2EE2D5232402AE82A6A7220D953 | Planned |
|
||||
|
||||
Fixes a bug in unused code for estimating the ratio of input to output of individual steps in cross-currency payments.
|
||||
|
||||
This amendment has no known impact on transaction processing.
|
||||
|
||||
|
||||
## fixTakerDryOfferRemoval
|
||||
[fixTakerDryOfferRemoval]: #fixtakerdryofferremoval
|
||||
|
||||
@@ -491,6 +505,22 @@ Creates three new transaction types: [PaymentChannelCreate][], [PaymentChannelCl
|
||||
For more information, see the [Payment Channels Tutorial](use-payment-channels.html).
|
||||
|
||||
|
||||
## RequireFullyCanonicalSig
|
||||
[RequireFullyCanonicalSig]: #requirefullycanonicalsig
|
||||
|
||||
| Amendment ID | Status |
|
||||
|:-----------------------------------------------------------------|:----------|
|
||||
| 00C1FC4A53E60AB02C864641002B3172F38677E29C26C5406685179B37E1EDAC | Planned |
|
||||
|
||||
Changes the signature requirements for the XRP Ledger protocol so that non-fully-canonical signatures are no longer valid in any case. This protects against [transaction malleability](transaction-malleability.html) on _all_ transactions, instead of just transactions with the [tfFullyCanonicalSig flag](transaction-common-fields.html#global-flags) enabled.
|
||||
|
||||
Without this amendment, a transaction is malleable if it uses a secp256k1 signature and does not have tfFullyCanonicalSig enabled. Most signing utilities enable tfFullyCanonicalSig by default, but there are exceptions.
|
||||
|
||||
With this amendment, no single-signed transactions are malleable. ([Multi-signed transactions may still be malleable](transaction-malleability.html#malleability-with-multi-signatures) if signers provide more signatures than are necessary.) All transactions must use the fully canonical form of the signature, regardless of the tfFullyCanonicalSig flag. Signing utilities that do not create fully canonical signatures are not supported. All of Ripple's signing utilities have been providing fully-canonical signatures exclusively since at least 2014.
|
||||
|
||||
For more information, see [`rippled` issue #3042](https://github.com/ripple/rippled/issues/3042).
|
||||
|
||||
|
||||
## SHAMapV2
|
||||
[SHAMapV2]: #shamapv2
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ There are two circumstances that could lead to transaction malleability:
|
||||
|
||||
**Use the [tfFullyCanonicalSig flag](transaction-common-fields.html#global-flags)** to guarantee that a transaction is not malleable in this way. Although transactions [signed with Ed25519 keys](cryptographic-keys.html#signing-algorithms) are not vulnerable to this problem, **there is no downside** to using this flag on _all_ transactions.
|
||||
|
||||
If the [RequireFullyCanonicalSig amendment][] :not_enabled: is enabled, all transactions are protected against malleability regardless of the tfFullyCanonicalSig flag.
|
||||
|
||||
2. The transaction is [multi-signed](multi-signing.html) and has more signatures than necessary. Even if the transaction originally did not have more signatures than necessary, it could be malleable if an authorized signer provides an additional signature.
|
||||
|
||||
Good operational security can protect against these problems. See [Mitigations for Multi-Signature Malleability](#mitigations-for-multi-signature-malleability) for guidelines.
|
||||
@@ -41,7 +43,7 @@ An ECDSA signature consists of two integers, called R and S. The secp256k1 _grou
|
||||
|
||||
Thus, to have _fully_ canonical signatures, one must choose which of the two possibilities is preferred and declare the other to be invalid. The creators of the XRP Ledger decided arbitrarily to prefer the _smaller_ of the two possible values, `S` or `N-S`. A transaction is considered _fully canonical_ if it uses the preferred (smaller) value of `S`, and follows all the normal rules for being canonical.
|
||||
|
||||
To maintain compatibility with older software that did not always generate fully canonical signatures, the XRP Ledger accepts transactions that are not fully canonical. To protect new users from exploits, the XRP Ledger has a flag on transactions called [**tfFullyCanonicalSig**](transaction-common-fields.html#global-flags), which requires that the transaction use a _fully-canonical_ signature to be valid.
|
||||
To maintain compatibility with older software that did not always generate fully canonical signatures, the XRP Ledger accepts transactions that are not fully canonical. To protect new users from exploits, the XRP Ledger has a flag on transactions called [**tfFullyCanonicalSig**](transaction-common-fields.html#global-flags), which requires that the transaction use a _fully-canonical_ signature to be valid. If the [RequireFullyCanonicalSig amendment][] :not_enabled: is enabled, all transactions require fully-canonical signatures regardless of the tfFullyCanonicalSig flag.
|
||||
|
||||
To calculate a fully-canonical ECDSA signature, one must compare S and N-S to determine which is smaller, then use that value in the `Signature` field of the transaction.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user