読み取り時間: 4 分
あらゆる分野での分散化は、これからの時代の新しいコードです。 DApps は、データのプライバシーと所有権の性質を融合させて、アプリの操作方法に革命を起こすためにここにあります。
ブログの深みに入りましょう。
DAppとは何ですか?
DApps は、ブロックチェーンを使用して分散ネットワークを介してデータを処理し、トランザクションを実行する分散型アプリケーションです。 集中型アプリとは異なり、DApps はピアツーピア ネットワークによって運用されます。
開発者が DApp のコードベースをリリースすると、その上にいくつかのアプリを構築できます。 単一の権限がないため、P2P ネットワークがそれらを実行するため、単一障害点はありません。
DApp は、Web アプリケーション、ゲーム & エンターテイメント、ソーシャル メディア アプリなどの多数のアプリケーションの作成を支援します。
DAppの重要な特徴
ここでは、DApp の主要な属性に関するいくつかの指針を示します。
- これらはオープンソース コードであり、ユーザーが制御できます。 これは、変更または新しい追加が投票され、実装されることを意味します。
- 分散化は、すべての詳細が公的に分散された元帳に保持される中核的な側面です。
- DApps は、プラットフォーム固有のトークンを使用して、参加またはマイニングに対してユーザーに報酬を与えます。
DAppsのご利用に関するお知らせ
による報告によると DAppRadar、分散型アプリケーションに関与するユーザーの数は毎年 396% 増加しており、現在は 2.4 万人に達しています。
そのうち、ゲーム DApps は 50 年の第 1 四半期のユーザー アクティビティの 2022% 以上を占め、NFT は約 12 億ドルの膨大なコレクションを作成しました。
DApp コーディングのセキュリティ問題
DApp の全体的な考え方を理解したところで、DApp に関連する一般的な技術的エラーのいくつかを調べてみましょう。
署名チェック: でのチェック形式「case_=> true」の使用 @検証者 DApp コーディングの機能は、転送トランザクションを禁止し、他のトランザクション タイプを許可します。
{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE EXPRESSION #-}
{-# SCRIPT_TYPE ACCOUNT #-}
match (tx) {
case t:TransferTransaction => false
case _ => true # NEVER DO THIS!
}
ただし、このタイプのコードを使用すると、すべてのユーザーが送金トランザクション以外のトランザクションを実行できます。 署名を追加せずに「senderPublicKey」フィールドに公開鍵を入力することで、すべてのユーザーがトランザクションを実行できるようになります。
{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE EXPRESSION #-}
{-# SCRIPT_TYPE ACCOUNT #-}
match (tx) {
case t:TransferTransaction => false
case _ => sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublikey)
}
したがって、前述の脆弱性を回避するには、DApp コーディングに署名チェックが存在することを確認することが重要です。
キー入力: DApp での操作には、キーと値のストレージが含まれます。 よくある間違いは、開発者が XNUMX つのキーに書き込み、別のキーからそれを読み取ることです。 そのため、キーの書き込みには注意が必要です。
let NONE = "NONE"
func keyVoteByAddress(votingId: Int, address: String) = "voting_" + votingId + "_vote_" + address
@Callable(i)
func vote(id: Int) => {
let voteKey = keyVoteByAddress(id, i.caller.toBase58String())
let vote = getString(this, voteKey).valueOrElse(NONE)
# alternative option
let vote = match getString(this, voteKey){
case s: String => s
case _ => NONE
}
if (vote == NONE) then ...
else ...
}
もう XNUMX つの間違いは、デフォルト値を指定する代わりに、value() や extract() などの変数から値を読み取ろうとする試みが推奨されないことです。
管理された取引: DApp 操作には、順番に実行されるいくつかの相互に依存する操作が含まれます。 このような場合、最初のトランザクションがブロックに追加された後に一度確認を受信する関数「waitForTxWithNConfirmations」を使用すると安全です。
DApps に関する一般的な問題
DApps の流動性レベルが低い: 分散型アプリケーションの流動性レベルが低いと、予想される価格でトークンを売買することが難しくなり、スリッページが発生します。 スリッページとは、予想価格と実行価格の差であり、資金の損失につながる可能性があります。
ユーザーは、取引量に基づいて資産の流動性を追跡し、トークンを売買する前に賢明な決定を下すことができます。
セキュリティ違反または失敗: DApps はスマート コントラクトを通じて機能し、コーディングにバグがある DApps はハッカーにとって理想的なターゲットです。 極端な市場状況やコードの悪用により、DApps の価値の下落や資金の損失は避けられません。
サードパーティ企業によるコードの監査は、この問題を克服する上でより大きな効果があります。
フィッシング DApp: DApp のコーディングに侵害があると、公式サイトでフィッシング リンクが配布されます。 知らないうちにクリックすると、ユーザーのウォレットからすべての資金が流出します。
したがって、ウォレットから資金を追加したり、ウォレット情報を入力したりする前に、URL を再確認してください。
2022 年の DApp ハッキングと詐欺の状況
DApps の欠点は、ハッキングに対して脆弱であるという事実です。 DAppRadar が公開したデータによると、DApp 詐欺だけで 1.2 億ドルの損失が発生しました。
主なハッキング イベントのハイライトは次のとおりです。
Ronin ブリッジのハック: ハッカーはバリデータ ノードにアクセスして、偽のトランザクションを偽造することができました。 アクシーインフィニティの 600 億ドルの損失につながった Ronin ブリッジ ネットワーク。
ワームホール プロトコル: ハッカーは、ワームホール プロトコル コードのセキュリティ上の欠陥を悪用し、325 億 XNUMX 万ドルの損失をもたらしました。
DAppセキュリティを採用するための安全で予防的な方法を維持する方法は次のとおりです
セキュリティ上の欠陥を克服することで、問題の大部分が解決されます。 DApps. 並べ替える方法はいくつかあります。
- 監査サービスを利用する: などの監査法人による徹底したコーディング分析 クイルオーディッツ 地上からバグを排除します。
- 侵入テスト: 侵入テストは、隠れた/ノードの脆弱性の発見、API のテスト、および新しい攻撃経路の発見において優位に立つことができます。
DApp セキュリティの一般的な予防措置
- ウォレットから資金にアクセスするためのプライベート シード フレーズの機密性を維持する
- DApp Web サイトの信頼性と正当性の検証
- 文法上の誤りのあるリンクやテキストには注意してください。
114 ビュー