ニックネーム「deemru」で知られるDmitry Pichulinは、 TradisysがWavesブロックチェーンで開発したFhloston Paradiseゲームの勝者になりました。
ゲームに勝つために、プレーヤーは60ブロックの期間中に最新の賭けをしなければなりませんでした。別のプレーヤーが賭けをする前に、カウンターをリセットしました。 勝者は他のプレイヤーからすべてのお金を賭けられました。
Dmitryへの勝利は、彼が作成したボットPatrolloによってもたらされました。 Dmitryは1つのWAVESで8回しか賭けなかったため、 4700 WAVES (836300ルーブル)を獲得しました。 インタビューで、Dmitryは自分のボットとブロックチェーンゲームの展望について話しました。
あなた自身について少し教えてください。 何してるの? ブロックチェーン技術に興味を持ったのはいつですか?
私は情報セキュリティの分野の開発者です。 彼は2017年の「誇大広告」でブロックチェーンに来て、テクノロジーを理解し、テクノロジーのために留まりました。
ゲームに参加する主な動機は何になりましたか?
まず第一に、技術的関心。 私はそれがどのように機能するかを理解し、脆弱性を見つけ、ゲームが終了するのを防ぎ、そしてもちろん、他のプレイヤーを「トロール」したかったのです。
賞金の使い方を決めましたか? まだ使わないことに決めた場合、何を保管しますか?
私は勝利で何をすべきかわかりませんでした。 私はそれを期待していなかったので、計画はありません。 それはそのままになりますが。 多分それはWavesのいくつかのプロジェクトに流れ込むでしょう。
ボットを使用してゲームに参加することにしたのはなぜですか? パトローロのアイデアはどのようにして生まれましたか? その開発について詳しく教えてください。
脆弱性では機能しませんでした。 テストネットワークでゲームを「ピックアップ」し、自分でプレイし、すべてのオプションを試しましたが、すべてが「ハード」であることが判明し、契約に脆弱性はありませんでした。 この方法では勝てないことが明らかになりました。
脆弱性をどのように探しましたか? あなたの仮説は何でしたか? サンプルコードを教えていただけますか?
2つの仮説がありました。 まず、データタイプに対する攻撃がデータトランザクションレコードをチェックインします。 たとえば、コーディングの悪さがトランザクションIDの再利用のチェックを回避することを望んでいました。 2つ目は、整数オーバーフローに対する攻撃です。 高すぎたり負の高さに設定したり、過去にいるようにしようとする方法があると考えました。
$ tx = $ wk-> txBroadcast($ wk-> txSign($ wk-> txData(['heightToGetMoney' => -9223372036854775807])));
脆弱性に対する期待が確認されていないことを見たとき、あなたは何をしましたか?
彼の電報チャットで、Tradisysは、ネットワーク上のすべてが静かである間、ゲームは永遠であるが、混乱(ノードの更新または予期しない分岐)で、良いボットの可能性が増加していると嘆きました。 そこで、チャットで、私は挑戦を受け入れました-良いボットを書くこと-私は数日でやりました。
WavesKitフレームワークに基づいて、PHPでPatrolloコードを作成しました。このコードでは、ブロックチェーンを操作するためのすべての最高のテクニックを修正しようとしています。
テストネットワークで作業を確認し、githubにコードを投稿し、メインネットワークでボットを起動して、それを忘れました。
Patrolloの私の構成は、2つの問題を解決することになっています。ベットをできるだけ少なくし、可能な限り信頼性の高い仕事をすることです。
最初は非常に危険な賭けによって、できれば最後のブロックで決定されます。 その結果、ボットを最後から2番目のブロックに配置しましたが、29秒の遅延が追加されました。 これにより、ゲーム全体でたった8ベットしかできませんでした。
なぜ正確に29秒なのでしょうか? この番号にどのように到着しましたか?
29秒が徐々に現れました。 最初は遅延はありませんでしたが、最後から2番目のブロックに同時にベットするケースがあることに気付きました。つまり、ベットする意味がありませんでした。 その後、遅延がありました-17秒であるように見えますが、それも助けにはなりませんでした:まだ同時に賭けがありました。 それから、私はリスクをより厳しく取ることに決めましたが、同時の賭けをしないことは確かです。 なぜ17、29など? 素数の愛。 24、25、26、27、28、30はすべて複合です。 そして、30秒以上は完全に危険です。
信頼性の問題はどのように解決されましたか?
信頼性は、主に作業ノードを選択するメカニズムによって、そしてある程度ではなく、事前にベットの転送トランザクションを実行することによって決定されたため、データトランザクションのベットは、ブロックチェーンに存在するトランザクションをすでに正確に参照していました。
サイクルの各円の間に、構成で指定されたすべてのノードが現在の高さについて調査され、現在の高さが最も高いノードが選択され、さらに相互作用が行われました。 私の理解では、これはノードのフォーク、アクセス不能、キャッシング、および考えられるエラーから保護することになっています。 勝利につながったのはこの単純なメカニズムだったという自信があります。
あなたの意見では、ブロックチェーンゲームの主な機能と利点は何ですか? 一般的なパブリックブロックチェーンと、特にゲーム開発のためのWavesブロックチェーンはどの程度有望ですか?
主な利点は、ゲームのよく知られた固定された不変のルールに加えて、世界中のどこからでもゲームにアクセスするための平等な条件です。
ブロックチェーン外のお金のゲームは死ななければなりません。
Wavesには豊富な技術的機能がありますが、ブロックチェーンに固有のニュアンスと特定のニュアンスがあります。 これらと他の両方は、開発者の既存のツールにあまりよく反映されていません。
たとえば、5-10の確認の距離ではなく、リアルタイムでトランザクションに反応しようとした場合、まれではあるが発生している現象について学びました:ブロックからブロックへのトランザクションのジャンプ、特定のブロックでのトランザクションの欠落、その他。 これはすべてのアプリケーションの速度と信頼性にとって重要であり、一般的な方法で決定する必要がありますが、これまでのところ、各開発者は自分で必要な信頼性のレベルに到達しています。 もちろん、時間の経過とともに、これはすべて解決されますが、これまでのところ、かなり高い参入しきい値と、真に分散化されたブロックチェーン一般の作業の詳細に対する恐怖があります。
FOMOゲームは、あなたが知っている他のブロックチェーンゲームとどう違うのですか? その長所と短所は何ですか?
これらは長期的なゲームです。 このようなゲームへの関心は、ゲインの大きさとともに大きくなり、ゲインの大きさは時間とともに大きくなります。
ゲームが終了しない場合に最適です。 ゲームが終了すると、悲しいです...
フロストンパラダイス2が最近発売されました 。 参加する予定はありますか?
はい。時間と関心がある場合は、同じ手順を踏んでいきます。脆弱性の分析、テストネットワーク、ボット、オープンソースなどで遊んでいます。
結論として、開発者としてのあなたの計画について教えてください。
私は未解決の問題を解決することに興味があり、ブロックチェーンのトピックには多くの未解決の問題があります。 これは本当の挑戦です! そして彼は受け入れられます。