「ディームル」の愛称で知られるドミトリー・ピチュリンがゲームの勝者となった
で勝つには
彼が作成したボットはドミトリーに勝利をもたらしました
あなた自身について少し教えてください。 職業はなんですか? ブロックチェーン技術に興味を持ったのはいつですか?
私は情報セキュリティ分野の開発者です。 私は 2017 年の誇大宣伝に乗ってブロックチェーンに興味を持ち、テクノロジーを理解し、そのテクノロジーに留まりました。
ゲームに参加する主な動機は何ですか?
まず第一に、技術的な興味です。 もちろん、ゲームがどのように機能するかを理解して、脆弱性を見つけ、ゲームを終了させず、他のプレイヤーを「荒らし」たかったのです。
賞金の使い道はもう決めましたか? まだ使わないと決めた場合、どうやって保管しますか?
賞金をどうすればいいのか分かりませんでした。 予想していなかったので予定はありません。 今のところはこのままになります。 もしかしたらWavesのどこかのプロジェクトに流れてくるかもしれない。
なぜボットを使用してゲームに参加しようと思ったのですか? Patrollo のアイデアはどのようにして生まれたのですか? その開発について詳しく教えていただけますか?
脆弱性があってうまくいきませんでした。 私はテストネットワークでゲームを入手し、自分でプレイし、すべてのオプションを試しましたが、すべてが「ハードワイヤード」であることが判明し、契約に脆弱性はありませんでした。 この方法では勝てないことが明らかになりました。
脆弱性はどのように探しましたか? あなたの仮説は何でしたか? サンプルコードを提供していただけますか?
仮説はXNUMXつありました。 まず、データ トランザクション レコードのデータ タイプ チェックに対する攻撃です。 たとえば、不適切なコーディングによりトランザクション ID の再利用チェックがバイパスされると予想していました。 XNUMX つ目は整数オーバーフロー攻撃です。 高さを高すぎるかマイナスに設定して、過去の状態に戻す方法があると考えました。
$tx = $wk->txBroadcast( $wk->txSign( $wk->txData( [ 'heightToGetMoney' => -9223372036854775807 ] ) ) );
脆弱性に対する期待が満たされていないことがわかったとき、どうしましたか?
Tradisys 氏は電報チャットで、ネットワーク上ですべてが静かな間はゲームは永遠に続くが、(ノードの更新や予期せぬフォークなどの) 混乱の中では、優れたボットが出現する可能性が高まると不満を述べました。 そこでチャットで、私は優れたボットを書くという課題を受け入れ、数日後にそれを書きました。 私のフレームワークに基づいて、PHP で Patrollo コードを作成しました
テスト ネットワークでテストし、コードを github に投稿し、メイン ネットワークでボットを起動して忘れていました。
私の Patrollo 構成では、XNUMX つの問題を解決する必要がありました。それは、賭けをできるだけ少なくすることと、できるだけ確実に動作することです。
29 つ目は非常に危険な賭けによって決定され、できれば最後のブロックで決定されます。 結局、ボットを最後から XNUMX 番目のブロックに配置しましたが、さらに XNUMX 秒の遅延が発生しました。 これにより、ゲーム全体で XNUMX 回のベットのみが許可されました。
なぜちょうど 29 秒なのでしょうか? どうやってこの数字にたどり着いたのですか?
徐々に29秒台が出てきました。 最初は遅延はありませんでしたが、最後から 17 番目のブロックで同時ベットのケースがあることに気付きました。つまり、ベットする意味がありませんでした。 その後、遅延が発生しました - 17 秒だったと思いますが、それも役に立ちませんでした。まだ同時ベットがあったためです。 それから私はより多くのリスクを取ることにしましたが、もちろん同時賭けはしないことにしました。 なぜ 29 や 24 などなのでしょうか? ただの素数好き。 25、26、27、28、30、30 - すべての化合物。 XNUMX秒を超えると完全に危険です。
信頼性の問題はどのように解決されましたか?
信頼性は、主に動作ノードを選択するメカニズムによって対処され、程度は低いですが、事前に賭けの転送トランザクションを実行することで、日付トランザクションの賭けがすでにブロックチェーン上の既存のトランザクションを正確に参照するようになりました。
サイクルの各ラウンド中に、構成で指定されたすべてのノードの現在の高さがポーリングされ、現在の高さが最も高いノードが選択され、そのノードとのさらなる対話が行われます。 私の理解では、これはフォーク、可用性の喪失、キャッシュ、およびノード上の起こり得るエラーから保護することになっていました。 この単純な仕組みが勝利につながったという自信がある。
ブロックチェーン ゲームの主な特徴と利点は何だと思いますか? 一般にパブリック ブロックチェーン、特にゲーム開発において Waves ブロックチェーンはどの程度有望ですか?
主な利点は、既知の固定された不変のゲーム ルールに加え、世界中のどこからでもゲームにアクセスできる平等な条件です。
オフチェーンのマネーゲームは廃止されるべきだ。
Waves には豊富な技術機能がありますが、ブロックチェーンに固有のものと特有のニュアンスがあります。 どちらも、既存の開発者ツールにはまだあまり反映されていません。
たとえば、5 ~ 10 件の確認の距離ではなく、リアルタイムでトランザクションに応答しようとすると、まれではあるが発生している現象、つまりトランザクションがブロックからブロックに飛び移ったり、トランザクションが一部のブロックで消失し、他のブロックで出現したりすることを知ることになります。 。 これらはすべて、アプリケーションの速度と信頼性にとって重要であり、一般的な方法で解決する必要がありますが、今のところ、各開発者は自分で必要な信頼性のレベルを達成しています。 もちろん、時間が経てばこれらすべては解決されるでしょうが、現時点では、一般的に、真に分散型ブロックチェーンの動作の詳細に対する一定の、かなり高い参入障壁と恐怖が存在します。
FOMO ゲームは、あなたが知っている他のブロックチェーン ゲームとどう違うのですか? その利点と欠点は何ですか?
これらは長いゲームです。 このようなゲームへの関心は賞金の額に応じて高まり、賞金の額は時間の経過とともに増加します。
理想的には、ゲームが決して終わらないことです。 試合が終わると寂しいですね…
最近私は
はい、時間と興味があれば、同じ手順を実行します。脆弱性分析、テスト ネットワーク、ボット、オープンソースなどで自分自身を試してみます。
最後に、開発者としての計画についてお聞かせください。
私は未解決の問題を解決することに興味がありますが、ブロックチェーンのトピックには未解決の問題がたくさんあります。 これは本当の挑戦です! そして彼は受け入れられました。
出所: habr.com