> For the complete documentation index, see [llms.txt](https://docs.polysmartchain.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.polysmartchain.com/ri-ben-yu/burokkuchnfandshon/akaunto.md).

# アカウント

PolySmartChainアカウントは、PolySmartChainでトランザクションを送信できるPSC残高のあるエンティティです。アカウントはユーザーが制御することも、スマートコントラクトとして展開することもできます。

### アカウント**の種類** <a href="#types-of-account" id="types-of-account"></a>

PolySmartChainには2つのアカウントタイプがあります。

* Externally Held - 秘密鍵の所有者による制御
* Contracts - コードによって制御され、ネットワーク上に展開されるスマートコントラクトの一種。[スマート](https://ethereum.org/en/developers/docs/smart-contracts/)コントラクトについて学びます。

どちらのアカウントタイプでも、次のことができます:

* PSCとトークンの受信、保持、送信
* 展開されたスマートコントラクトとの対話

#### **主な違い** <a href="#key-differences" id="key-differences"></a>

**Externally Held**

* アカウントの作成は無料です
* トランザクションを開始できます
* すべての外部アカウント間で取引できるのはPSCとトークンのみです

**Contracts**

* ネットワークストレージスペースを使用する必要があるため、契約の作成に関連するコストがあります
* トランザクションは、受信したときにのみ送信できます
* 外部アカウントから契約アカウントに開始されたトランザクションは、トークンの転送や新しい契約の作成など、さまざまなアクションを実行できるコードをトリガーできます。

### **アカウントを理解する** <a href="#an-account-examined" id="an-account-examined"></a>

PolySmartChainアカウントには、次の4つのフィールドがあります：

* `nonce` – アカウントから送信されたトランザクションの数を示すカウンター。これにより、トランザクションが1回だけ処理されるようになります。契約アカウントでは、この数はそのアカウント用に作成された契約の数を表します。
* `balance` – このアドレスにあるWeiの数。魏はイーサリアムのカウントの単位であり、各ETHには1e+18魏があります。
* `codeHash` - このハッシュは、PolySmartChain仮想マシン（EVM）のアカウントコードを表します。契約アカウントには、さまざまな操作を実行できるコードがプログラムされています。アカウントがメッセージ呼び出しを受信すると、このEVMコードが実行されます。他のアカウントフィールドとは異なり、変更することはできません。すべてのコードスニペットは、後で取得できるように、対応するハッシュの下でステータスデータベースに保存されます。このハッシュはcodeHashと呼ばれます。すべての外部アカウントの場合、codeHashフィールドは空の文字列のハッシュです。
* `storageRoot` – ストレージハッシュと呼ばれることもあります。Merkle Patriciaトライルートノードの256ビットハッシュは、アカウントの保存されたコンテンツをエンコードし（256ビット整数値マッピング）、256Keccak256ビットハッシュからマップされたビット整数キーとしてTrieとしてエンコードされます。 RLPでエンコードされた256ビット整数値。このTrieは、このアカウントに保存されているコンテンツのハッシュをエンコードします。これはデフォルトでは空です。

![](https://ethereum.org/static/19443ab40f108c985fb95b07bac29bcb/302a4/accounts.png)

### Externally held の アカウントとキーペア <a href="#externally-owned-accounts-and-key-pairs" id="externally-owned-accounts-and-key-pairs"></a>

アカウントは、公開鍵と秘密鍵の暗号化ペアで構成されています。それらは、トランザクションが実際に送信者によって署名されたことを証明し、偽造を防ぐのに役立ちます。秘密鍵は、トランザクションに署名するために使用する鍵であるため、アカウントに関連付けられた資金の管理を保護します。あなたは実際に暗号通貨を保持することはありません、あなたは秘密鍵を保持します-資金は常にPolySmartChainの本にあります。

これにより、トランザクションの送信者をいつでも確認できるため、悪意のある参加者が偽のトランザクションをブロードキャストするのを防ぐことができます。

アリスが自分のアカウントからボブのアカウントにPSCを送信する場合、アリスはトランザクションリクエストを作成し、確認のためにネットワークに送信する必要があります。イーサネットで公開鍵暗号化を使用することにより、アリスは最初にトランザクション要求を開始したことを証明できます。暗号化を行わないと、悪意のある攻撃者であるイブは、「アリスのアカウントからイブのアカウントに5PSCを送信する」ようなリクエストを公開するだけで済みます。そして、それがアリスから来たのではないことを誰も証明することはできません。

### アカウントの作成 <a href="#account-creation" id="account-creation"></a>

アカウントを作成する場合、ほとんどのライブラリはランダムな秘密鍵を生成します。

秘密鍵は64個の16進文字で構成されており、パスワードを使用して暗号化して保存できます。

例えば：

`fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f`

[楕円曲線デジタル署名アルゴリズム](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm)を使用して、秘密鍵から公開鍵を生成します。公開鍵のKeccak-256ハッシュの最後の20バイトを取得し0x、チェックサムの前に追加することで、アカウントの公開アドレスを取得できます。

以下は、GPSCを使用してコンソールでアカウントを作成する例です：

```
1> personal.newAccount()2Passphrase:3Repeat passphrase:4"0x5e97870f263700f46aa00d967821199b9bc5a120"5
6> personal.newAccount("h4ck3r")7"0x3d80b31a78c30fc628f20b2c89d7ddbf6e53cedc"8
```

秘密鍵から公開鍵を取得することは可能ですが、公開鍵から秘密鍵を取得することはできません。**これは、名前がPRIVATE**を示唆しているように、秘密鍵を安全に保つことが重要であることを意味します。

メッセージとトランザクションに署名し、署名を出力するには、秘密鍵が必要です。その後、他の人は署名を使用して公開鍵を取得し、メッセージの作成者であることを証明できます。アプリケーションでは、javascriptライブラリを使用してトランザクションをネットワークに送信できます。

### 契約アカウント <a href="#contract-accounts" id="contract-accounts"></a>

契約アカウントには、42文字で構成される16進アドレスもあります:

例えば:

`0x06012c8cf97bead5deae237070f9587f8e7a266d`

コントラクトアドレスは通常、コントラクトがPolySmartChainブロックチェーンにデプロイされるときに指定されます。アドレスは、作成者のアドレスと作成者のアドレスから送信されたトランザクションの数（「nonce」）から生成されます。

### 財布に注意 <a href="#a-note-on-wallets" id="a-note-on-wallets"></a>

アカウントはウォレットとは異なります。アカウントは、イーサリアムアカウントのユーザー所有のキーとアドレスのペアです。ウォレットは、PolySmartChainアカウントとのやり取りを可能にするインターフェイスまたはアプリケーションです。

#### リソースの拡大

{% embed url="<https://youtu.be/QJ010l-pBpE>" %}
