banner
[面包]MrTwoC

[面包]MrTwoC

你好,欢迎来到这个基于区块链的个人博客 名字:面包 / MrTwoc 爱好:跑步(5/10KM)、咖啡、游戏(MMORPG、FPS、Minecraft、Warframe) 兴趣方向:Rust、区块链、网络安全、量子信息(量子计算)、游戏设计与开发
bilibili
steam
email
github

Solidity.1. Ethereumのコアコンセプト

https://decert.me/tutorial/solidity/intro

Solidity は、Ethereum プラットフォーム向けに設計されたプログラミング言語です。

1 アカウント#

  1. 外部所有者アカウント(EOA)
  2. コントラクトアカウント

特徴:
アドレス形式は同じで、20 バイトの 16 進数です。
トランザクションは外部アカウントからのみ開始でき、すべてのガス(手数料)は外部アカウントから支払われます。

2 アカウントの状態#

4 つの基本的な構成要素:
nonce:
2 つのタイプがあります。1 つはアカウントのトランザクション数、もう 1 つはプルーフオブワークの nonce です(プルーフオブワークを満たすランダムな数値を計算するために使用されます)。
EOA:このアカウントから送信されたトランザクションの番号
コントラクトアカウント:このアカウントで作成されたコントラクトの番号
balance:
保有している Ether の残高の量、単位:Wei、1 Ether = 10^18 Wei、Ether の取引時には残高が変化します。EOA とコントラクトアカウントの両方に残高があります。コントラクトアカウントはコードで管理された資金を使用し、外部所有者アカウントは秘密鍵で署名して資金を使います。コントラクトアカウントはコードを保存し、外部所有者アカウントは保存しません。
storageRoot:
Merkle Patricia ツリーのルートハッシュ値。Merkle ツリーは、このアカウントの保存内容のハッシュ値をエンコードします。デフォルトでは空の値です。
codehash:
アカウントのコードのハッシュ値。
コントラクトアカウント:コントラクトコードがハッシュ計算され、ハッシュコードとして保存されます。
EOA:空の文字列のハッシュ値
上記の内容をまとめた視覚的な例:
image

3 Ether#

Ethereum の通貨で、法定通貨の異なる額面に似ています。ユーザーが最もよく使用するのは ether で、開発者がよく使用するのは wei です。wei は Ether の最小単位であり、finney と szabo という 2 つの単位もあります。wei の派生単位には、Kwei、Mwei、Gwei があります。

1 ether = 10^3 finney(つまり1000 finney)
1 ether = 10^6 szabo
1 ether = 10^18 wei
1 Gwei = 10^9 wei
1 Mwei = 10^6 wei

4 Ethereum 仮想マシン(EVM)#

スマートコントラクトと Dapp を実行するための仮想コンピュータで、EVM は Ethereum のコアコンポーネントの 1 つであり、スマートコントラクトコードの処理と実行を担当しています。
動作原理は従来の仮想マシンと似ており、ブロックチェーンとスマートコントラクトに特化しています。それは Ethereum 上の自動契約です。
スマートコントラクトの実行:スマートコントラクトのバイトコードをメモリにロードし、規定のルールに従って実行します。
ガス:悪意のあるコードによるリソースの無限ループを防止します。

5 Ethereum クライアント#

Ethereum ネットワークに接続するノードプログラムで、EVM はクライアントの重要な構成要素であり、ノードプログラムを実行することで Ethereum ネットワークのノードの 1 つになることができます。
2 つのレベル
実行レベル:
トランザクションの実行を担当し、スマートコントラクトのデプロイと実行を含みます。
コンセンサスレベル:
コンセンサスアルゴリズム、つまりブロックの生成とトランザクションの処理を担当します。
実行レベルのクライアント:
Geth(公式の Go 言語実装)、Nethermind(C# 実装)、Erigon(Go 言語実装)。これらのクライアントは、Ethereum ネットワーク上のスマートコントラクト操作とトランザクションの実行を処理するために使用されます。
コンセンサスレベルのクライアント:
Prysm(Go 言語実装)、Lighthouse(Rust 実装)。これらのクライアントは、コンセンサスプロセスに参加し、ブロックチェーンネットワークの一貫性と安全性を確保するために使用されます。

6 ウォレット#

アカウントを管理する重要なツールであり、ウォレットを使用してアカウントを作成し、トランザクションに署名し、ブロックチェーンノードに接続してトランザクションを実行することができます。ウォレット自体はユーザーの資産を保存するのではなく、これらの資産へのアクセスキーと署名機能を管理します。
一般的なモバイルウォレット:ImToken、Trust Wallet
Web ウォレット:Metamask、Phantom(Solana)

7 Gas メカニズム#

悪意のある行動を防ぐために導入された、操作の実行に必要な作業量を測定する単位です。手数料に相当します。

8 Ethereum トランザクション#

3 つのタイプがあります。

  1. 通常のトランザクション
  2. コントラクトの作成
  3. コントラクト関数の呼び出し
{
  "to": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
  "value": 0.0005,
  "data": "0x" // メッセージやコメントを含めることができます
}
これは非常に単純な通常のトランザクションで、指定したアドレスに一定量のEtherを送金します。必要に応じて、トランザクションにメッセージを含めることもできます。
{
  "to": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85", // コントラクトアドレス
  "value": 0.0,
  "data": "0x06661abd"
}
スマートコントラクト関数の呼び出し情報は、DATAフィールドにパッケージ化され、呼び出すスマートコントラクトのアドレスにこのトランザクション情報を送信します。前述のcount()関数を呼び出す場合を想定しています。
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。