Merge pull request #3192 from tequdev/ja-pdomains

[JA] translate PermissionedDomains
This commit is contained in:
Rome Reginelli
2025-07-29 09:53:06 -07:00
committed by GitHub
9 changed files with 261 additions and 6 deletions

View File

@@ -9,7 +9,7 @@ Credentials標準の設計は、[W3C Verifiable Credentials標準](https://www.w
_Credentials_ は、レジャーに保存可能な署名付きの声明であり、ユーザのアイデンティティ、法的地位、またはその他の状態を証明することができます。この機能には、XRP Ledger上での資格情報の発行、保存、検証が含まれ、同時にユーザのプライバシーニーズもサポートします。
この機能は、以下の役割を持つ関係者のエコシステムのために設計されています
この機能は、以下の役割を持つ関係者のエコシステムのために設計されています
- 正しい資格情報を持つユーザに特定のアクションや相互作用を制限したい _認証者_
- 基準を満たすユーザに資格情報を提供する _発行者_
@@ -29,13 +29,13 @@ XRP Ledgerに保存された資格情報は、特にDID(分散型識別子)と
## 利用フロー
資格情報の典型的な利用フローには、以下の例で説明するように、異なる役割を持つ3つの関係者が関与します
資格情報の典型的な利用フローには、以下の例で説明するように、異なる役割を持つ3つの関係者が関与します
* Verityは、法的コンプライアンスを確保するために、適切にKYCされたアカウントとのみ相互作用したい規制対象ビジネスです。これによりVerityは _認証者_ となります。なぜなら、どのアカウントが彼らと相互作用できる(認可される)かを設定するからです。
* Isabelは、アカウントを審査し、アカウントが本人であることを証明する資格情報を発行する資格情報発行者です。
* Aliceは、Verityと相互作用したいユーザです。
3者全てにXRP Ledgerアカウントが必要です。フローは以下のように進みます
3者全てにXRP Ledgerアカウントが必要です。フローは以下のように進みます
1. Verityは、認可されたアカウントのみが相互作用できるようにアカウントを設定します。Isabelがアカウントを適切に審査し、関連する資格情報を発行することを信頼しているため、Isabelが発行した資格情報を受け入れるようにアカウントを設定します。
2. Aliceは必要な書類をプライベートに、オフチェーンでIsabelに提出します。

View File

@@ -0,0 +1,39 @@
---
seo:
description: 許可型ドメインの定義と詳細
labels:
- コンプライアンス
- 許可型ドメイン
---
# 許可型ドメイン
許可型ドメインは、XRP Ledgerブロックチェーンのより広いエコシステム内の制御された環境です。ドメインは何もしませんが、許可型DEXや貸付プロトコルなどの機能は、ドメインを使用してアクセスを制限するため、従来の金融機関は、様々なコンプライアンスルールに従って、チェーン上でサービスを提供できます。
ドメインの唯一の設定可能なルールは、[資格情報(Credentials)][Credentials]のセットです。将来のAmendmentは、金融機関が業務を行う地域の法律に従ってコンプライアンスを維持するために必要な制限をカバーするために、新しいおよび異なるタイプのルールを追加することができます。
誰でもドメインを定義できます。その人はそのドメインの所有者になり、設定を更新したり削除したりできます。ドメインの数の制限は、所有者の準備金要件に対して1つのアイテムとしてカウントされるため、レジャーに存在できるドメインの数の制限は、準備金要件のみです。
_([PermissionedDomains amendment][]が必要です {% not-enabled /%})_
{% admonition type="info" name="注記" %}
[Credentials amendment][]も必要です。[PermissionedDomains amendment][]が有効でない場合、PermissionedDomainSetトランザクションは無効とみなされます。
{% /admonition %}
## 許可された資格情報
許可型ドメインには、アクセスを許可する1から10個の資格情報のセットがあります。リストの各項目は、発行者と資格情報の種類によって資格情報を説明します。_少なくとも1つ_ 一致する資格情報を保持するアカウントは、自動的にドメインにアクセスできます。
ドメインは、資格情報と制限されたリソースの間の抽象化レイヤーとして機能します。ドメインの所有者は、制限されたリソース自体を変更せずに、必要な資格情報のリストを更新できます。
[{% inline-svg file="../../../img/permissioned-domain.svg" /%}](../../../img/permissioned-domain.svg "図: 許可型DEXは、IDによって許可型ドメインを指します。ドメインの許可された資格情報は、アクセスを取得するための3つの可能な資格情報を説明します")
ユーザは、ドメインに参加または退出するために申請する必要はありません。トランザクションがドメインによって制限されたリソースへのアクセスを必要とする場合、トランザクションは自動的にアカウントがドメインの許可された資格情報と一致する資格情報を保持しているかどうかを確認し、一致しない場合は失敗します。ユーザの資格情報は、許可されており、有効期限が切れていない必要があります。
## ドメインの用途
現在、許可型ドメインを使用するXRP Ledgerの機能はありません。ただし、ドメインを利用する開発中のAmendmentには次のものがあります。
- 単一資産Vaultと貸付プロトコル
- 許可型DEX
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -0,0 +1,103 @@
---
seo:
description: PermissionedDomainレジャーエントリは、他の機能へのアクセスを制限するために使用される許可型ドメインを表します。
labels:
- コンプライアンス
- 許可型ドメイン
---
# PermissionedDomain
[[ソース]](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/ledger_entries.macro#L451-L461 "ソース")
`PermissionedDomain`レジャーエントリは、単一の[許可型ドメイン][]インスタンスを記述します。[PermissionedDomainSetトランザクション][]を送信することで、許可型ドメインを作成できます。
_([PermissionedDomains amendment][]が必要です {% not-enabled /%})_
## {% $frontmatter.seo.title %}のJSONの例
```json
{
"LedgerEntryType": "PermissionedDomain",
"Fee": "10",
"Flags": 0,
"Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
"OwnerNode": "0000000000000000",
"Sequence": 390,
"AcceptedCredentials": [
{
"Credential": {
"Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
"CredentialType": "6D795F63726564656E7469616C"
}
}
],
"PreviousTxnID": "E7E3F2BBAAF48CF893896E48DC4A02BDA0C747B198D5AE18BC3D7567EE64B904",
"PreviousTxnLgrSeq": 8734523,
"index": "3DFA1DDEA27AF7E466DE395CCB16158E07ECA6BC4EB5580F75EBD39DE833645F"
}
```
<!-- TODO: use a real example above -->
## {% $frontmatter.seo.title %}のフィールド
[共通フィールド](../common-fields.md)に加えて、{% code-page-name /%}エントリには次のフィールドがあります。
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:----------------------|:----------------------|:-------------|:------|:------|
| `AcceptedCredentials` | 配列 | Array | はい | このドメインへのアクセスを許可する1から10個の[AcceptedCredentials](#acceptedcredentialsオブジェクト)オブジェクトのリスト。配列は発行者でソートされて保存されます。 |
| `Owner` | 文字列 - [アドレス][] | AccountID | はい | このドメインの所有者のアドレス。 |
| `OwnerNode` | 文字列 | UInt64 | はい | 所有者ディレクトリが複数のページで構成されている場合、このエントリにリンクする所有者ディレクトリのページを示すヒント。 |
| `PreviousTxnID` | 文字列 - [ハッシュ][] | Hash256 | はい | このエントリを最後に変更したトランザクションの識別ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含む[レジャーのインデックス][Ledger Index]。 |
| `Sequence` | 数値 | UInt32 | はい | このエントリを作成したトランザクションの`Sequence`値。 |
### AcceptedCredentialsオブジェクト
`AcceptedCredentials`配列の各メンバーは、次のネストされたフィールドを持つ内部オブジェクトです。
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:-----------------|:---------------------|:------------------|:----------|--------------|
| `Issuer` | 文字列 - [アドレス][] | AccountID | はい | 資格情報の発行者。 |
| `CredentialType` | 文字列 | Blob | はい | 資格情報の種類。これは、発行者が資格情報を発行するときに設定する1から64バイトの任意の値です。 |
{% admonition type="info" name="注記" %}
通常のJSON形式では、内部オブジェクトは、内部オブジェクトの種類を定義する名前を持つ1つのフィールドを持つオブジェクトでラップされます。この場合、ラッピングフィールドは`Credential`と呼ばれます。
```json
"AcceptedCredentials": [
{
"Credential": {
"Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
"CredentialType": "6D795F63726564656E7469616C"
}
},
// ... 追加のCredential内部オブジェクト ...
]
```
{% /admonition %}
## {% $frontmatter.seo.title %}のフラグ
{% code-page-name /%}エントリには、フラグは定義されていません。
## {% $frontmatter.seo.title %}の準備金要件
{% code-page-name /%}エントリは、所有者の準備金要件に対して1つのアイテムとしてカウントされます。
{% code-page-name /%}エントリは、削除ブロッカーであり、つまり、アカウントが{% code-page-name /%}エントリを所有している場合、アカウントは削除できません。
## {% $frontmatter.seo.title %} IDのフォーマット
{% code-page-name /%}エントリのIDは、次の値を順番に連結した[SHA-512Half][]です。
1. {% code-page-name /%}の名前空間キー(`0x0082`)
2. 所有者のアカウントID
3. 作成した{% code-page-name /%}トランザクションのシーケンス番号
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -0,0 +1,48 @@
---
seo:
description: 許可型ドメインのレジャーエントリを削除する
labels:
- コンプライアンス
- 許可型ドメイン
---
# PermissionedDomainDelete
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PermissionedDomainDelete.cpp "ソース")
所有する[許可型ドメイン][]を削除します。
_([PermissionedDomains amendment][]が必要です {% not-enabled /%})_
## {% $frontmatter.seo.title %}のJSONの例
```json
{
"TransactionType": "PermissionedDomainDelete",
"Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
"Fee": "10",
"Sequence": 392,
"DomainID": "77D6234D074E505024D39C04C3F262997B773719AB29ACFA83119E4210328776"
}
```
<!-- TODO: {% tx-example txid="TODO" /%} -->
{% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%}
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:-----------|:----------------------|:-------------|:------|:-----|
| `DomainID` | 文字列 - [ハッシュ][] | Hash256 | はい | 削除する許可型ドメインのレジャーエントリID。 |
## {% $frontmatter.seo.title %}のフラグ
{% $frontmatter.seo.title %}トランザクションには、フラグは定義されていません。
## エラーケース
すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。
| エラーコード | 説明 |
|:--------------|:--------------------------------------|
| `tecNO_ENTRY` | `DomainID`フィールドで指定された許可型ドメインがレジャーに存在しません。 |
| `temDISABLED` | `PermissionedDomains` amendmentが有効ではありません。 |
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -0,0 +1,63 @@
---
seo:
description: 許可型ドメインを作成または更新する
labels:
- コンプライアンス
- 許可型ドメイン
---
# PermissionedDomainSet
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PermissionedDomainSet.cpp "ソース")
[許可型ドメイン][]を作成するか、所有するドメインを変更します。
_([PermissionedDomains amendment][]が必要です {% not-enabled /%})_
## {% $frontmatter.seo.title %}のJSONの例
```json
{
"TransactionType": "PermissionedDomainSet",
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
"Fee": "10",
"Sequence": 390,
"AcceptedCredentials": [
{
"Credential": {
"Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
"CredentialType": "6D795F63726564656E7469616C"
}
}
]
}
```
<!-- TODO: {% tx-example txid="TODO" /%} -->
{% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%}
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:----------------------|:----------------------|:-------------|:-------|:------------|
| `DomainID` | 文字列 - [ハッシュ][] | Hash256 | いいえ | 変更する既存の許可型ドメインのレジャーエントリID。省略すると、新しい許可型ドメインが作成されます。 |
| `AcceptedCredentials` | 配列 | Array | はい | このドメインへのアクセスを許可する1から10個の[**Accepted Credentialsオブジェクト**](#accepted-credentials-objects)のリスト。リストはソートする必要はありませんが、重複ことはできません。既存のドメインを変更する場合、このリストは既存のリストを置き換えます。 |
{% raw-partial file="/@l10n/ja/docs/_snippets/accepted-credentials-objects.md" /%}
## {% $frontmatter.seo.title %}のフラグ
{% $frontmatter.seo.title %}トランザクションには、フラグは定義されていません。
## エラーケース
すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。
| エラーコード | 説明 |
|:--------------------------|:-----|
| `tecDIR_FULL` | このトランザクションは、新しい許可型ドメインを作成しますが、送信者の所有者ディレクトリがいっぱいです。 |
| `tecINSUFFICIENT_RESERVE` | このトランザクションは、新しい許可型ドメインを作成しますが、送信者が増加分の所有者準備金を満たす十分なXRPを持っていません。 |
| `tecNO_ENTRY` | このトランザクションは、存在しないドメインを変更しようとしました。トランザクションの`DomainID`フィールドを確認してください。 |
| `tecNO_ISSUER` | `AcceptedCredentials`フィールドで指定された発行者の少なくとも1つがXRP Ledgerに存在しません。配列の各メンバーの`Issuer`フィールドを確認してください。 |
| `tecNO_PERMISSION` | このトランザクションは、既存のドメインを変更しようとしましたが、トランザクションの送信者は指定されたドメインの所有者ではありません。 |
| `temDISABLED` | `PermissionedDomains` amendmentが有効ではないか、または`Credentials` amendmentが有効ではありません。 |
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -254,8 +254,10 @@
[PermissionDelegation amendment]: /resources/known-amendments.md#permissiondelegation
[PermissionedDEX amendment]: /resources/known-amendments.md#permissioneddex
[PermissionedDomainSet transaction]: /docs/references/protocol/transactions/types/permissioneddomainset.md
[PermissionedDomainSetトランザクション]: /@l10n/ja/docs/references/protocol/transactions/types/permissioneddomainset.md
[PermissionedDomains amendment]: /resources/known-amendments.md#permissioneddomains
[permissioned domain]: /docs/concepts/tokens/decentralized-exchange/permissioned-domains.md
[許可型ドメイン]: /@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md
[PriceOracle amendment]: /resources/known-amendments.md#priceoracle
[MPToken entry]: /docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md
[MPTokenAuthorize transaction]: /docs/references/protocol/transactions/types/mptokenauthorize.md

View File

@@ -54,7 +54,7 @@ _(Added by the [AMMClawback amendment][].)_
## Error Cases
Besides errors that can occur for all transactions, `AMMClawback` transactions can result in the following [transaction result codes](https://xrpl.org/docs/references/protocol/transactions/transaction-results):
Besides errors that can occur for all transactions, `AMMClawback` transactions can result in the following [transaction result codes](../transaction-results/index.md):
| Error Code | Description |
|:-------------------|:------------|

View File

@@ -38,7 +38,7 @@ There are no flags defined for {% $frontmatter.seo.title %} transactions.
## Error Cases
Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](https://xrpl.org/docs/references/protocol/transactions/transaction-results):
Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md):
| Error Code | Description |
|:--------------|:---------------------------------------------|

View File

@@ -50,7 +50,7 @@ There are no flags defined for {% $frontmatter.seo.title %} transactions.
## Error Cases
Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](https://xrpl.org/docs/references/protocol/transactions/transaction-results):
Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md):
| Error Code | Description |
|:--------------------------|:------------|