Skip to content

Commit

Permalink
Merge pull request #2332 from tequdev/ja-did
Browse files Browse the repository at this point in the history
[JA] DID
  • Loading branch information
mDuo13 authored Jan 10, 2024
2 parents db5a32d + 5c65e25 commit 9c103ce
Show file tree
Hide file tree
Showing 7 changed files with 280 additions and 11 deletions.
82 changes: 82 additions & 0 deletions content/@i18n/ja/concepts/accounts/decentralized-identifiers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
html: decentralized-identifiers.html
parent: accounts.html
blurb: Decentralized identifiers enable verifiable, decentralized digital identities.
status: not_enabled
labels:
- DID
---
# 分散型ID

_([DID Amendment][] :not_enabled: が必要です。)_

分散型ID(DID)は、検証可能なデジタルIDを可能にするWorld Wide Web Consortium(W3C)によって定義された新しいタイプの識別子です。DIDはDID所有者の完全な管理下にあり、中央管理レジストリ、IDプロバイダ、認証局から独立しています。

DIDの主な基本原則は以下の通りです。

- **分散型:** 中央の発行機関がDIDを管理することがないため、所有者はDIDを更新、解決、または無効化することができます。

- **暗号的に検証可能:** DIDは暗号証明によって検証されるため、改ざんが不可能で安全です。

- **相互運用性:** DIDは、W3CのDID規格を認識するあらゆるソリューションに対してオープンです。つまり、DIDは様々なデジタルトランザクションやインタラクションの認証や信頼の確立に使用することができます。

**注記:** XRP LedgerにおけるDIDの実装は、[DID v1.0仕様](https://www.w3.org/TR/did-core/)の仕様に準拠しています。


## 仕組み

1. XRPLアカウント保有者は、アカウントによって管理されるDIDを生成します。
2. DIDはW3C仕様で定義されたDIDドキュメントと関連付けられます。
3. DIDは次のようなデジタルタスクに使用されます:
- デジタル文書への署名
- 安全なオンライントランザクション。
- Webサイトへのログイン
4. 検証者は、対象者の身元を確認するために、DIDからそのドキュメントへ解決します。


## DIDドキュメント

DIDドキュメントには、記述された対象の身元を暗号的に検証するために必要な情報が含まれます。サブジェクトは、人、組織、または物であってもかまいません。たとえば、DIDドキュメントには、DIDサブジェクトが自身を認証し、DIDの関連を証明するために使用できる暗号化公開鍵を含めることができます。

**Note:** DIDドキュメントは通常、JSONまたはJSON-LDのフォーマットにシリアライズされます。

XRP Ledgerでは、DIDをDIDドキュメントに関連付ける方法がいくつか存在します。

1. IPFSやSTORJのような他の分散ストレージネットワークに保存されているドキュメントを指す`DID`オブジェクトの`URI`フィールドにドキュメントへの参照を保存します。
2. 最小限のDIDドキュメントを`DID`オブジェクトの`DIDDocument`フィールドに格納します。
3. DIDとその他の利用可能な公開情報から生成された最小限の _暗黙的な_ DIDドキュメントを使用します。
**注記:** より単純なユースケースでは、署名と単純な認証トークンのみが必要な場合があります。レジャー上に明示的にDIDドキュメントが存在しない場合、代わりに暗黙的なドキュメントが使用されます。たとえば、`did:xrpl:1:0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020`の暗黙のDIDドキュメントでは、単一のキー`0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020`だけでDIDドキュメントの変更を承認したり、DIDの名前で署名に署名したりできます。


### XRPL DIDドキュメントの例

```json
{
"@context": "https://w3id.org/did/v1",
"id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
"publicKey": [
{
"id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn#keys-1",
"type": ["CryptographicKey", "EcdsaKoblitzPublicKey"],
"curve": "secp256k1",
"expires": 15674657,
"publicKeyHex": "04f42987b7faee8b95e2c3a3345224f00e00dfc67ba882..."
}
]
}
```

DIDドキュメントの主要なプロパティの詳細については[Decentralized Identifiers (DIDs) v1.0](https://www.w3.org/TR/did-core/#core-properties)をご覧ください。


## プライバシーとセキュリティの懸念

- XRPLアカウントの秘密鍵を管理する人は誰でも、DIDとそれが解決するDIDドキュメントへの参照を管理します。秘密鍵が漏洩しないように注意してください。
- DIDドキュメントにはどのような内容でも含めることができますが、検証方法とサービスポイントに限定すべきです。XRPL上のDIDは誰でも解決できるので、個人情報を含めるべきではありません。
- IPFSは誰でも分散ネットワークのノードにコンテンツを保存できます。よくある誤解は、誰でもそのコンテンツを編集できるということです。しかし、IPFSのコンテンツアドレス指定可能性は、編集されたコンテンツがオリジナルとは異なるアドレスを持つことを意味します。どんなエンティティでもXRPLアカウントの`DIDDocument`または`URI`フィールドでアンカーされたDIDドキュメントをコピーすることはできますが、対応する`DID`オブジェクトを作成した秘密鍵をコントロールしない限り、ドキュメント自体を変更することはできません。


<!--{# common link defs #}-->
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
{% include '_snippets/rippled_versions.md' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
html: did.html
parent: ledger-entry-types.html
blurb: 分散型ID(DID)の定義と詳細
labels:
- DID
status: not_enabled
---
# DID
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L330-L341 "ソース)

_([DID Amendment][] :not_enabled: が必要です。)_

`DID`のレジャーエントリは、単一の[DID](decentralized-identifiers.html)への参照、またはそれに関連するデータを保持します。


## DID JSONの例

```json
{
"Account": "rpfqJrXg5uidNo2ZsRhRY6TiF1cvYmV9Fg",
"DIDDocument": "646F63",
"Data": "617474657374",
"Flags": 0,
"LedgerEntryType": "DID",
"OwnerNode": "0",
"PreviousTxnID": "A4C15DA185E6092DF5954FF62A1446220C61A5F60F0D93B4B09F708778E41120",
"PreviousTxnLgrSeq": 4,
"URI": "6469645F6578616D706C65",
"index": "46813BE38B798B3752CA590D44E7FEADB17485649074403AD1761A2835CE91FF"
}
```

## DIDのフィールド

[共通フィールド][]に加えて、{{currentpage.name}}エントリは以下のフィールドを使用します。

| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:--------------------|:----------|:-----------|:------|--------------|
| `Account` | 文字列 | AccountID | はい | DIDを管理するアカウント。 |
| `DIDDocument` | 文字列 | Blob | いいえ | DIDに関連付けられたW3C規格のDIDドキュメント。`DIDDocument`フィールドの有効性はチェックされず、最大長は256バイトに制限されます。 |
| `Data` | 文字列 | Blob | いいえ | DIDに関連付けられたID情報の公開証明。`Data`フィールドの有効性はチェックされず、最大長は 256 バイトに制限されます。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 文字列`DID`にマップされる値`0x0049`は、このオブジェクトがDIDオブジェクトであることを示します。 |
| `OwnerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成されている場合に、送信者のオーナーディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | このオブジェクトを最近変更したトランザクションの識別ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含むレジャーインデックス。 |
| `URI` | 文字列 | Blob | いいえ | 対応するDIDドキュメントまたはDIDに関連付けられたデータを指すユニバーサルリソース識別子。このフィールドにはHTTP(S)URLまたはIPFS URIを指定できます。このフィールドの有効性はチェックされず、最大長は256バイトに制限されます。 |


## {{currentpage.name}}の準備金

`{{currentpage.name}}`オブジェクトを作成したアカウントには、1つの所有者準備金が発生します。


## {{currentpage.name}}のフラグ

`{{currentpage.name}}`エントリにはフラグが定義されていません。


## DID IDのフォーマット

`DID`エントリのIDは以下の値の[SHA-512Half][]を順番に連結したものです:

1. `DID`のスペースキー(`0x0049`).
2. DIDを管理するAccountID。


<!--{# common link defs #}-->
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
{% include '_snippets/rippled_versions.md' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
html: diddelete.html
parent: transaction-types.html
blurb: DIDを削除する。
labels:
- DID
status: not_enabled
---
# DIDDelete

[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/DID.cpp "ソース")

_([DID Amendment][] :not_enabled: が必要です。)_

指定した`Account`フィールドに関連付けられている[DIDレジャーエントリ](did.html)を削除します。

**注記:** このトランザクションは[共通フィールド][]のみ利用します。


## {{currentpage.name}} JSONの例

```json
{
"TransactionType": "DIDDelete",
"Account": "rp4pqYgrTAtdPHuZd1ZQWxrzx45jxYcZex",
"Fee": "12",
"Sequence": 391,
"SigningPubKey":"0293A815C095DBA82FAC597A6BB9D338674DB93168156D84D18417AD509FFF5904",
"TxnSignature":"3044022011E9A7EE3C7AE9D202848390522E6840F7F3ED098CD13E..."
}
```


## エラーケース

すべてのトランザクションで発生する可能性のあるエラーの他に、{{currentpage.name}}トランザクションでは以下の[トランザクション結果コード](transaction-results.html)が発生する可能性があります:

| エラーコード | 説明 |
|:--------------------|:---------------------------------------------|
| `tecNO_ENTRY` | アカウントはDIDを保有していません。 |


<!--{# common link defs #}-->
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
{% include '_snippets/rippled_versions.md' %}
58 changes: 58 additions & 0 deletions content/@i18n/ja/references/protocol/transactions/types/didset.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
html: didset.html
parent: transaction-types.html
blurb: DIDを作成または更新します。
labels:
- DID
status: not_enabled
---
# DIDSet

[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/DID.cpp "ソース")

_([DID Amendment][] :not_enabled: が必要です。)_

新しい[DIDレジャーエントリ](did.html)を作成したり、既存の項目を更新したりします。


## {{currentpage.name}} JSONの例

```json
{
"TransactionType": "DIDSet",
"Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
"Fee": "10",
"Sequence": 391,
"URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469",
"Data": "",
"SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020"
}
```

{% include '_snippets/tx-fields-intro.ja.md' %}

| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:--------------|:---------|:-----------|:------|:----|
| `Data` | 文字列 | Blob | いいえ | DIDに関連付けられたID情報の公開証明。 |
| `DIDDocument` | 文字列 | Blob | いいえ | DIDに関連付けられたDIDドキュメント。 |
| `URI` | 文字列 | Blob | いいえ | DIDに関連付けられたデータを指すユニバーサルリソース識別子 |

`DIDSet`トランザクションを送信するときには`Data``DIDDocument``URI`のいずれかを含める必要があります。この3つのフィールドが欠けていると、トランザクションは失敗します。

**注記:** 既存のDIDレジャーエントリから`Data``DIDDocument``URI`フィールドを削除するには、そのフィールドを空文字列として設定します。


## エラーケース

すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。

| エラーコード | 説明 |
|:--------------------|:---------------------------------------------|
| `tecEMPTY_DID` | トランザクションによって空のDIDレジャーエントリを作成しています。更新によって`Data``DIDDocument``URI`フィールドが削除されていないか確認してください。 |
| `temEMPTY_DID` | トランザクションが不正で、DID情報がありません。`Data``DIDDocument``URI`フィールドのいずれかを含めてください。 |


<!--{# common link defs #}-->
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
{% include '_snippets/rippled_versions.md' %}
18 changes: 9 additions & 9 deletions content/@i18n/ja/resources/known-amendments.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,20 +112,20 @@ labels:
| Amendment | DID |
|:-------------|:----|
| Amendment ID | DB432C3A09D9D5DFC7859F39AE5FF767ABC59AED0A9FB441E83B814D8946C109 |
| Status | Open for Voting |
| Default Vote (Latest stable release) | No |
| Pre-amendment functionality retired? | No |
| ステータス | 投票中 |
| デフォルトの投票(最新の安定版) | いいえ |
| Amendment前の機能は廃止? | いいえ |

Adds to the ledger Decentralized Identifier (DID) functionality that conforms to the [World Wide Web Consortium](https://www.w3.org/press-releases/2022/did-rec/) standard. DIDs provide a digital identity, not dependent on a centralized authority and controlled by the DID subject.
[World Wide Web Consortium](https://www.w3.org/press-releases/2022/did-rec/)標準に準拠した分散アイデンティティ(DID)機能を追加します。DIDは、中央集権的な機関に依存せず、DID主体によって管理されるデジタルIDを提供します。

Adds new transactions:
次の新しいトランザクションを追加します。

- DIDDelete - Delete the DID associated with your XRPL account.
- DIDSet - Create a new DID or update an existing one.
- DIDDelete - XRPLアカウントに関連付けられたDIDを削除します。
- DIDSet - 新しいDIDを作成するか、既存のDIDを更新します。

Adds a new `DID` ledger entry type.
新しい`DID`レジャーエントリタイプを追加します。

Adds several new transaction result codes.
いくつかの新しいトランザクション結果コードを追加します。


### AMM
Expand Down
4 changes: 2 additions & 2 deletions content/references/protocol/transactions/types/diddelete.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Delete the [DID ledger entry](did.html) associated with the specified `Account`

```json
{
"TransactionType": "DIDDelete",
"TransactionType": "DIDDelete",
"Account": "rp4pqYgrTAtdPHuZd1ZQWxrzx45jxYcZex",
"Fee": "12",
"Sequence": 391,
Expand All @@ -43,4 +43,4 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac
<!--{# common link defs #}-->
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
{% include '_snippets/rippled_versions.md' %}
{% include '_snippets/rippled_versions.md' %}
12 changes: 12 additions & 0 deletions dactyl-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1369,6 +1369,9 @@ pages:
- md: concepts/accounts/decentralized-identifiers.md
targets:
- en

- md: "@i18n/ja/concepts/accounts/decentralized-identifiers.md"
targets:
- ja


Expand Down Expand Up @@ -2494,6 +2497,9 @@ pages:
- md: references/protocol/ledger-data/ledger-entry-types/did.md
targets:
- en

- md: "@i18n/ja/references/protocol/ledger-data/ledger-entry-types/did.md"
targets:
- ja

- md: references/protocol/ledger-data/ledger-entry-types/directorynode.md
Expand Down Expand Up @@ -2741,11 +2747,17 @@ pages:
- md: references/protocol/transactions/types/diddelete.md
targets:
- en

- md: "@i18n/ja/references/protocol/transactions/types/diddelete.md"
targets:
- ja

- md: references/protocol/transactions/types/didset.md
targets:
- en

- md: "@i18n/ja/references/protocol/transactions/types/didset.md"
targets:
- ja

- md: references/protocol/transactions/types/escrowcancel.md
Expand Down

0 comments on commit 9c103ce

Please sign in to comment.