【ITニュース解説】Auditing a BEP-20 treasury from the chain alone: 27 transfers, 17 recipients, 5 funding origins
2026年10月28日に「Dev.to」が公開したITニュース「Auditing a BEP-20 treasury from the chain alone: 27 transfers, 17 recipients, 5 funding origins」について初心者にもわかりやすく解説しています。
ITニュース概要
ブロックチェーン上のBEP-20トークンFLAPJAX資金の流れを調査。1日で27件の送金で17の受取人がいたが、10の受取人は手数料BNBがなく、受け取ったFLAPJAXを動かせないと判明した。資金提供元は5つに集約された。
ITニュース解説
ブロックチェーン技術は、取引の透明性と改ざん困難性で注目されている。しかし、その透明性を本当に活用するためには、ブロックチェーン上のデータを適切に読み解き、分析する「監査」が不可欠だ。本記事は、特定のデジタル資産(トークン)であるFLAPJAXが、そのプロジェクトの「財務(treasury)」ウォレットからどのように送金されたかを、ブロックチェーン上の記録のみに基づいて徹底的に調査した事例について解説する。システムエンジニアを目指す皆さんにとって、ブロックチェーンのデータがどのように公開され、どのように活用されるかを理解する良い機会となるだろう。
今回の監査対象は「FLAPJAX」という名前のトークンで、これは「BEP-20」という標準規格に準拠している。BEP-20は、Binance Smart Chain(BSC)というブロックチェーン上で動作するトークンの共通ルールのようなものだ。BSCは、イーサリアムと似たスマートコントラクト機能を持ち、高速で手数料が比較的安い特徴がある。FLAPJAXのスマートコントラクトのアドレスは「0x90c8889f…」で、このアドレスがFLAPJAXトークンの発行や送金といった機能を管理している。
監査の焦点は、FLAPJAXトークンの「財務(treasury)」、つまりプロジェクトが保有する大きな資産が保管されているウォレットのアドレス「0x7C34E9e2…」から行われた送金だ。監査期間は2026年10月26日の1日間で、この期間に発生したブロック(取引記録のまとまり)の範囲が特定されている。具体的には、ブロック番号129,837,825から130,029,689までの約19万ブロックを対象とした。この一日で財務からいくつのFLAPJAXが、誰に、どのような目的で送られたのかを追跡するのが目的だ。
ブロックチェーン上の送金記録を調査するためには、まずデータを取り出す必要がある。今回は「eth_getLogs」という技術的なコマンドが使われた。これは、特定のスマートコントラクトアドレス(FLAPJAXトークン)から発せられたイベントログの中から、「Transfer」という種類のログを探すものだ。「Transfer」ログは、トークンが送金された際に記録される標準的なイベントで、誰が(送信元)、誰に(受信元)、どれだけの量を送ったか、という情報が含まれている。特に、送信元が財務アドレスであるログに絞り込んで抽出を行った。
BSCのような大規模なブロックチェーンでは、一日の間に生成されるブロック数が非常に多いため、一度にすべてのデータを取得しようとすると、接続先の「RPCノード」というサーバーが処理能力の限界を超えてしまうことがある。RPCノードは、ブロックチェーンの情報を外部から取得するための窓口のようなもので、通常は一度に取得できるデータ量や期間に制限がある。そのため、今回の監査では、対象期間の約19万ブロックを4つの5万ブロックごとの「チャンク(塊)」に分割し、それぞれ独立してデータを取得するという工夫がされた。これにより、確実にすべての送金記録を漏れなく収集できた。
次に、FLAPJAXを受け取った各受取人アドレスが、そのFLAPJAXを受け取る前に、ブロックチェーンの基軸通貨であるBNB(Binance Coin)を誰から受け取っていたかを調査した。これは、受取人アドレスが本当に独立した主体であるのか、あるいは別のウォレットによって操作されているのかを判断するための重要な手がかりとなる。この調査には「nr_getAssetTransfers」という機能が使われた。これは、特定のアドレスへの最初のBNB送金(外部送金および内部送金の両方)を検出するもので、BNBの送金元を特定するために役立った。
監査の結果、2026年10月26日の一日において、FLAPJAX財務アドレスから合計27件のFLAPJAX送金が行われたことが明らかになった。これらの送金は、合計17の異なる受取人アドレスに対して行われ、送られたFLAPJAXの総量は18,190,000だった。
個々の送金記録を見ると、少額の送金から数百万円相当の大量送金まで様々だ。例えば、最初の数件は1万FLAPJAXと小規模だが、後に数百万FLAPJAXといった大規模な送金も複数見られる。受取人アドレスはそれぞれ固有の識別子を持っており、各トランザクション(取引)はブロック番号とタイムスタンプ、そして固有のトランザクションハッシュで識別される。
さらに重要なのは、これらの受取人アドレスが、FLAPJAXを受け取る前にBNBを誰から最初に受け取ったかという情報だ。BNBはBSC上のガス代(手数料)を支払うために必要であり、BNBを持っていないアドレスは基本的にトランザクションを送信できない。この調査の結果、驚くべき事実が判明した。
17の受取人アドレスの資金源を分析したところ、以下の5つのパターンに分類できた。 一つは、FLAPJAX財務アドレス自身が、FLAPJAXを送る前に3つの受取人アドレスにBNBを送っていたケースだ。これは、財務がこれらのアドレスを活動させるための初期費用を負担した、あるいは何らかの関連性があることを示唆する。 次に、3つの受取人アドレスは、それぞれ異なる独立したウォレットからBNBを最初に受け取っていた。これは、これらの受取人がそれぞれ異なる個人や組織によって管理されている可能性を示唆する。 また、1つの受取人アドレスは、FLAPJAXを受け取った後に、別のスマートコントラクトからBNBを内部送金で受け取っていた。内部送金は、通常のトランザクションとは異なり、スマートコントラクトの実行によって発生するBNBの移動だ。 最も注目すべきは、10の受取人アドレスが「いかなるBNBも一度も受け取っていない」という結果だった。つまり、これらのアドレスはBNB残高がゼロであり、さらに「nonce(ノンス)」と呼ばれるトランザクション発行回数を示す値もゼロだった。これは、これらのアドレスから過去に一度もトランザクションが送信されていないことを意味する。
この「no BNB ever received」のグループは、監査の最大の未解明な点だ。BNBを持たないアドレスは、BSC上でガス代を支払うことができないため、受け取ったFLAPJAXを動かすトランザクションを送信できない。つまり、これらの10のアドレスは、受け取ったFLAPJAXを「凍結」された状態にあるか、あるいは別のウォレットが代理でガス代を支払うことで間接的に操作されている可能性が考えられる。しかし、ブロックチェーン上の記録だけでは、その鍵が誰によって管理されているのか、どのように操作されるのかを特定することはできない。これらのアドレスを独立した活動主体として扱うことはできない、というのが監査の結論だ。
また、FLAPJAXの送金は一部のアドレスに集中していることもわかった。例えば、一つの受取人アドレス(0x8186bdc8…)は、この一日で合計7,000,000 FLAPJAXを受け取っており、これはその日の総送金額の約38.5%に相当する。さらに、上位3つの受取人だけで総送金額の約67.7%を受け取っていた。このような集中は、資産の管理体制や権限分散の観点から注意が必要な情報だ。
今回のFLAPJAX財務の監査は、ブロックチェーン上の公開データを分析することで、特定のデジタル資産の動きと、その背後にある可能性のある活動主体について深い洞察が得られることを示している。特に、「no BNB ever received」という受取人アドレスの発見は、一見透明に見えるブロックチェーン上でも、そのデータの解釈には注意が必要であり、未解明な部分が存在しうることを浮き彫りにした。システムエンジニアを目指す皆さんにとって、ブロックチェーンの透明性は「データがすべて公開されている」ことを意味するが、そのデータが何を物語っているのかを深く掘り下げ、論理的に分析するスキルが重要になる。
この監査を通じて、単に送金があったという事実だけでなく、受取人の資金源まで遡って調査することで、より広い視点からブロックチェーン上の活動を理解する重要性が示された。プロジェクトの健全性やセキュリティを評価する上で、このようなオンチェーン(ブロックチェーン上)データのみの監査は、非常に価値のある手法となる。公開された情報をどう読み解き、どう活用するか。それが、ブロックチェーン技術が社会に浸透していく上で、私たちシステムエンジニアに求められる重要な役割の一つだ。