알려진 수정안

아래는 XRP Ledger의 알려진 모든 수정안과 그 상태에 대한 종합적인 목록입니다:

Tip:

이 목록은 수동으로 업데이트됩니다. 수정안 투표의 실시간 보기는 XRPScan Amendments Dashboard를 참조하십시오.

Note:

대부분의 경우 소프트웨어의 이전 버전에는 수정을 위한 코드의 불완전한 버전이 있습니다. 위 표의 "도입" 버전이 첫 번째 안정적인 버전입니다. 값 "TBD"는 수정이 아직 안정적인 것으로 간주되지 않음을 나타냅니다.

CheckCashMakesTrustLine

Amendment
CheckCashMakesTrustLine

Amendment ID

98DECF327BF79997AEC178323AD51A830E457BFC6D454DAF3E46E5EC42DC619F

Status

Enabled

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

CheckCash 수정안은 Check를 발행한 토큰에 대한 현금 환전 시 자동으로 해당 토큰을 보관할 신뢰선을 생성하도록 CheckCash 트랜잭션을 조정합니다. 이 새로운 동작은 사용자가 탈중앙화 거래소에서 토큰을 구매할 때 OfferCreate 트랜잭션이 동작하는 방식과 유사합니다. 자동 신뢰선은 0의 한도 값을 가지게 됩니다. 이를 통해 Check를 통해 토큰을 받기 전에 신뢰선을 설정하는 단계를 생략할 수 있습니다. (XRP를 전송하는 Check에는 영향을 주지 않습니다.)

이 수정안이 없는 경우 사용자는 발행된 토큰을 현금으로 환전하기 전에 별도로 TrustSet 트랜잭션을 전송해야 합니다.

이 수정안은 XRP Ledger에서 원하지 않는 토큰을 강제로 보유시킬 수 없다는 사실을 변경하지 않습니다.

Checks

Amendment
Checks

Amendment ID

157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

XRP Ledger에 "Checks"를 소개합니다. Checks는 개인용 수표와 유사하게 작동합니다. 송신자는 특정 최대 금액과 목적지로 Check를 생성하기 위해 트랜잭션에 서명합니다. 나중에 목적지는 지정된 금액까지 수표를 현금으로 변환하여 받을 수 있습니다. 실제 자금 이동은 Check가 현금화될 때에만 발생하므로, 송신자의 현재 잔액과 유동성에 따라 수표 현금화가 실패할 수 있습니다. 수표 현금화가 실패하는 경우에도 Check 객체는 ledger에 남아 있어 나중에 성공적으로 현금화될 수 있습니다.

송신자 또는 수령자는 수표가 현금화되기 전에 언제든지 취소할 수 있습니다. 수표에는 만료 시간을 설정할 수 있으며, 만료된 이후에는 현금화할 수 없으며 누구든지 취소할 수 있습니다.

CheckCreate, CheckCancel, CheckCash라는 세 가지 새로운 트랜잭션 유형과 Check라는 새로운 ledger 객체 유형을 도입합니다. Check의 만료 시간이 과거인 Check를 생성하려고 시도할 때 발생하는 새로운 트랜잭션 결과 코드인 tecEXPIRED도 추가됩니다.

CryptoConditions

Amendment
CryptoConditions

Amendment ID

1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

이 수정안은 활성화되어 있지만 SusPay 수정사항도 활성화되어 있지 않으면 아무런 효과가 없습니다. SusPay 수정안이 에스크로 수정안으로 대체되었기 때문에 CryptoConditions은 효력이 없습니다.

CryptoConditionsSuite

Amendment
CryptoConditionsSuite

Amendment ID

86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90

Status

Obsolete

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 EscrowCreate 및 EscrowFinish 트랜잭션에서 공식 암호 조건 명세의 여러 유형의 암호 조건을 지원하기 위해 추가되었습니다.

그러나 이 수정안은 구현이 완료되기 전에 rippled v0.60.0에 추가되었습니다. 결과적으로, 이 수정안 ID는 거의 아무것도 수행하지 않는 미완성 코드를 가리킵니다. 기존 수정안을 수정하여 다른 암호 조건을 지원하려고 하면 이전 버전의 수정안과 충돌이 발생할 수 있습니다. 앞으로의 릴리스에서 추가적인 암호 조건을 지원하려면 새로운 고유한 수정안 ID를 사용해야 합니다.

DeletableAccounts

Amendment
DeletableAccounts

Amendment ID

30CD365592B8EE40489BA01AE2F7555CAC9C983145871DC82A42A31CF5BAE7D9

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 계정 삭제를 가능하게 합니다.

이 수정안이 없는 경우, 새로운 계정은 항상 Sequence 번호가 1로 시작하며, 계정을 장부의 상태 데이터에서 삭제할 수 있는 방법이 없습니다.

이 수정안이 있는 경우, 새로운 계정은 계정이 생성된 장부의 인덱스와 일치하는 Sequence 번호로 시작합니다. 이 변경으로 삭제된 후 다시 생성된 계정은 이전 트랜잭션이 다시 실행되지 않도록 보호됩니다. 또한, 계정이 삭제된 후에도 특정 객체를 삭제할 수 있도록 AccountDelete 트랜잭션 유형이 추가됩니다. 특정 유형의 객체는 이 방식으로 삭제할 수 없으므로 해당 객체와 연결된 계정은 삭제할 수 없습니다. 또한, 현재 장부 인덱스에서 256을 뺀 값이 계정의 현재 Sequence 번호보다 작은 경우에는 계정을 삭제할 수 없습니다. 이 수정안에 대한 자세한 논의는 XRP Community Standards Draft 7을 참조하십시오.

DepositAuth

Amendment
DepositAuth

Amendment ID

F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 DepositAuth라는 새로운 계정 플래그를 추가하여 다른 계정으로부터 수신되는 모든 거래로부터 엄격하게 입금을 거부할 수 있게 합니다. 기업은 어떤 소스로부터의 자금 수령 전에 엄격한 규정을 준수해야 하는 경우 이 플래그를 사용할 수 있습니다.

계정이 이 플래그를 활성화하면, Payment 트랜잭션은 목적지인 경우 Payment가 XRP나 토큰을 전달하려는지 여부와 상관없이 실패합니다. EscrowFinish 및 PaymentChannelClaim 트랜잭션은 목적지인 경우 목적지 계정 자체에서 해당 트랜잭션을 보내지 않는 한 실패합니다. Checks 수정안이 활성화된 경우, 해당 계정은 CheckCash 트랜잭션을 보내어 XRP나 토큰을 수령할 수 있습니다.

예외적으로, DepositAuth가 활성화된 계정은 현재 XRP 잔액이 계정 예약보다 작거나 같은 작은 금액의 XRP에 대한 Payment 트랜잭션을 수신할 수 있습니다.

또한, EscrowCreate 및 PaymentChannelCreate 트랜잭션에서 Disallow XRP 플래그를 잘못 적용하는 버그를 수정합니다. Disallow XRP는 비결합적인 조언용 플래그로서 장부 자체에서 Disallow XRP를 적용하지 않으면 계정은 계정 예약을 충족하고 거래 비용을 지불하기 위해 필요한 XRP를 여전히 수령할 수 있습니다.

DepositPreauth

Amendment
DepositPreauth

Amendment ID

3CBC5C4E630A1B82380295CDA84B32B49DD066602E74E39B85EF64137FA65194

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 예치 승인을 사용하는 사용자에게 특정 송신자의 사전 승인을 제공하여 해당 송신자가 직접 결제를 보낼 수 있도록 합니다.

DepositPreauth라는 새로운 트랜잭션 유형을 추가하여 사전 승인을 추가하거나 제거할 수 있으며, DepositPreauth ledger 객체 유형을 추가하여 한 계정에서 다른 계정으로의 사전 승인을 추적합니다. 또한, deposit_authorized라는 JSON-RPC 명령을 추가하여 한 계정이 다른 계정으로 직접 결제를 보낼 수 있는지 여부를 조회할 수 있습니다.

이 수정안은 예치 승인이 필요한 계정에서 자체에 대한 통화 간 Payment의 동작을 변경합니다. 이 수정안이 없는 경우, 해당 계정에서 자체에게 송금하는 통화 간 Payment는 항상 tecNO_PERMISSION 코드로 실패합니다. 이 수정안이 있는 경우, 해당 Payment는 예치 승인이 비활성화된 경우와 같이 성공적으로 수행됩니다.

또한, 이 수정안은 OfferCreate 트랜잭션의 동작을 변경하여 과거 시간에 만료된 Offer를 생성하려고 할 때 tecEXPIRED를 반환합니다. 이 수정안이 없는 경우, 과거 시간에 만료된 OfferCreate는 tesSUCCESS를 반환하지만 실제로 제안을 생성하거나 실행하지 않습니다.

DisallowIncoming

Amendment
DisallowIncoming

Amendment ID

47C3002ABA31628447E8E9A8B315FAA935CE30183F9A9B86845E469CA2CDC3DF

Status

In Development

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 Checks, Payment Channels, NFTokenOffers, 그리고 trust line 계정에 도달하는 것을 범주적으로 차단할 수 있는 옵션을 제공합니다. 해당 옵션이 활성화된 계정에서는 다른 계정이 해당 유형의 객체를 목적지로 설정하여 생성할 수 없습니다.

4개의 새로운 AccountSet 플래그를 추가하고, AccountSet 트랜잭션을 수정하여 이러한 플래그를 활성화 또는 비활성화할 수 있도록 합니다:

  • asfDisallowIncomingCheck

  • asfDisallowIncomingPayChan

  • asfDisallowIncomingNFTOffer

  • asfDisallowIncomingTrustline

트랜잭션 처리를 변경하여 해당 플래그의 상태를 확인한 후 해당 유형의 객체를 생성합니다. 목적지 계정이 해당 플래그가 활성화된 경우, 트랜잭션은 tecNO_PERMISSION 오류 코드로 실패합니다.

이 수정안이 없는 경우, 어떤 계정이든지 목적지로서 이러한 객체를 생성할 수 있습니다. 이는 일반적으로 해롭지 않을 수 있지만, 나중에 계정 삭제를 차단할 수 있으며, 사기의 일부로 이용될 수도 있습니다.

EnforceInvariants

Amendment
EnforceInvariants

Amendment ID

DC9CA96AEA1DCF83E527D1AFC916EFAF5D27388ECA4060A88817C1238CAEE0BF

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

이 수정안은 트랜잭션 처리에 항상 특정 조건이 충족되도록하는 불변성 체크를 추가합니다. 이는 XRP Ledger에서 트랜잭션 처리에 있는 버그로 인해 발생할 수 있는 악용과 취약점에 대한 추가적이고 독립적인 보호층을 제공합니다. 향후 rippled의 버전에서는 추가적인 불변성을 위해 수정안 없이도 더 많은 체크를 추가할 수 있습니다.

또한, 두 개의 새로운 트랜잭션 오류 코드인 tecINVARIANT_FAILED와 tefINVARIANT_FAILED를 도입하고, 트랜잭션 처리를 변경하여 새로운 체크를 추가합니다.

불변성 체크의 예시:

  • 트랜잭션에 의해 파괴된 XRP의 총량은 트랜잭션 비용과 정확히 일치해야 합니다.

  • XRP는 생성될 수 없습니다.

  • Ledger의 AccountRoot 객체는 DeletableAccounts가 활성화되지 않은 한 삭제될 수 없습니다. (참고: 계정의 삭제)

  • Ledger의 객체는 자신의 유형을 변경할 수 없습니다. (LedgerEntryType 필드는 변경 불가능합니다.)

  • XRP에 대한 신뢰선이 존재할 수 없습니다.

Escrow

Amendment
Escrow

Amendment ID

07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

SusPay 및 CryptoConditions 수정안을 대체합니다.

XRP Ledger 내에서 XRP에 대한 예치금을 위한 "효력정지 결제"를 제공합니다. 이는 인터 ledger 프로토콜의 암호 조건(Crypto-Conditions)을 지원하며, 효력정지된 결제를 생성, 실행 및 취소하기 위한 새로운 트랜잭션 유형과 효력정지된 결제를 위한 새로운 ledger 객체 유형을 생성합니다.

ExpandedSignerList

Amendment
ExpandedSignerList

Amendment ID

B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856

Status

Enabled

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정사항은 최대 서명자 목록 크기를 확장하고 각 서명자가 선택적 데이터를 연결할 수 있도록 합니다. 추가 데이터는 서명자를 식별하는 데 사용할 수 있으며, 이는 스마트 계약에 유용하거나 대규모 조직에서 키를 제어하는 사람을 식별하는 데 유용합니다. 예를 들어 IPv6 주소 또는 HSM(하드웨어 보안 모듈)의 식별자를 저장할 수 있습니다.

이 수정사항이 없으면 최대 서명자 목록 크기는 8개 항목이며 각 항목에는 정확히 계정 및 서명자 가중치라는 두 개의 필드가 있습니다.

이 수정사항을 사용하면 최대 SignerList 객체 크기는 32개 항목입니다. 또한 각 SignerEntry 개체에는 임의 데이터를 포함하는 256비트(32바이트) WalletLocator 필드가 선택적으로 포함될 수 있습니다. 이것은SignerListSet 트랜잭션을 적절히 변경합니다.

FeeEscalation

Amendment
FeeEscalation

Amendment ID

42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

제안된 트랜잭션에 트랜잭션 비용이 적용되는 방식을 변경합니다. 컨센서스 프로세스를 수정하여 더 높은 트랜잭션 비용을 지불하는 트랜잭션의 우선순위를 지정합니다.

이 수정안은 이전 합의 라운드에 포함될 수 없었던 거래에 대해 고정 크기의 거래 대기열을 도입합니다. 컨센서스 네트워크의 rippled 서버에 부하가 많이 걸리는 경우, 이후 레지스터에 대해 트랜잭션 비용이 가장 낮은 트랜잭션을 대기열에 넣습니다. 각 컨센서스 라운드는 트랜잭션 비용(수수료 값)이 가장 큰 대기열의 트랜잭션에 우선순위를 부여하며 컨센서스 네트워크가 처리할 수 있는 만큼의 트랜잭션을 포함합니다. 트랜잭션 대기열이 가득 찬 경우 트랜잭션 비용이 가장 낮은 대기열부터 트랜잭션이 완전히 삭제됩니다.

컨센서스 네트워크의 부하가 큰 반면, 합법적인 사용자는 트랜잭션을 처리하기 위해 더 높은 트랜잭션 비용을 지불할 수 있습니다. 이러한 상황은 저렴한 거래의 전체 백로그가 처리되거나 폐기될 때까지 지속됩니다.

트랜잭션은 다음 중 하나가 발생할 때까지 대기열에 남아 있습니다:

  • 성공 여부에 관계없이 검증된 ledger에 적용됩니다.

  • 유효하지 않게 됩니다(예: LastLeggerSequence로 인해 만료됨)

  • 대기열에 트랜잭션이 너무 많고 트랜잭션 비용이 더 높기 때문에 삭제됩니다.

fix1201

Amendment
fix1201

Amendment ID

B4D44CC3111ADD964E846FC57760C8B50FFCD5A82C86A72756F6B058DDDF96AD

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

전송 수수료를 최대 전송 속도 값 2000000000으로 표시되는 100% 수수료로 올바르게 제한합니다. (이 경우 100% 수수료는 전달하려는 1개당 토큰 2개를 전송해야 함을 의미합니다.) 수정안이 없으면 유효 한도는 약 329%의 수수료로 232-1의 전송률 값이 됩니다.

이 수정 사항을 사용하도록 설정하면 전송 속도를 20000000보다 높게 설정하려는 AccountSet 트랜잭션이 결과 코드 temBAD_TRANSER_RATE로 실패합니다. 이전 규칙에서 더 높은 값으로 설정된 기존 전송 속도는 더 높은 속도로 계속 적용됩니다.

fix1368

Amendment
fix1368

Amendment ID

E2E6F2866106419B88C50045ACE96368558C345566AC8F2BDF5A5B5587F0E6FA

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

일부 결제가 유효해야 할 때 실패하는 트랜잭션 처리의 사소한 버그를 수정합니다. 구체적으로, 결제 처리 중에, 일정 금액의 통화를 생성할 것으로 예상되는 일부 결제 단계는 부동 소수점 번호 표현과 관련된 정밀도 손실로 인해 미시적으로 다른 금액을 생성할 수 있습니다. 이 경우, 의도한 금액을 정확하게 전달할 수 없기 때문에 이러한 지불은 실패합니다. fix1368 수정안은 거래 처리를 수정하여 결제가 더 이상 이러한 방식으로 실패하지 않도록 합니다.

fix1373

Amendment
fix1373

Amendment ID

42EEA5E28A97824821D4EF97081FE36A54E9593C6E4F20CBAE098C69D2E072DC

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

처리를 위해 특정 결제 경로를 준비할 때 실패를 유발하는 트랜잭션 처리의 사소한 버그를 수정합니다. 결과적으로, 지불은 유효해야 했지만 잘못 준비된 특정 경로를 사용할 수 없었습니다. 이 수정이 없으면, 이러한 지불은 선호도가 낮은 경로를 사용하도록 강요되거나 심지어 실패할 수 있습니다.

fix1373 수정안은 경로가 적절하게 준비되고 지불이 이를 사용할 수 있도록 문제를 수정합니다. 또한 충돌하는 필드가 포함된 경로 및 동일한 개체를 두 번 이상 순환하는 경로를 포함하여 현재 허용된 일부 부적절한 경로를 사용하지 않도록 설정합니다.

fix1512

Amendment
fix1512

Amendment ID

6C92211186613F9647A89DFFBAB8F94C99D4C7E956D495270789128569177DA1

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

잘못된 오류 코드로 인해 일부 잘못된 PaymentChannelClaim 트랜잭션이 실패하는 트랜잭션 처리의 버그를 수정합니다. 이 수정이 없으면, 거래는 대장에 포함되지 않았음에도 불구하고 tec급 결과 코드를 가집니다.

이 수정 사항을 사용하면 트랜잭션이 실패하고 대신 보다 적절한 결과 코드인 temBAD_AMOUNT가 표시됩니다.

fix1513

Amendment
fix1513

Amendment ID

67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

FeeEscalation 수정을 사용하도록 설정한 경우 새 STAmountCalcSwitchovers 코드를 사용하지 않는 트랜잭션 처리로 인한 버그를 수정합니다.

이 수정으로 새로운 STAmountCalcSwitchovers 코드가 적용되며, 계산 차이로 인해 트랜잭션 처리에 약간의 변경이 발생할 수 있습니다. 금액은 서로 다르게 반올림될 수 있으며, 결과적으로 다른 순서로 제안이 실행될 수 있습니다.

fix1515

Amendment
fix1515

Amendment ID

5D08145F0A4983F23AFFFF514E83FAD355C5ABFBB6CAB76FB5BC8519FF5F33BE

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

결제 처리와 제안 처리가 유동성을 소비하는 방식의 사소한 차이를 제거하기 위해 제안을 소비하는 방식을 변경합니다. (FlowCross가 활성화된 경우 제안Create 트랜잭션이 처리되는 방식에도 영향을 미칩니다.)

이 수정이 없으면, 거래가 동일한 환율로 2000개 이상의 제안을 소비할 경우 지불 처리는 특정 주문 장부의 사용을 포기합니다. 이 경우, 결제는 이러한 제안의 유동성을 사용하지 않으며, 결제를 완료할 때 해당 오더의 잔여 유동성을 고려하지 않습니다.

이 수정을 통해 1000개 이상의 거래 프로세스가 동일한 환율로 제안하는 경우, 해당 거래는 최초 1000개 제안의 유동성을 소비한 다음, 결제를 완료하려고 할 때 해당 오더북의 잔여 유동성을 고려하지 않습니다.

두 경우 모두 다른 경로나 환율의 유동성을 사용하여 거래 처리를 완료할 수 있습니다.

fix1523

Amendment
fix1523

Amendment ID

B9E739B8296B4A1BB29BE990B17D66E21B62A300A909F25AC55C22D6C72E1F9D

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

에스크로 대상 계정별 추적을 추가합니다. 이 수정사항이 없으면 보류 중인 에스크로는 발송인에 의해서만 추적됩니다. 이 수정사항을 사용하면 이 수정사항이 활성화되기 전에 생성된 보류 중인 에스크로를 제외하고 account_objects 메소드를 사용하여 대상 주소별로 보류 중인 에스크로를 조회할 수 있습니다. 또한 이 수정사항은 account_tx 메소드에서 볼 수 있듯이 대상의 트랜잭션 기록에 EscrowCreate 트랜잭션이 표시되도록 합니다.

이 수정사항을 통해 새 에스크로가 발신인 및 수신인의 소유자 디렉토리에 추가됩니다. 이 수정사항은 또한 대상의 소유자 디렉토리 중 어느 페이지에 에스크로가 포함되어 있는지 나타내는 새 대상 노드 필드를 에스크로 ledger 객체에 추가합니다.

fix1528

Amendment
fix1528

Amendment ID

1D3463A5891F9E589C5AE839FFAC4A917CE96197098A1EF22304E1BC5B98A454

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

유효성 검증인이 다른 타임스탬프를 사용하여 합의 레지스터를 작성할 수 있는 버그를 수정하여 유효성이 검사된 레지스터를 선언하는 프로세스를 지연시킬 수 있습니다. 이러한 상황이 발생하려면 정확한 타이밍이 필요하므로 이 버그는 제어된 테스트 조건을 벗어나면 발생할 가능성이 낮습니다.

이 수정안은 유효성 검증인이 합의 대장의 마감 시간을 협상하는 방식을 변경하여 ledger 내용에 대한 컨센서스스에 도달하지 못하고 다른 타임스탬프를 사용하여 ledger 버전을 구축합니다.

fix1543

Amendment
fix1543

Amendment ID

CA7C02118BA27599528543DFE77BA6838D1B0F43B447D4D7F53523CE6A0E9AC2

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

일부 트랜잭션 유형에서 예약된 플래그 범위를 강제로 적용합니다. 이제 영향을 받는 트랜잭션 유형의 경우, 정의되지 않은 플래그나 예약된 범위의 플래그, 또는 알 수 없는 플래그를 활성화하는 경우에는 유효하지 않은 것으로 간주됩니다. (이 변경 사항에 영향을 받지 않는 트랜잭션은 이미 동일한 규칙을 올바르게 적용하고 있습니다.)

이 수정안이 없으면 특정 유형의 트랜잭션은 정의되지 않았거나 예약된 플래그가 활성화된 경우에도 유효한 것으로 간주됩니다.

영향을 받는 트랜잭션 유형은 다음과 같습니다:

  • Escrow 트랜잭션: EscrowCancel, EscrowCreate 및 EscrowFinish

  • Payment Channel 트랜잭션: PaymentChannelClaim, PaymentChannelCreate 및 PaymentChannelFund

fix1571

Amendment
fix1571

Amendment ID

7117E2EC2DBF119CA55181D69819F1999ECEE1A0225A7FD2B9ED47940968479C

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

다음 문제를 해결하기 위해 Escrow을 변경합니다:

  • EscrowCreate 트랜잭션을 수정하여 Condition 또는 FinishAfter 필드(또는 둘 다)가 필요하도록 합니다. 이 수정안 이전에 Condition이나 FinishAfter가 없는 Escrow는 CancelAfter 시간 이전에 누구든지 언제든지 종료할 수 있습니다.

  • 일부 상황에서 시간 기반 Escrow가 잘못된 방식으로 종료되지 않도록 결함을 수정합니다.

fix1578

Amendment
fix1578

Amendment ID

FBD513F1B893AC765B78F250E6FFA6A11B573209D1842ADC787C850696741288

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

두 개의 트랜잭션 유형에서 반환되는 결과 코드를 변경합니다:

  • OfferCreate 트랜잭션을 수정하여 tfFillOrKill 플래그를 사용한 오더가 취소된 경우, 새로운 결과 코드인 tecKILLED를 반환하도록 합니다. 이 수정안 없이는 오더가 취소되지만 트랜잭션 결과는 tesSUCCESS입니다.

  • TrustSet 트랜잭션을 수정하여 신뢰선이 음수 잔액을 가지고 있어 No Ripple 플래그를 활성화할 수 없는 경우 tecNO_PERMISSION로 실패하도록 합니다. 이 수정안 없이는 트랜잭션에서 No Ripple 플래그를 활성화하지 않지만, 트랜잭션 결과는 여전히 tesSUCCESS입니다.

fix1623

Amendment
fix1623

Amendment ID

58BE9B5968C4DA7C59BA900961828B113E5490699B21877DEF9A31E9D0FE5D5F

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

변동 가능한 금액으로 현금화된 CheckCash 트랜잭션의 메타데이터에 전달된 금액(DeliveredAmount)을 추가합니다. (Checks 수정안이 활성화되어 있지 않은 경우에는 영향이 없습니다.)

이 수정안이 활성화된 경우, 트랜잭션 처리는 가변 금액(DeliverMin 필드 사용)으로 CheckCash 트랜잭션의 메타데이터에 전달된 금액(DeliveredAmount) 필드를 추가합니다. 이 변경 사항은 ledger 데이터에 기록되며, 이 수정안 없이 트랜잭션을 처리하는 경우와는 다른 ledger 해시가 생성됩니다. 실제로 전달된 금액에는 영향을 미치지 않습니다. 또한, 이 수정안이 활성화된 경우, tx 메소드와 account_tx 메소드는 CheckCash 트랜잭션에 대해 전달된 금액(delivered_amount) 필드를 반환합니다. (전달된 금액 필드는 트랜잭션 조회 시 계산되며, ledger에 기록되는 데이터의 일부는 아닙니다.)

fix1623 수정안은 고정 금액(Amount 필드 사용)으로 수행되는 CheckCash 트랜잭션이나 다른 트랜잭션 유형에는 영향을 미치지 않습니다.

fix1781

Amendment
fix1781

Amendment ID

25BA44241B3BD880770BFA4DA21C7180576831855368CBEC6A3154FDE4A7676E

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

특정 XRP 엔드포인트가 순환 경로를 감지할 때 확인되지 않는 버그를 수정합니다.

이 수정안이 없는 경우, 경로의 입력이 XRP이고 중간 경로 단계도 XRP를 출력하는 지불 경로가 가능합니다. 이러한 경우는 "루프" 지불로, 지불 엔진은 이러한 경로를 허용하지 않습니다. 왜냐하면 이러한 경로는 순방향과 역방향으로 실행될 때 서로 다른 결과를 가져올 수 있기 때문입니다.

이 수정안을 적용하면 해당 지불은 temBAD_PATH_LOOP 결과 코드로 실패합니다.

fixAmendmentMajorityCalc

Amendment
fixAmendmentMajorityCalc

Amendment ID

4F46DF03559967AC60F2EB272FEFE3928A7594A45FF774B87A7E540DB0F8F068

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

버그를 수정하여, 반올림 세마틱으로 인해 약간 80% 미만의 신뢰할 수 있는 유효성 검증인의 지원으로도 과반수를 달성하고 나중에 활성화되는 문제를 해결합니다.

이 수정안이 없는 경우, 수정안 활성화의 최소 임계값은 신뢰할 수 있는 유효성 검증인의 204/256에 반올림하는 어떤 값이 될 수 있습니다. 이는 당시 신뢰할 수 있는 유효성 검증인의 수에 따라 달라집니다. 예를 들어, 수정안이 정확히 36개 중 28개의 유효성 검증인(약 77.8%)로 활성화될 수 있습니다. 이 수정안을 통해, 실제 필요한 최소 유효성 검증인 수는 신뢰할 수 있는 유효성 검증인의 80% 미만이 되지 않습니다.

fixCheckThreading

Amendment
fixCheckThreading

Amendment ID

8F81B066ED20DAECA20DF57187767685EEF3980B228E0667A650BAF24426D3B4

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

Checks 트랜잭션이 계정 메타데이터에 올바르게 반영되도록 변경되어, 수신 계정의 계정 히스토리에 Checks가 올바르게 추가됩니다. 특히, 수신 계정의 AccountRoot 객체의 PreviousTxnID 및 PreviousTxnLedgerSeq 필드를 업데이트하여 계정과 해당 객체에 영향을 미친 트랜잭션 "스레드"를 추적하는 데 사용할 수 있습니다.

이 수정안이 없는 경우, Checks 트랜잭션(CheckCreate, CheckCash, CheckCancel)은 송신자의 계정 히스토리만 업데이트합니다. 이 수정안이 있으면 해당 트랜잭션은 송신 및 수신 계정에 영향을 미칩니다. 이 수정안은 Checks 수정안이 활성화되어 있는 경우에만 영향을 미칩니다.

fixMasterKeyAsRegularKey

Amendment
fixMasterKeyAsRegularKey

Amendment ID

C4483A1896170C66C098DEA5B0E024309C60DC960DE5F01CD7AF986AA3D9AD37

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

계정이 일반 키 쌍을 마스터 키 쌍과 일치시킬 수 있지만, 마스터 키가 비활성화된 경우에는 그 키로 트랜잭션을 보낼 수 없는 버그를 수정합니다.

이 수정이 없는 경우, 사용자는 일반 키를 마스터 키와 일치하도록 설정한 다음, 마스터 키를 비활성화함으로써 계정을 "블랙홀"로 만들 수 있습니다. 네트워크는 마스터 키가 비활성화된 상태에서 마스터 키 및 일반 키 쌍으로 서명된 트랜잭션을 거부합니다. 코드는 현재 활성화된 일반 키로 서명되었음을 인식하기 전에 해당 트랜잭션이 비활성화된 마스터 키로 서명된 것으로 해석하기 때문입니다.

이 수정안이 활성화된 경우, SetRegularKey 트랜잭션에서는 일반 키를 마스터 키와 일치시킬 수 없습니다. 이러한 트랜잭션은 temBAD_REGKEY 코드의 결과를 가져옵니다. 또한, 이 수정안은 서명 검증 코드를 변경하여 일반 키가 이미 마스터 키와 일치하도록 설정된 계정도 키 쌍을 사용하여 트랜잭션을 성공적으로 보낼 수 있게 합니다.

fixNFTokenDirV1

Amendment
fixNFTokenDirV1

Amendment ID

0285B7E5E08E1A8E4C15636F0591D87F73CB6A7B6452A932AD72BBC8E5D1CBE3

Status

Obsolete

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 NFToken 객체가 속하는 NFTokenPage를 결정할 때 특정 극단적인 경우에 발생하는 1차 오류(off-by-one error)를 수정합니다. 또한, NFTokenPage 불변성 검사의 제약 조건을 조정하여 특정 오류 상황이 tecINVARIANT_FAILED 오류 코드로 실패하는 대신 tecNO_SUITABLE_TOKEN_PAGE와 같은 적절한 오류 코드로 실패하도록 합니다.

이 수정안은 NonFungibleTokensV1 수정안이 활성화된 경우에만 영향을 미칩니다. 이 수정안은 NonFungibleTokensV1_1의 일부로 포함되어 더 이상 사용되지 않습니다.

fixNFTokenNegOffer

Amendment
fixNFTokenNegOffer

Amendment ID

36799EA497B1369B170805C078AEFE6188345F9B3E324C21E9CA3FF574E3C3D6

Status

Obsolete

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 NonFungibleTokensV1 수정안 코드에서 발생하는 버그를 수정하여 NFT(NFToken)를 음수 금액으로 거래할 수 없도록 합니다. 이 수정안 없이 사용자는 NFT를 음수 금액으로 구매하거나 판매하는 거래를 진행할 수 있었으며, 이로 인해 "구매자"는 "판매자"로부터 돈을 받게 되는 상황이 발생했습니다. 이 수정안을 통해 음수 금액으로의 NFT 거래는 유효하지 않은 것으로 간주됩니다.

이 수정안은 NonFungibleTokensV1 수정안이 활성화된 경우에만 영향을 미칩니다. 이 수정안은 NonFungibleTokensV1_1의 일부로 포함되어 더 이상 사용되지 않습니다.

fixNFTokenRemint

Amendment
fixNFTokenRemint

Amendment ID

AE35ABDEFBDE520372B31C957020B34A7A4A9DC3115A69803A44016477C84D6E

Status

In Development

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

fixNFTokenRemint 수정안은 NFT(NFToken) 시퀀스 번호가 동일한 시퀀스 번호로 여러 번 발행되어 충돌 가능한 상황이 발생할 수 있는 상황을 방지하기 위해 NFT 시퀀스 번호 생성 방식을 변경합니다. 이 수정안은 다음과 같은 방식으로 NFT 시퀀스 번호를 구성합니다:

  • 상수로 유지되는 새로운 AccountRoot 필드인 FirstNFTSequence을 생성합니다. 이 필드는 계정이 처음으로 NFT를 발행할 때 현재 계정 시퀀스로 설정됩니다. 그렇지 않으면 설정되지 않습니다.

  • 새롭게 발행된 NFT의 시퀀스는 FirstNFTSequence + MintedNFTokens로 계산됩니다. 이후 MintedNFTokens는 1씩 증가합니다.

또한, 이 수정안은 새로운 계정 삭제 제한을 도입합니다. 계정은 FirstNFTSequence + MintedNFTokens + 256가 현재 ledger 시퀀스보다 작을 경우에만 삭제할 수 있습니다. (256은 계정 삭제 제약 조건의 휴리스틱 제한으로 선택되었으며 이미 계정 삭제 제약 조건에 존재합니다.) 이 제한이 없으면 특정 조건에서 NFT를 다시 발행할 수 있습니다.

fixNonFungibleTokensV1_2

Amendment
fixNonFungibleTokensV1_2

Amendment ID

73761231F7F3D94EC3D8C63D91BDD0D89045C6F71B917D1925C01253515A6669

Status

In Development

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

fixNonFungibleTokensV1_2 수정안은 개별적으로 별도의 기능/버그 수정으로 합쳐진 버그 수정들의 조합입니다. 다음과 같은 수정 사항들을 포함하고 있습니다:

Unburnable NFT 수정

현재 500개 이상의 거래 요청이 있는 경우 NFT를 소각할 수 없습니다. 이 수정은 NFT를 소각할 때 정확히 500개의 거래 요청을 삭제하여 남은 거래 요청은 그대로 유지합니다. 이로써 lsfBurnable 플래그가 활성화된 NFT를 발행한 계정이 거래 요청 수 제한 때문에 NFT를 소각할 수 없는 문제를 해결합니다.

PR 4346 참고

NFToken 거래 수락에 관한 3가지 문제 수정

  • 문제 1: 계정이 잘못된 자금 부족 조건으로 인해 거래를 중개할 수 없는 상황을 해결합니다.

  • 문제 2: 구매자가 계정의 이체 수수료를 충당할 충분한 자금이 없는 상황을 해결합니다.

  • 문제 3: 화폐 발행자가 자체 화폐를 사용하여 NFT를 구매하고 판매할 수 있도록 합니다.

PR 4380

소유자에게 NFToken의 중개 판매 방지(fix #4374)

이 수정안은 브로커가 토큰을 이미 소유한 계정에 NFT를 판매하는 것을 방지합니다.

Issue 4374

대상이 중개를 통해 NFT Offer를 결제하도록 허용(fix #4373)

NFT Offer에 목적지를 설정한 경우 해당 목적지만 중개(fix #4373)를 통해 결제할 수 있습니다.

Issue 4373

fixPayChanRecipientOwnerDir

Amendment
fixPayChanRecipientOwnerDir

Amendment ID

621A0B264970359869E3C0363A899909AAB7A887C8B73519E4ECF952D33258A8

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

PaymentChannelCreate 트랜잭션 유형을 변경하여 수신자의 소유 디렉터리에 새로운 결제 채널을 추가합니다. 이 수정안이 없는 경우 새로 생성된 결제 채널은 송신자의 소유 디렉터리에만 추가됩니다. 그러나 이 수정안이 활성화된 경우, 새로 생성된 결제 채널은 두 개의 소유 디렉터리에 모두 추가됩니다. 기존의 결제 채널은 변경되지 않습니다.

이 변경으로 인해, 이 개정안 이전에 생성된 열린 결제 채널의 수신자인 계정은 삭제할 수 없게 됩니다.

위와 같은 조건으로 PaymentChannelCreate 트랜잭션 유형이 변경됩니다.

fixQualityUpperBound

Amendment
fixQualityUpperBound

Amendment ID

89308AF3B8B10B7192C4E613E1D2E4D9BA64B2EE2D5232402AE82A6A7220D953

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

교차 화폐 결제에서 개별 단계의 입력 대 출력 비율을 추정하기 위해 사용되지 않는 코드의 버그를 수정합니다.

이 수정사항은 트랜잭션 처리에 대해 알려진 영향을 미치지 않습니다.

fixRemoveNFTokenAutoTrustLine

Amendment
fixRemoveNFTokenAutoTrustLine

Amendment ID

DF8B4536989BDACE3F934F29423848B9F1D76D09BE6A1FCFE7E7F06AA26ABEAD

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

NFT에 대한 tfTrustLine 설정을 제거하여 이 플래그를 사용한 발행자에 대한 서비스 거부 공격으로부터 보호합니다. 이 수정안이 활성화된 경우, tfTrustLine 플래그가 설정된 NFTokenMint 트랜잭션은 유효하지 않으며 컨센서스에 의해 확인될 수 없습니다. 즉, 새로운 NFToken 개체는 이 플래그와 함께 생성될 수 없습니다.

이 수정안이 없는 경우, 공격자는 의미 없는 펀지블 토큰을 생성하고 해당 토큰에 대해 NFToken을 계속 구매 및 판매함으로써 발행자와 관련된 쓸모 없는 신뢰선을 많이 만들어 발행자의 reserve requirement을 증가시킬 수 있습니다.

이 수정안은 이미 발행된 NFToken 개체의 코드를 변경하지 않습니다. 이 수정안 이전에 NFT 지원을 활성화한 테스트 네트워크에서는 이미 tfTrustLine 플래그가 설정된 NFToken을 발행한 발행자가 여전히 해당 공격에 취약합니다.

이 수정안은 NonFungibleTokensV1 또는 NonFungibleTokensV1_1 중 하나가 활성화되어 있을 때에만 효과가 있습니다. 발행자를 보호하기 위해 이 수정안은 NonFungibleTokensV1 또는 NonFungibleTokensV1_1 이전에 활성화되어야 합니다.

fixRmSmallIncreasedQOffers

Amendment
fixRmSmallIncreasedQOffers

Amendment ID

B6B3EEDC0267AB50491FDC450A398AF30DBCD977CECED8BEF2499CAB5DAC19E2

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 특정 제안이 거의 완전히 소모된 경우에 처음 배치될 때보다 훨씬 낮은 환율을 가지는 문제를 수정합니다. 이는 남은 양의 하나 또는 양쪽 자산이 매우 작아서 제안이 배치될 때와 유사한 비율로 반올림될 수 없을 때 발생합니다.

이 수정안이 없는 경우, 이 상태에 있는 제안은 오더북의 더 나은 환율을 가진 제안을 깊이 더한 위치에서 차단하고, 일부 결제 및 제안이 성공할 수 있을 때 실패하게 됩니다.

이 수정안이 적용되면, 결제 및 거래는 이러한 유형의 제안을 정상적으로 소모된 또는 자금이 부족한 제안을 제거하는 방식으로 제거할 수 있습니다.

fixSTAmountCanonicalize

Amendment
fixSTAmountCanonicalize

Amendment ID

452F5906C46D46F407883344BFDD90E672B672C5E9943DB4891E3A34FEEEB9DB

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 Amount 유형 필드의 역직렬화에서 발생하는 특이한 경우를 수정합니다. 이 수정안이 없는 경우, 일부 특이한 상황에서는 그렇지 않을 경우에도 유효한 직렬화된 양이 역직렬화 중에 오버플로우될 수 있습니다. 이 수정안이 적용되면, XRP Ledger는 오류 조건을 더 빠르게 감지하고 문제가 되는 경계 상황을 제거합니다.

fixTakerDryOfferRemoval

Amendment
fixTakerDryOfferRemoval

Amendment ID

2CD5286D8D687E98B41102BDD797198E81EA41DF7BD104E6561FEB104EFF2561

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 자동 브리징에서 발생하는 문제를 수정합니다. 자동 브리징은 자금을 생성할 수 없는 거래 요청(드라이 오더)을 남길 수 있습니다.

이 수정안이 없는 경우, 드라이 오더는 ledger에 남아 있으며, 소유자의 reserve requirement에 포함되지만 소유자에게 혜택을 제공하지 않습니다. 적합한 거래 요청이 발생하면 드라이 오더는 제거될 수 있습니다. 그러나 적합한 거래 요청이 드문 경우, 드라이 오더가 제거되기까지 시간이 소요될 수 있습니다.

이 수정안을 활성화하면, XRP Ledger는 자동 브리징에서 이러한 드라이 오더를 제거합니다.

fixTrustLinesToSelf

Amendment
fixTrustLinesToSelf

Amendment ID

F1ED6B4A411D8B872E65B9DCB4C8B100375B0DD3D62D07192E011D6D7F339013

Status

In Development

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 오래된 버그로 인해 자기 자신에 대한 두 개의 신뢰선을 삭제합니다 (모두 2013-05-07에 생성됨). 수정안이 활성화되면 ID가 2F8F21EFCAFD7ACFB07D5BB04F0D2E18587820C7611305BB674A64EAB0FA71E1 및 326035D5C0560A9DA8636545DD5A1B0DFCFF63E68D491B5522B767BB00564B1A인 신뢰선이 있을 경우 삭제합니다. 이후에는 수정안은 더 이상 다른 작업을 수행하지 않습니다.

이러한 신뢰선이 없는 테스트 네트워크에서는 수정안이 영향을 미치지 않습니다.

fixUniversalNumber

Amendment
fixUniversalNumber

Amendment ID

2E2FB9CF8A44EB80F4694D38AADAE9B8B7ADAFD2F092E10068E61C98C4F092B0

Status

In Development

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 십진 부동 소수점 연산에 대한 코드를 간소화하고 통일화합니다. 이전 코드보다 약간 더 정확한 결과를 제공하여, 최소한의 유효 자릿수가 이전 코드와 다를 수 있는 계산 결과를 얻게 됩니다. 이러한 차이로 인해 제안의 순위 결정이나 여러 다른 경로를 사용하는 결제 처리와 같이 정확한 계산이 필요한 엣지 케이스에서 다른 결과가 발생할 수 있습니다.

이 수정안이 없는 경우, 코드는 여전히 STAmount와 IOUAmount 객체에 대해 별도의 계산을 사용하며, Automated Market Maker (XLS-30d)는 계산에 대한 세 번째 클래스를 사용합니다.

Flow

Amendment
Flow

Amendment ID

740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 보다 견고하고 효율적인 새로운 지불 처리 엔진인 Flow 엔진으로 지불 처리 엔진을 대체합니다. 새로운 버전의 지불 처리 엔진은 이전과 동일한 규칙을 따르도록 설계되었지만, 부동 소수점 반올림으로 인해 때로는 다른 결과를 생성할 수 있습니다. 이 수정안은 FlowV2 수정안을 대체합니다.

Flow 엔진은 추가적인 수정안으로 지불 엔진을 개선하고 확장하는 작업을 더욱 쉽게 만듭니다.

FlowCross

Amendment
FlowCross

Amendment ID

3012E8230864E95A58C60FD61430D7E1B4D3353195F2981DC12B0C7C0950FFAC

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 XRP Ledger의 탈중앙화 거래소에서 거래를 처리하는 로직을 간소화합니다. Flow 수정안에서 업데이트된 코드를 사용하여 거래를 처리하므로 OfferCreate 트랜잭션과 Payment 트랜잭션은 더 많은 코드를 공유하게 됩니다. 이로 인해 거래 처리 방식에는 다음과 같은 미묘한 차이가 있을 수 있습니다:

일부 경우에 반올림이 약간 다를 수 있습니다. 반올림 차이로 인해 일부 거래 조합은 이전 로직보다 높은 또는 낮은 순위로 평가되며, 우선적으로 처리될 수 있습니다. 새로운 로직은 이전 로직보다 더 많거나 적은 거래를 삭제할 수 있습니다. (이는 반올림 차이와 이전 로직에 의해 잘못된 unfunded로 처리된 거래를 포함합니다.)

FlowSortStrands

Amendment
FlowSortStrands

Amendment ID

AF8DF7465C338AE64B1E937D6C8DA138C0D63AD5134A68792BBBE1F63356C422

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 교차 화폐 거래를 실행하기 위해 가장 비용 효율적인 방법을 찾는 결제 엔진의 계산을 개선합니다.

이전 방식에서는 엔진이 각 가능한 경로를 통해 결제를 시뮬레이션하여 각 경로의 품질(입력 대 출력의 비율)을 계산합니다. 그러나 이 수정안에서는 전체 결제를 시뮬레이션하지 않고 각 경로의 이론적인 품질을 계산합니다. 이 수정안을 통해 결제 엔진은 일부 교차 화폐 결제를 더 빠르게 실행할 수 있으며, 더 많은 경우에서 가장 비용 효율적인 경로를 찾을 수 있습니다. 또한 이전 결제 엔진에서 충분한 유동성을 찾지 못해 실패하는 경우에도 일부 결제가 성공할 수 있습니다.

FlowV2

Amendment
FlowV2

Amendment ID

5CC22CFF2864B020BD79E0E1F048F63EF3594F95E650E43B3F837EF1DF5F4B26

Status

Vetoed

Pre-amendment functionality retired?

No

이것은 이전 버전의 흐름 수정사항입니다. 버그로 인해 거부되었으며 버전 0.33.0에서 제거되었습니다.

HardenedValidations

Amendment
HardenedValidations

Amendment ID

1F4AFA8FA1BC8827AD4C0F682C03A8B671DCDF6B5C4DE36D44243A684103EF88

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 검증자가 자체 검증이 완료된 최신 ledger의 해시를 인증하는데 사용할 수 있는 새로운 선택적 필드를 검증에 포함할 수 있도록 허용합니다. 합의 과정은 이 정보를 사용하여 컨센서스의 견고성을 향상시킬 수 있습니다.

ImmediateOfferKilled

Amendment
ImmediateOfferKilled

Amendment ID

75A7E01C505DD5A179DFE3E000A9B6F1EDDEB55A12F95579A23E15B15DC8BE5A

Status

In Development

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

OfferCreate 트랜잭션의 변경사항은 다음과 같습니다. tfImmediateOrCancel을 사용하는 Offer가 자금을 이동시키지 않고 제거되는 경우, 트랜잭션은 결과 코드로 tesSUCCESS 대신 tecKILLED를 사용합니다. 자금의 어떤 금액이라도 교환되는 경우에는 여전히 tesSUCCESS를 사용합니다. 트랜잭션 처리에 대한 다른 부분(예: 트랜잭션 처리 중에 ledger에서 만료되거나 자금이 없는 거래를 정리하는지 여부 등)은 변경되지 않습니다.

이 수정안을 적용하지 않은 경우 "즉시 청산" 제안은 자금을 이동시키지 못한 경우에도 tesSUCCESS 결과 코드를 반환하여 트랜잭션이 사실상 아무 작업도 수행하지 않았음에도 혼동을 줄 수 있었습니다.

MultiSign

Amendment
MultiSign

Amendment ID

4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

이 수정안은 트랜잭션을 인가하기 위한 다중 서명 방식으로 multi-signing을 도입합니다. SignerList ledger 객체 타입과 SignerListSet 트랜잭션 타입을 생성합니다. 모든 트랜잭션 타입에 선택적인 Signers 필드를 추가합니다. 일부 트랜잭션 결과 코드를 수정합니다.

이 수정안은 주소별로 트랜잭션을 인가할 수 있는 서명자 목록을 가질 수 있게 합니다. 이 목록에는 쿼럼과 1부터 8까지의 가중치를 가진 서명자가 포함됩니다. 이를 통해 "5명 중 3명 이상" 또는 "A의 서명과 다른 두 개의 서명"과 같은 다양한 구성이 가능합니다.

서명자는 자금이 있는 주소 또는 자금이 없는 주소일 수 있습니다. 서명자 목록에 있는 자금이 있는 주소는 일반 키(정의된 경우) 또는 마스터 키(비활성화되지 않은 경우)를 사용하여 서명할 수 있습니다. 자금이 없는 주소는 마스터 키로 서명할 수 있습니다. 다중 서명된 트랜잭션은 일반 키로 서명된 트랜잭션과 동일한 권한을 갖습니다.

SignerList가 있는 주소는 정규 키가 정의되지 않았더라도 마스터 키를 비활성화할 수 있습니다. SignerList가 있는 주소는 마스터 키가 비활성화되었더라도 정규 키를 제거할 수 있습니다. tecMASTER_DISABLED 트랜잭션 결과 코드는 tecNO_ALTERNATIVE_KEY로 이름이 변경됩니다. tecNO_REGULAR_KEY 트랜잭션 결과 코드는 제외되고 tecNO_ALTERNATIVE_KEY로 대체됩니다. 또한, 이 수정안은 다음과 같은 새로운 트랜잭션 결과 코드를 추가합니다:

  • temBAD_SIGNER

  • temBAD_QUORUM

  • temBAD_WEIGHT

  • tefBAD_SIGNATURE

  • tefBAD_QUORUM

  • tefNOT_MULTI_SIGNING

  • tefBAD_AUTH_MASTER

MultiSignReserve

Amendment
MultiSignReserve

Amendment ID

586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF1FC07EFE41D

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 다중 서명 SignerList를 소유하는 경우 XRP Ledger 계정에 대한 소유자 reserve requirement을 감소시킵니다.

이 수정안이 없는 경우, SignerList의 소유자 reserve는 서명자 수에 따라 15에서 50 XRP 사이로 범위가 설정됩니다.

이 수정안이 활성화된 경우, 새로운 SignerList에 대한 reserve requirement은 서명자 수에 관계없이 5 XRP입니다. 이전에 생성된 SignerList 객체의 reserve requirement은 변경되지 않습니다. 이 수정안이 활성화된 이후에 생성된 SignerList 객체의 reserve requirement을 감소시키려면 SignerListSet 트랜잭션을 사용하여 SignerList를 대체하세요. (이전 버전과 동일한 것으로 대체할 수 있습니다.)

NegativeUNL

Amendment
NegativeUNL

Amendment ID

B4E4F5D2D6FB84DF7399960A732309C9FD530EAE5941838160042833625A6076

Status

Enabled

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 "Negative UNL" 시스템을 구현합니다. 이 시스템에서는 네트워크가 일시적으로 오프라인인 검증인을 추적하고, 해당 검증인을 쿼럼 계산에서 제외할 수 있습니다. 이를 통해 네트워크의 안정성이 떨어지는 기간 동안에도 진전을 이룰 수 있는 능력을 향상시킬 수 있습니다.

NonFungibleTokensV1

Amendment
NonFungibleTokensV1

Amendment ID

3C43D9A973AA4443EF3FC38E42DD306160FBFFDAB901CD8BAA15D09F2597EB87

Status

Obsolete

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 비교 불가능한 토큰(native support for non-fungible tokens)에 대한 기능을 추가합니다. 이 기능은 XLS-20d 표준 초안에 따릅니다.

Warning:

이 수정안에는 tecINVARIANT_FAILED 오류가 계정에 나타날 수 있는 여러 알려진 문제가 있습니다. 이 수정안은 NonFungibleTokensV1_1 수정안으로 대체되었습니다.

이 수정안은 다음과 같이 5개의 새로운 트랜잭션 유형을 추가합니다:

  • NFTokenAcceptOffer

  • NFTokenBurn

  • NFTokenCancelOffer

  • NFTokenCreateOffer

  • NFTokenMint

또한, 다음과 같이 2개의 새로운 ledger 객체 유형을 추가합니다:

  • NFTokenOffer 객체

  • NFTokenPage 객체

또한, AccountRoot 객체 유형을 수정하여 MintedNFTokens, BurnedNFTokens, NFTokenMinter라는 3개의 새로운 선택적 필드를 추가합니다.

또한, AccountSet 트랜잭션 유형을 수정하여 NFTokenMinter 필드를 설정할 수 있도록 합니다.

NonFungibleTokensV1_1

Amendment
NonFungibleTokensV1_1

Amendment ID

32A122F1352A4C7B3A6D790362CC34749C5E57FCE896377BFDC6CCD14F6CD627

Status

Enabled

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 대체 불가능한 토큰(native support for non-fungible tokens)에 대한 기능을 추가하며, NonFungibleTokensV1 이후에 발견된 여러 문제를 수정합니다.

이 수정안은 다음 수정안의 효과를 결합하여 개별 수정안이 더 이상 사용되지 않도록 만듭니다:

  • NonFungibleTokensV1

  • fixNFTokenNegOffer

  • fixNFTokenDirV1

그 외에는 다른 영향을 미치지 않습니다.

Caution:

fixRemoveNFTokenAutoTrustLine은 이 수정안과 관련된 알려진 문제를 해결합니다. 새로운 테스트 네트워크를 생성할 때 이러한 수정안이 함께 활성화되거나 먼저 fix 수정안이 활성화되도록 해야 합니다.

OwnerPaysFee

Amendment
OwnerPaysFee

Amendment ID

9178256A980A86CF3D70D0260A7DA6402AAFE43632FDBCB88037978404188871

Status

In Development

Default Vote (Latest stable release)

N/A

Pre-amendment functionality retired?

No

이 수정안은 OfferCreate 및 Payment 트랜잭션 유형 간에 전송 수수료가 계산되는 방식에서의 일관성 오류를 수정합니다. 이 수정안이 없을 경우, 토큰 소유자는 거래가 실행될 때 제공하는 거래로부터 전송 수수료를 지불하지만, OfferCreate 트랜잭션의 경우 거래의 초기 송신자가 거래로부터 실행되는 거래의 전송 수수료를 지불합니다. 이 수정안을 통해, 토큰 소유자는 항상 전송 수수료를 지불하게 되며, 이는 거래가 Payment인지 제안Create인지에 관계없이 적용됩니다. Payment 처리에 포함되지 않은 제안 처리에는 영향을 주지 않습니다.

이 수정안을 적용하려면 Flow 수정안을 활성화해야 합니다.

Note:

이 수정안의 불완전한 버전이 v0.33.0에서 소개되었으며 v0.80.0에서 제거되었습니다. (실제로 활성화되지는 않았습니다.)

PayChan

Amendment
PayChan

Amendment ID

08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

XRP를 위한 "지불 채널"을 생성합니다. 지불 채널은 두 당사자 간의 반복되는 단방향 지불 또는 일시적인 신용을 용이하게 하는 도구입니다. 이 기능은 Interledger 프로토콜에 유용하게 사용될 것으로 예상됩니다. 한 당사자는 지불 채널을 생성하고, 미리 설정된 만료 기간 동안 해당 채널에 일정량의 XRP를 예약합니다. 그런 다음 오프-ledger 안전한 통신을 통해 송신자는 수신자에게 "청구(Claim)" 메시지를 전송할 수 있습니다. 수신자는 만료 전에 청구 메시지를 교환할 수 있으며, 지불이 필요하지 않은 경우 교환하지 않을 수도 있습니다. 수신자는 실제로 네트워크에 분배하지 않고 컨센서스 프로세스에서 교환하기 위해 청구를 개별적으로 확인할 수 있으며, 나중에 많은 작은 청구의 내용을 결합하여 교환할 수 있습니다. 다만, 이는 만료 기간 내에 이루어져야 합니다.

다음과 같은 세 가지 새로운 트랜잭션 유형을 생성합니다: PaymentChannelCreate, PaymentChannelClaim, PaymentChannelFund. 새로운 ledger 객체 유형인 PayChannel을 생성합니다. "청구(Claim)"를 위한 오프-ledger 데이터 구조인 "Claim"을 정의하며, PaymentChannelClaim는 이 데이터 구조에 대한 서명을 사용합니다. 새로운 rippled API 메소드도 생성됩니다: channel_authorize(서명된 청구 생성), channel_verify(서명된 청구 확인), account_channels(계정과 관련된 채널 목록).

자세한 내용은 Payment Channels Tutorial을 참조하십시오.

RequireFullyCanonicalSig

Amendment
RequireFullyCanonicalSig

Amendment ID

00C1FC4A53E60AB02C864641002B3172F38677E29C26C5406685179B37E1EDAC

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

XRP Ledger 프로토콜의 서명 요구사항을 변경하여 완전 캐노니컬(fully canonical)하지 않은 서명이 어떤 경우에도 유효하지 않도록 합니다. 이로써 tfFullyCanonicalSig 플래그가 활성화된 트랜잭션뿐만 아니라 모든 트랜잭션에서 트랜잭션 변형을 방지할 수 있습니다.

이 수정안 없이는 secp256k1 서명을 사용하고 tfFullyCanonicalSig가 활성화되지 않은 경우 트랜잭션은 변형 가능합니다. 대부분의 서명 유틸리티는 기본적으로 tfFullyCanonicalSig를 활성화하지만 예외가 있을 수 있습니다.

이 수정안으로 인해 단일 서명 트랜잭션은 변형 가능하지 않습니다. (여러 서명이 필요한 경우 서명자가 필요한 서명보다 더 많은 서명을 제공하는 경우 여전히 변형 가능할 수 있습니다.) 모든 트랜잭션은 tfFullyCanonicalSig 플래그에 관계없이 완전 캐노니컬한 서명 형식을 사용해야 합니다. 완전 캐노니컬한 서명을 생성하지 않는 서명 유틸리티는 지원되지 않습니다. 리플의 모든 서명 유틸리티는 적어도 2014년 이후로 완전 캐노니컬한 서명만을 제공하고 있습니다.

자세한 내용은 rippled 이슈 #3042를 참조하십시오.

SHAMapV2

Amendment
SHAMapV2

Amendment ID

C6970A8B603D8778783B61C0D445C23D1633CCFAEF0D43E7DBCD1521D34BD7C3

Status

Vetoed

Pre-amendment functionality retired?

No

hash tree 구조를 변경하여 rippled가 ledger를 나타내는 데 사용하는 방식을 변경합니다. 새로운 구조는 이전 버전보다 더 압축되고 효율적입니다. 이로 인해 ledger 해시가 계산되는 방식에 영향을 미치지만 다른 사용자에게는 영향을 미치지 않습니다.

이 수정안이 활성화되면 XRP Ledger는 해시 트리 구조 변경을 계산하는 동안 잠시 일정 시간 사용할 수 없게 됩니다.

SortedDirectories

Amendment
SortedDirectories

Amendment ID

CC5ABAE4F3EC92E94A59B1908C2BE82D2228B6485C00AFF8F22DF930D89C194E

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

DirectoryNode ledger 객체의 항목들을 정렬하고, 때로는 삭제되어야 할 소유자 디렉터리 페이지가 삭제되지 않는 버그를 수정합니다.

Warning:

이 수정안을 인식하지 못하는 이전 버전의 rippled는 새로운 규칙에 따라 정렬된 DirectoryNode를 발견하면 충돌할 수 있습니다. 이 문제를 피하기 위해 rippled를 0.80.0 버전 이상으로 업그레이드하십시오.

SusPay

Amendment
SusPay

Amendment ID

DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13

Status

Vetoed

Pre-amendment functionality retired?

No

이 수정안은 Escrow 수정안으로 대체되었습니다.

TicketBatch

Amendment
TicketBatch

Amendment ID

955DF3FA5891195A9DAEFA1DDC6BB244B545DDE1BAA84CBB25D5F12A8DA68A0C

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

No

이 수정안은 일반적인 시퀀스 번호 순서에서 벗어난 트랜잭션을 전송하는 방법으로 티켓을 추가합니다.

표준 초안: XLS-13d

Tickets

Amendment
Tickets

Amendment ID

C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490

Status

Vetoed

Pre-amendment functionality retired?

No

이 수정사항은 TicketBatch 수정으로 대체되었습니다.

TickSize

Amendment
TickSize

Amendment ID

532651B4FD58DF8922A49BA101AB3E996E5BFBF95A913B3E392504863E63B164

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

이 수정안은 오더북에서 매수 및 매도 가격을 랭크하는 방식을 변경하여 통화 발행자가 가격에 사용되는 유효 자릿수를 설정할 수 있도록 합니다. 이 수정안을 통해, 거래소의 가격은 설정된 유효 자릿수에 맞춰 반올림되어 같은 가격을 가진 거래가 더 많이 생기게 됩니다. 이 변경은 이전 거래를 뛰어넘기 위해서는 의미 있는 가격 개선이 필요하도록 합니다. 대규모 통화 발행자가 이 수정안을 사용하면 기존 거래보다 조금 더 나은 가격의 거래만 제시하는 스팸 거래를 줄일 수 있습니다. 또한, 오더북 저장 공간의 효율성도 향상될 수 있습니다. 이는 같은 가격을 가진 거래를 더 적은 수의 가격으로 그룹화할 수 있기 때문입니다.

이 수정안은 AccountSet 트랜잭션을 사용하여 계정에 TickSize 필드를 도입합니다. 통화 발행자가 TickSize 필드를 설정하면 XRP Ledger는 해당 통화를 거래하는 거래의 환율을 잘라내고 거래량을 조정합니다. 거래에서 TickSize가 설정된 통화가 하나만 존재하는 경우 해당하는 유효 자릿수가 적용됩니다. 두 개의 서로 다른 TickSize 값을 가진 통화를 거래하는 경우, 가장 적은 유효 자릿수가 적용됩니다. XRP는 TickSize가 없습니다.

TrustSetAuth

Amendment
TrustSetAuth

Amendment ID

6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC

Status

Enabled

Default Vote (Latest stable release)

Yes

Pre-amendment functionality retired?

Yes

이 수정안이 활성화되면, Authorized 신뢰선을 사용할 때 회계 관계(잔액이 없는 신뢰선)의 사전 승인을 허용합니다.

이 수정안을 통해, tfSetfAuth가 활성화된 TrustSet 트랜잭션은 다른 RippleState 노드의 값을 기본 상태로 유지하더라도 새로운 RippleState ledger 객체를 생성할 수 있습니다. 새로운 RippleState 노드에는 송신자가 낮은 노드인지 높은 노드인지에 따라 lsfLowAuth 또는 lsfHighAuth 플래그가 활성화됩니다. 트랜잭션의 송신자는 이미 asfRequireAuth 플래그가 활성화된 AccountSet 트랜잭션을 보내어 lsfRequireAuth를 활성화해야 합니다.

XRPFees

Amendment
XRPFees

Amendment ID

93E516234E35E08CA689FA33A6D38E103881F8DCB53023F728C307AA89D515A7

Status

In Development

Default Vote (Latest stable release)

No

Pre-amendment functionality retired?

No

이 수정안은 거래 비용 계산을 간단하게 하기 위해 간접적으로 "수수료 단위"를 계산하고 결과를 XRP로 변환하는 대신에 XRP를 직접 사용합니다. 다음을 포함하여 프로토콜과 ledger 데이터의 모든 "수수료 단위" 인스턴스를 XRP의 드롭으로 업데이트합니다.

  • 드롭 단위의 XRP를 사용하기 위해 수수료 투표 프로토콜을 업데이트합니다.

  • FeeSettings ledger 항목 유형을 업데이트합니다. BaseFee, ReferenceFeeUnits, ReserveBase 및 ReserveIncrement 필드를 BaseFeeDrops, ReserveBaseDrops 및 ReserveIncrementDrops로 대체합니다.

  • SetFee 트랜잭션 유형을 업데이트합니다. BaseFee, ReferenceFeeUnits, ReserveBase 및 ReserveIncrement 필드를 BaseFeeDrops, ReserveBaseDrops 및 ReserveIncrementDrops로 대체합니다.

이 수정안이 없는 경우, 트랜잭션과 ledger 항목의 형식은 동일합니다.

Last updated