masalibの日記

システム開発、運用と猫の写真ブログです

錆を取るより、錆取り係を雇う ― ブロッコリースプラウトを買った理由

この記事を書いたきっかけ

【医学解説】「緑茶の200倍の抗酸化力!? 中高年を若返らせる神食材と本当の若返り戦略」 という動画をみました

www.youtube.com

ブロッコリースプラウトに含まれる有効成分「スルフォラファン」の効果は 体内で約3日間持続する、という話を知ったためです。 3日も継続してくれるならサボりがちな私にぴったりです。 それで興味をもって色々しらべました。その備忘録の記事です。

調べてみたら、動画の説明は方向としては合っているものの、 数字の見せ方と、持続する仕組みの説明が、けっこう違っていました。 そこも含めて書き残しておきます。

注意: この記事は医療・栄養の専門家ではない個人が、公開されている資料を調べて整理したものです。 持病がある方・薬を飲んでいる方は、後述の「薬との関係」も読んだうえで主治医に相談してください。 AIにサポートしてもらって記載したブログです

  • この記事を書いたきっかけ
  • 1. 「緑茶の200倍」のカラクリ:ORAC値は1食分で比べると逆転します
    • まずORACとは何か
    • ですが「100gあたり」で比べています
  • 2. USDAは2012年にORACデータベースを削除しています
    • では何を基準に選べばいいのか
  • 3. 「3日持続」は本当です。ただし持続しているのは、スルフォラファンではありません
    • ただし正直に書いておくと(ここは自分でも引っかかりました)
  • 4. ヒトでの試験では、実際に何が確認されているのか
    • (1)大気汚染物質の排泄が増えた(中国・啓東、n=291)
    • (2)肝機能マーカーが改善した(カゴメ×東海大学医学部、n=52)
    • (3)鼻の粘膜で解毒酵素の発現が増えた(n=57)
    • 逆に、書かれていないこと
  • 5. どれくらい食べればいいのか(数字が曖昧なところ)
    • 買うときの注意:同じ「ブロッコリースプラウト」でも濃度が違います
  • 6. 食べ方:ここを間違えると効果がほぼ消えます
    • (1)よく噛む・刻む — これが必須です
    • (2)加熱しすぎない
    • (3)保存
    • (4)生のスプラウトには食中毒リスクがあります
  • 7. 薬との関係(中高年なので、ここは飛ばせません)
    • ワルファリン(ワーファリン)を飲んでいる人
    • 甲状腺
  • 8. 所感
  • 出典
続きを読む

AIが勝手に使った `user+testcase1-1@gmail.com` は何者か ― プラスアドレス(サブアドレス)の話

この記事を書いたきっかけ

AIにテストケースを作ってもらって、そのままテストを実行してもらいました。

あとから結果を眺めていたら、自分の知らないメールアドレスで会員登録されていました。

user+testcase1-1@gmail.com

あれ?

自分はテストには

user@gmail.com

でお願いします、と言ったはずなのに、なんで??

調べてみたら、これは Gmailの「プラスアドレス」 という仕組みでした。AIが勝手に発明したわけでも、誤植でもありません。

ただ、調べていくうちに「思っていたより深い話だった」ので、そこも含めてまとめます。

表記について: 実際に使ったのは自分のGmailアドレスですが、この記事では user@gmail.com に置き換えて書きます。メールアドレスを公開の記事に生で書くと収集の対象になるためで、これ自体が後半(6-6)で触れる話でもあります。

先に結論を書きます。

  • + 以降は無視されて、本体の user@gmail.com に届きます。設定は不要です。
  • これはGmailの独自機能ではありません。「サブアドレス(subaddressing)」という名前でRFCにも登場する、広く使われている慣行です。ただし「全メールサービスがこう動く」と決めた標準規格があるわけではなく、実際の挙動は各サービスが決めています。
  • 万能ではありません。 + を弾くサービスがあり、フォーム形式のURLでは + が半角スペースに化けるという地雷もあります。
  • テスト用途としては便利ですが、本番のメールが自分に実際に届くので、そこは意識して使う必要があります。

1. プラスアドレスとは何か

元のアドレスが user@gmail.com の場合、たとえば次のアドレスをそのまま利用できます。

  • user+1@gmail.com
  • user+test@gmail.com
  • user+shop@gmail.com
  • user+20260812@gmail.com

これらに送信されたメールは、すべて通常の user@gmail.com の受信トレイに届きます。事前登録や設定は必要ありません。

user+testcase1-1@gmail.com
   ↓  「+」以降を切り落として配送先を解決
user@gmail.com  の受信トレイへ

主な用途は次のとおりです。

  • システムの会員登録テスト
  • サービスごとのメール振り分け
  • どこに登録したアドレスからメールが来たかの判別
  • Gmailフィルタによる自動ラベル付け

2. これはGmailの独自機能ではない

ここが調べていて一番「へえ」と思ったところです。

この仕組みには正式名称があります。サブアドレス(subaddressing)、または詳細アドレス(detailed addressing)、タグ付きアドレス(tagged addressing)と呼ばれます。

メールフィルタ言語Sieveの拡張仕様である RFC 5233 に、その定義が書かれています。1

Subaddressing is the practice of augmenting the local-part of an address with some "detail" information in order to give some extra meaning to that address.

(サブアドレスとは、アドレスに追加の意味を持たせるために、ローカル部に「詳細」情報を付け足す慣行のことである)

そしてアドレスをこう分解して扱います。

:user  "+"  :detail    "@"  :domain
 user   +   testcase1-1  @   gmail.com

つまり「Gmailの裏技」ではなく、仕様書に名前が載っている概念です。

ただし「標準規格」と言い切ると言い過ぎ

ここは正確に書いておきます。

RFC 5233 は 「サブアドレスという慣行が既にある」ことを前提に、Sieveというメールフィルタ言語からそれを扱うための拡張です。「全メールサーバーは + 以降を切り落として配送せよ」と決めた規格ではありません。

RFC 5233 自身にもこう書かれています。[^1]

the logic used to split the address is implementation-defined and is usually dependent on the format used by the encompassing mail system.

(アドレスを分割するロジックは実装依存であり、通常はそれを含むメールシステムが使う形式に依存する)

つまり、

  • 区切り文字が + とは限らない
  • 切り落として配送するかどうかも各サービスの判断

「業界の共通慣行としてよく使われていて、RFCにも名前が載っている」くらいの理解が正確です。だからこそ、後述するようにサービスごとに挙動がバラつきます。

実際、+ 以外の実装もあるし、既定オフの実装もある

自前のメールサーバーを触ったことがある人には、ここが一番実感しやすいと思います。

代表的なMTAである Postfix には recipient_delimiter という設定項目があり、これが区切り文字を決めています。そして デフォルト値は空です。2

recipient_delimiter =   ← 既定は空。つまりサブアドレス機能はオフ
recipient_delimiter = +   ← これでようやく + が区切り文字になる
recipient_delimiter = +-  ← 複数指定もできる

qmail系では歴史的に - が使われてきました。

ここから分かることは、

自社ドメインで + が効かないとき、それは「壊れている」のではなく「有効にしていないだけ」

ということです。Gmailで動いたからといって、自分の会社のメールサーバーで動くとは限りません。テスト計画を立てるときは、まずそこを確認してください。

+ はそもそもアドレスに使ってよい文字

メールアドレスの書式を定めた RFC 5322 では、@ の左側(ローカル部)に使える文字として + が明示的に許可されています。3

ALPHA / DIGIT / ! # $ % & ' * + - / = ? ^ _ ` { | } ~

+ は「特殊な抜け道の文字」ではなく、最初から普通に使える文字です。

ローカル部の意味を決めてよいのは受信側だけ

さらに、SMTPの仕様である RFC 5321 にはこう書かれています。4

the local-part MUST be interpreted and assigned semantics only by the host specified in the domain part of the address.

(ローカル部の解釈と意味づけは、アドレスのドメイン部で指定されたホストだけが行わなければならない)

これは地味に重要です。

user+test@gmail.com+test に意味があるかどうかを決めてよいのは gmail.com のサーバーだけです。会員登録フォームを作っている側が「+test は余計なものだから削っていい」と勝手に判断するのは、この立て付けからすると危うい、ということになります。

ただし、ここから 「だから + を弾くサービスは仕様違反だ」とまでは言えません。 RFCが決めているのは「アドレスの意味を解釈してよいのは誰か」であって、「サービスがどんなアドレスを会員登録に受け付けるべきか」は各サービスのポリシーの話です。

整理すると、

  • + はアドレスに使える正規の文字である(RFC 5322)
  • + 以降の意味を決めるのは受信側のメールサーバーである(RFC 5321)
  • しかし、登録フォームがそれを受け付けるかどうかは、規格ではなくサービスの判断

現実には弾くサービスがそこそこあります。理由は後述します。


3. 対応しているメールサービス

Gmail以外でも使えます。ただし対応状況はサービスによって違います。

受信できるかそのアドレスから送信できるかは別の話なので、分けて書きます。

サービス 受信(プラスアドレス) 送信元にできるか 備考
Gmail(@gmail.com) 対応・設定不要5 既定では不可。「他のメールアドレスを追加」で確認手続きを踏めば可6
Google Workspace(独自ドメイン) 対応[^14] 同上 ドットの扱いは後述の通り異なる
Exchange Online(Microsoft 365) 対応(既定で有効) 不可(受信専用と明記)7 管理者が組織単位で無効化可能[^4]
Outlook.com(@outlook.com 等) 対応(公式表記は "+sitename") 不可 サインインにも使えないと明記8
Proton Mail 対応・無制限9 要確認 プラン制限があるのは「追加アドレス」「hide-my-email」で、プラスアドレスではない[^9]
Fastmail 対応 送信元として設定すれば可 サブドメインアドレッシングも可(後述)
iCloud Mail 要確認(Apple公式に記載なし) 要確認 公式に確認できるのは手動エイリアス最大3つ10。別途 Hide My Email あり
日本のキャリアメール(docomo / au / SoftBank) 対応表明なし=使えない前提で 不可 そもそもアドレスに + を使えない。後述

iCloudについて: ネット上には「iCloudはプラスアドレス非対応」という記述が多いのですが、Appleの公式ドキュメントにはプラスアドレスについての記載自体がありません。公式に確認できるのは「手動で作るエイリアスは最大3つ」という点だけです。使う前に実際に送って確かめてください。

Fastmailの「サブドメインアドレッシング」が地味に賢い

Fastmailには + とは別に、サブドメインアドレッシングという方式があります。

プラスアドレス        : username+shop@fastmail.com
サブドメインアドレッシング: shop@username.fastmail.com

+ が消えて、普通のメールアドレスの見た目になります。独自ドメインを持っていなくても、@fastmail.com のユーザーがそのまま使えます。

Fastmailは公式ドキュメントで、この方式を勧める理由をはっきり書いています。

The main downside to plus addressing is that addresses with a + are incorrectly considered invalid by some websites, and may not allowed on some registration forms. Subdomain addressing, described below, should overcome this problem.

(プラスアドレスの主な欠点は、+ を含むアドレスを一部のWebサイトが誤って無効と判断し、登録フォームで受け付けないことがある点です。サブドメインアドレッシングはこの問題を回避できます)

メールサービス側が「+ は弾かれることがある」と認めて回避策を用意しているわけです。「+ が通らないのは自分の使い方が悪いのか?」と悩む必要はない、という証拠でもあります。

Microsoftの公式ドキュメントには、Exchange Onlineの挙動がはっきり書かれていて分かりやすいです。[^4]

Exchangeは + を含むアドレス宛のメールを受け取ると、まず完全なアドレス(例: sean+newsletter@contoso.com)で既知のメールボックスへの解決を試みます。それが失敗した場合、+ とタグを除いたアドレス(例: sean@contoso.com)で2回目の解決を試みます。

つまり「まずそのまま探して、なければ + を削って探す」という二段構えです。

なぜExchangeは二度手間なのか

ここが分かると、サービスごとの違いが腑に落ちます。

Gmailのユーザー名には、そもそも + を使えません。 使えるのは英数字とピリオドだけです。だから user+test@gmail.com+test が「本物のアドレスの一部」である可能性は 原理的にゼロで、無条件に区切り文字として切り落とせます。

一方、Exchangeは歴史的に + を普通の文字として許してきました。 つまり sean+newsletter@contoso.com が実在するメールボックスである可能性が残ります。だから「まず完全一致を試す」という一段目が必要になるわけです。

Gmail    : + を見つけたら即座に切り落とす(1回で解決)
Exchange : まず完全一致 → 見つからなければ + を削って再検索(2回)

同じ + でも挙動が違うのは、各サービスがユーザー名にどんな文字を許してきたかの歴史の差、ということになります。

また、Exchange Onlineには重要な制約が明記されています。

  • プラスアドレスから送信することはできません(受信専用)
  • メールボックスに設定されたエイリアスではないので、Outlookの宛先欄で名前に解決されません

ただし、これをそのまま他社にも当てはめるのは間違いです。

Gmailの場合、何もしなければ確かに返信時の送信元は元の user@gmail.com になります。 ですが、設定 →「アカウントとインポート」→「他のメールアドレスを追加」からプラスアドレスを登録し、確認メールで所有確認を済ませれば、送信元として選べるようになります。[^8]

このとき、確認メール自体がプラスアドレス経由で自分の受信トレイに届くので、所有確認はすんなり通ります。

「受信専用」はExchange Onlineの仕様であって、プラスアドレス一般の性質ではない、というのがここでの結論です。

日本のキャリアメールはどうなのか

日本でテストをするなら、ここは避けて通れません。docomo / au / SoftBank のキャリアメールです。

結論から言うと、プラスアドレス対応をうたっているキャリアは1社もありません。使えないものとして設計してください。

理由は単純で、そもそもアドレスに + という文字を使えないからです。3社とも公式に、使える記号を3つだけに限定しています。

キャリア ローカル部に使える文字 +
docomo(@docomo.ne.jp) 半角英数字と _ . - の3記号のみ(3〜30文字)11 使用不可
au(@au.com / @ezweb.ne.jp) 半角英数小文字と - . _ のみ(最大30文字)12 使用不可
SoftBank(@softbank.ne.jp 等) 半角英小文字・数字と - . _ 以外の記号は使用できません13 使用不可

ここで注意したいのは、この表が答えているのは 「自分のアドレスに + を入れられるか」 であって、+tag 付きで送ったメールが届くか」ではないということです。この2つは別の話でした(3章の冒頭で分けたのと同じ理屈です)。

そして皮肉なことに、キャリアはGmailと同じ条件を満たしています。

Gmail    : ユーザー名に + を使えない → + は必ず区切り文字 → 安心して切り落とせる
キャリア : ユーザー名に + を使えない → 同じ条件のはず

理屈のうえでは、キャリアがプラスアドレスに対応するのを妨げるものは何もありません。にもかかわらず、対応するという記載がどこにもない。 この状況で「たぶん動くだろう」と踏むのは、テストの前提としては危険すぎます。

実務的な結論はこうなります。

  • キャリアメールでプラスアドレスは使えないものとして扱う
  • キャリアメール宛の登録テストで複数ユーザーが必要なら、実際に複数の回線・アドレスを用意するしかない
  • どうしても確認したいなら、実機に送って確かめる(届かなければ即座に分かります)

注意: 各サービスの仕様は変わります。重要な用途で使う前に、別のメールアドレスから自分宛てにテスト送信して、実際に届くことを確認してください。これはキャリアメールに限らず、この章の表全体に言えることです。


4. Gmailにはもう一つの「別名」がある ― ドットは無視される

プラスアドレスを調べていて見つけた、もう一つの落とし穴です。

Gmail(@gmail.com)では、ローカル部のドット(.)が無視されます。14

user@gmail.com
us.er@gmail.com
u.s.e.r@gmail.com

これらは すべて同じアカウントです。Googleの公式ヘルプにも明記されています。

さらに、他人が u.s.e.r@gmail.com で新規アカウントを作ろうとしても「既に使われています」となります。ドット違いは全部自分のものです。

ここが罠

この挙動は @gmail.com だけです。

Google Workspaceで独自ドメイン(yourdomain.comyourschool.edu)を使っている場合、ドットは区別されます。[^5]

つまり、

+tag ドット
@gmail.com 無視される 無視される
Google Workspace(独自ドメイン) 無視される 区別される(別アドレス)

テストで「ドット違いで別アカウントを作ろう」とすると、@gmail.comでは失敗しますが、Workspaceドメインでは成功します。同じ「Gmail」と呼んでいても挙動が違う、というのは覚えておいて損はないです。


5. 実際の使い方

5-1. Gmailのフィルタで自動ラベルを付ける

たとえば user+test@gmail.com 宛てのメールに「テスト」というラベルを自動で付けられます。Gmailには条件に応じてメールを処理するフィルタ機能があります。

条件の書き方には2通りあります。

to:user+test@gmail.com          ← To/Cc/Bcc に書かれていたか
deliveredto:user+test@gmail.com ← 実際に配送されたアドレスを見る

to: は誤解されやすいのですが、Toヘッダだけを見ているわけではありません。 Gmail APIのリファレンスには、to は "Includes recipients in the 'to', 'cc', and 'bcc' header fields."(To / Cc / Bcc を含む)と書かれています。

一方 deliveredto: は「実際にどのアドレス宛てに配送されたか」を見ます。15

メーリングリストや転送を経由すると、To / Cc / Bcc のどこにも自分のアドレスが載らないことがあります。そういうケースでは deliveredto: のほうが素直に引っかかります。

手順で詰まりやすいところ

  1. Gmailの検索ボックス右端の「検索オプション」を開く
  2. 「含む」欄に deliveredto:user+test@gmail.com と、演算子ごと文字列で入力する
  3. 「フィルタを作成」→「ラベルを付ける」

ポイントは2です。検索オプションのパネルには From / To / 件名 / 含む / 含まない / サイズ / 期間 しかなく、deliveredto という専用の欄はありません。 「含む」欄に演算子ごと書きます。ここを知らないとパネルを開いた時点で詰まります。

また、すべての検索演算子がフィルタで機能するわけではありません(日付系の演算子は受信時フィルタでは働きません)。フィルタを作る前に、同じ文字列を検索ボックスにそのまま入れて結果が出ることを確かめてください。検索でヒットしないものは、フィルタでも一致しません。

配送先を自分の目で確かめる

deliveredto: が何を見ているのか気になったら、実物を見るのが早いです。

Gmailでメールを開き、右上の「⋮」→「メッセージのソースを表示」を選ぶと、先頭付近にこのヘッダがあります。

Delivered-To: user+test@gmail.com

+test が残っていることが確認できます。AIが勝手に登録したアドレスを後から追跡したいときも、ここを見るのが確実です。

5-2. 名簿流出の手がかりにする

user+shopA@gmail.com でA社に登録しておけば、そのアドレス宛てに知らない業者から広告が来たとき、A社まわりの経路から流出・共有された可能性がある、という手がかりになります。

ただし 「A社が漏らした」と断定はできません。 A社の委託先、決済代行、メール配信業者など経路は複数あり得ますし、アドレスを機械的に推測・収集された可能性もゼロではありません。

そして 過信も禁物です。+ 以降を機械的に削るのは一行のコードでできるので、悪意のある業者は簡単に本体アドレスを取り出せます。

「漏れたら気づける可能性がある」仕組みであって、「漏れなくする」仕組みでも「犯人を特定する」仕組みでもありません。

本気で本体アドレスを隠したいなら

+ の弱点は「本体アドレスが丸見え」という一点に尽きます。本気で隠したいなら、別の道具を使うことになります。

手段 本体アドレスを逆算できるか 備考
プラスアドレス できる+ 以降を削るだけ) 分類用。匿名化には使えない
サブドメインアドレッシング できる Fastmailなど。+ を弾くフォーム対策には有効
独自ドメインのcatch-all できない shopA@mail.example.com のように自由に作れる
Hide My Email(iCloud+) できない ランダム文字列の転送アドレス
SimpleLogin / Firefox Relay できない 同上。個別に無効化もできる

独自ドメインを持っているなら、Cloudflare Email Routing も選択肢になります(2025年7月にサブアドレッシングに対応しました)。

要するに、+ は「分類のための道具」であって「匿名化のための道具」ではない、というのがここの結論です。


6. 開発・テストで使うときの注意(ここが本題)

自分がAIに指示したのは「テスト」でした。なので、テスト目線で気をつける点を整理します。

6-1. サービス側が「同じ人」とみなす場合がある

不正利用対策として、登録時にメールアドレスを正規化(normalize)するサービスがあります。

  • + 以降を削る
  • Gmailのドットを削る

これは無料トライアルの繰り返し利用や、1メールアドレス1アカウント制限の回避を防ぐための、よくある対策です。

その結果、

  • user+1@gmail.com で登録 → 「そのメールアドレスは既に登録されています」
  • あるいは、そもそも + を含むアドレスを入力段階で弾かれる

ということが起きます。

テストケースを「+1, +2, +3 で3ユーザー作る」という前提で組むと、この仕様に当たった瞬間に全部崩れます。

逆に、自分が作る側になったときの注意

ここまでは「テストする側」の話ですが、自分がその正規化を実装する側になったときのほうが危険です。

前述のとおり、+ の意味もドットの意味も ドメインごとに違います。 それを全アドレスに一律で適用すると、こうなります。

全ドメインに「ドットを削る」を適用すると…

taro.yamada@example.co.jp   ← 別人
tarohyamada@example.co.jp   ← ではなく taroyamada@… と衝突しうる

+ やドットに特別な意味を持たせていないドメインは普通にあります。そこで正規化をかけると、別人のアカウントを同一人物として統合してしまうという、かなり厄介な事故になります。

重複登録を防ぎたいなら、アドレスをいじるのではなく、

  • メール確認済みかどうか
  • 決済情報
  • デバイス・利用状況のシグナル

といった別の軸を併用するほうが安全です。アドレスの文字列加工は、それ単体では不正対策として弱く、副作用が大きいという認識でいたほうがいいと思います。

さらに怖いのは「正規化する場所としない場所がある」こと

これがテスト観点として一番おいしいところだと思います。

正規化を「登録時だけ」実装してしまうと、こうなります。

登録時   : user+1@gmail.com → 正規化して user@gmail.com で保存
ログイン : user+1@gmail.com → 正規化せずそのまま照合 → 該当なし
         → 「登録できたのにログインできない」

もっと危ないのがこちらです。

パスワードリセット要求 : user+1@gmail.com
  → 正規化して user@gmail.com のアカウントを特定
  → リセットメールの送信先は入力された user+1@gmail.com

= 正規化が認証の境界を跨いでしまっている

Gmailなら同じ受信箱なので実害は出ませんが、+ を区切り文字として扱っていないドメインで同じことをやると、別人にリセットメールを送ることになります。

なので、正解は「正規化するかどうかを決める」ではなく、

登録・ログイン・パスワードリセット・重複判定のすべてで、同じ正規化関数を通す

です。どこか一箇所だけ違う、が事故のもとです。

6-2. フォーム形式のURLでは + が半角スペースに化ける

これが一番刺さる地雷だと思います。

まず正確に書くと、URL一般の規則ではありません。 URLのクエリ部分そのものには + を含められます。

問題になるのは application/x-www-form-urlencoded(HTMLフォームの標準的な送信形式、および多くのフレームワークがクエリ文字列を解釈するときの形式)として パースされたときです。この形式では、+ は半角スペースを意味します。16

?email=user+test@gmail.com
   ↓ サーバー側でデコードすると
   user test@gmail.com   ← 半角スペースになる(壊れる)

正しくは %2B にエンコードする必要があります。

?email=user%2Btest%40gmail.com
   ↓ デコード
   user+test@gmail.com   ← 正しい

始末が悪いのは「環境によって壊れたり壊れなかったりする」こと

同じURLでも、受け取った側が何でデコードするかで結果が変わります。

デコード方法 + はどうなるか
PHP の $_GET 半角スペース
Java の URLDecoder.decode 半角スペース
Python の urllib.parse.parse_qs 半角スペース
Rails の params 半角スペース
JavaScript の decodeURIComponent そのまま +
Python の urllib.parse.unquote そのまま +

さらに、同じアプリでもパス成分なら壊れません。

/verify?email=user+test@...   ← form-urlencoded として読まれると壊れる
/verify/user+test@...          ← パス成分なので + はそのまま

「再現する環境としない環境がある」バグになるので、原因にたどり着くまでが長いです。

会員登録のメール確認リンクやパスワードリセットリンクにメールアドレスをクエリで載せている実装だと、プラスアドレスのユーザーだけ確認リンクが動かないという形で表面化します。

根本的な対策は、URLを文字列連結で組み立てないことです。URLSearchParams(JavaScript)や各言語標準のエンコーダに任せれば、+@ も適切にエスケープされます。手で組み立てるのをやめるのが一番効きます。

プラスアドレスでテストすると、この手のバグが炙り出せます。これはむしろプラスアドレスでテストする価値がある部分です。

6-3. そもそも確認リンクにメールアドレスを載せない

%2B にエンコードすれば動きますが、一段引いて考えると 「確認リンクにメールアドレスを載せる」設計自体を見直したほうがいいです。

URLに載せたメールアドレスは、

  • Webサーバーやプロキシのアクセスログ
  • ブラウザの履歴
  • 外部リソースを踏んだときのRefererヘッダ

に残り得ます。エンコードの問題以前に、個人情報が想定外の場所にコピーされていく設計です。

確認・再設定リンクに載せるのは、

  • 十分に推測困難
  • 短命(数十分〜数時間で失効)
  • 一回使ったら無効

なトークンだけにして、そのトークンとユーザーの対応付けはサーバー側で持つ。こうすれば + の問題も同時に消えます。

6-4. テスト観点としてまとめると

観点 確認すること
入力バリデーション + を含むアドレスを弾いていないか(正規表現の作りすぎ)
重複判定 a+1@a@ を同一人物とみなす仕様か、別人とみなす仕様か(どちらが正解かは要件次第。決めて明文化する
正規化の適用範囲 ドメインを問わず一律にドット除去・+ 除去をしていないか
正規化の一貫性 登録・ログイン・リセット・重複判定で同じ関数を通しているか
URLエンコード 確認リンク・リセットリンクで +%2B になっているか
長さの上限 ローカル部は 64オクテット、アドレス全体は経路長として 256オクテットが上限17。DBのカラム長と入力チェックはこれに耐えるか
国際化アドレス ローカル部に非ASCIIを含むアドレス(SMTPUTF8)を受け付ける想定があるか。あるなら正規表現・DB照合順序・送信ライブラリすべてが対象
画面表示 長いアドレスでレイアウトが崩れないか
メール送信 テスト環境から実在のアドレスに本物のメールが飛んでいないか

長さについて補足すると、SMTPの仕様(RFC 5321)ではローカル部の上限が64オクテットです。[^12]

user+testcase1-1@gmail.com
     ^^^^^^^^^^^ タグを足すぶんローカル部は伸びる

タグを長くすると普通に上限に当たります。AIに機械的にタグを生成させると、ここを平気で超えてきます。テストで極端に長いタグを使うときは、弾かれたのがアプリのバグなのか仕様どおりなのかを切り分けられるようにしておくと混乱しません。

おまけ:メールアドレスの正規表現を自作しない

+ を弾いていないか」の話に戻りますが、そもそも メールアドレスの検証正規表現を自分で書くべきではありません。

HTMLの仕様(WHATWG HTML Standard)には <input type="email"> が受け付けるアドレスの正規表現が載っていて、当然 + も含まれています。そして仕様自身がこう注記しています。

This requirement is a willful violation of RFC 5322, which defines a syntax for email addresses that is simultaneously too strict (before the "@" character), too vague (after the "@" character), and too lax ... to be of practical use here.

(この要件はRFC 5322に対する意図的な違反である。RFC 5322のメールアドレス構文は、@ の前については厳しすぎ、@ の後については曖昧すぎ、かつ全体としては緩すぎて、ここで実用に供さない)

HTML仕様ですら「RFC 5322 に故意に違反する」と宣言している世界です。そこに手書きの正規表現で挑むと、ほぼ確実に + を含む正当なアドレスを弾きます。

  • <input type="email"> を使う
  • サーバー側は言語標準・定番ライブラリのバリデータを使う
  • 最終的な到達性は確認メールを送って確かめる(結局これが唯一の確実な検証です)

これで十分です。

日本だと逆方向の圧力もかかる ― RFC違反アドレス

ここまでは「厳しすぎる正規表現が + を弾く」という話でしたが、日本のサービスでは真逆の問題が同時に起きます。

2009年3月頃まで、docomo と au では RFCに違反したアドレスを作れました。

abc..def@docomo.ne.jp   ← ピリオドが連続している
abcde.@docomo.ne.jp     ← @ の直前がピリオド

RFC 5322 の dot-atom は「ピリオドは atom の区切り」なので、連続したピリオドも末尾のピリオドも構文違反です。

新規発行はとっくに止まっていますが、当時取ったアドレスを今も使い続けている人がいます。 そして厄介なことに、

  • キャリア同士では送受信できる
  • しかしRFC準拠側のシステムからは送信できないことがある

という状態になっています。

つまり日本でメールアドレスの入力欄を作ると、こういう板挟みになります。

正規表現の傾向 起きること
厳しすぎる + 付きアドレスを弾く(この記事の主題)
RFCに忠実 RFC違反のキャリアアドレスを持つ実在ユーザーを弾く
緩すぎる 明らかな打ち間違いを通してしまう

RFCに忠実に実装すれば正しい、という話ではないのが日本の事情です。

だからこそ、結論は先ほどと同じところに落ち着きます。

正規表現で到達性は判定できない。確認メールを送って、届いたかどうかで判断する。

+ 付きアドレスも、RFC違反のキャリアアドレスも、この方針なら等しく正しく扱えます。「バリデーションは打ち間違いを減らすためのもの、到達確認は別」と割り切るのが、結局いちばん事故が少ないと思います。

6-5. そもそも実在のアドレスを使うべきか

プラスアドレスは「実在の自分のメールボックスに本当にメールが届く」仕組みです。

つまり、テストを回した分だけ自分の受信トレイが汚れます。CIで毎晩回したら悲惨なことになります。

開発・テスト環境では、メールを実際には外に出さずに受け止める仕組みを使うほうが安全です。

  • Mailpit … ローカルでSMTPを受けてWeb UIで中身を確認できる。MailHogの後継で、ポート(SMTP 1025 / UI 8025)もAPIも互換。MailHog自体は2020年頃から更新が止まっており、Laravel Sail や DDEV も Mailpit に移行済みなので、新規採用ならこちら
  • Mailtrap … 同様のSaaS
  • SMTPの送信先をステージング用に差し替えて外に出さない

プラスアドレスが向いているのは、「本番相当の経路で本当に届くかを人間が確認する」少数のケースです。網羅的な自動テストには向きません。

6-6. ドキュメントやリポジトリに残す場合

テストケースやサンプルコードに実在のメールアドレスを書くと、リポジトリ・スクリーンショット・課題管理ツールに個人のアドレスが残り続けます。

RFC 2606 では、ドキュメントやテスト用に予約された名前が定義されています。18

  • example.com / example.net / example.org
  • TLD: .test / .example / .invalid
  • .localhost も予約されていますが、これはローカルホスト解決用です。user@localhost は実際にローカル配送され得るので、メールアドレスの例には使わないでください)

これらは第三者が登録して自分のものにすることができません。「勝手に他人のドメインを例に使ってしまった」という事故を防げます。公開するドキュメントに書くアドレスは user@example.com にしておくのが定石です。

細かい注意: 「予約されている」=「DNS上に存在しない」ではありません。example.com は実際にIANAが運用していて名前解決できますし、.localhost はループバックアドレスに向くよう静的に定義されることがある、とRFC 2606自身が述べています。「誰にも取られない安全な例示用の名前」という理解が正確です。なお .test / .invalid / .localhost は、その後 RFC 6761 で特別用途ドメインとして整理し直されています。


7. AIにテストを任せるときの教訓

今回の件、AIは間違ったことをしていません。「1つのメールアドレスで複数ユーザーのテストをする」ための業界の定石を、当たり前のように使っただけです。

ただ、指示した側からすると 「言っていないことをやられた」 のも事実です。

そして、それが今回はたまたま無害だっただけで、

  • テスト環境のつもりが本番にメールを送ってしまう
  • 外部サービスに本当にアカウントを作ってしまう
  • 個人のメールアドレスが成果物に残る

といった副作用は、同じ構造から普通に起こり得ます。

一番厄介なのは「消せない残骸」

このうち「アカウントを作ってしまう」が、あとから効いてきます。

AIは作ったアカウントの消し方までは面倒を見てくれません。 そして今回のケースだと、

  • どのアドレスで登録したかは、受信トレイを漁らないと分からない
  • もしサービス側が + を正規化していたら、本体アドレスで登録されている(= + では追跡できない)

つまり、後から棚卸しするのが地味に難しいのです。今回は自分の受信トレイに user+testcase1-1@gmail.com 宛てのメールが届いていたから気づけましたが、これが正規化されていたら気づかなかったかもしれません。

だからこそ、「使ったアドレスを最後に一覧で報告させる」ことに意味があります。 あとから追跡できないものは、その場で記録させるしかありません。

なので、指示の出し方をこう変えることにしました。

【悪い例】
テストは user@gmail.com でお願いします

【良い例】
テストで使うメールアドレスは以下のルールに従ってください。
- 複数ユーザーが必要な場合は user+テスト内容@gmail.com 形式を使ってよい
- 実際にメールを送信する操作を行う前に、必ず確認を取ること
- ドキュメントやコードに残すサンプルは example.com を使うこと
- 使用したアドレスは最後に一覧で報告すること

ポイントは 「使ってよい/だめ」を決めることより、使ったものを報告させること だと思います。

今回モヤっとした原因は、+ の存在そのものではなく、知らないうちに増えていたことでしたので。


まとめ

正体 「サブアドレス」という広く使われている慣行。RFC 5233 に定義がある。ただし配送動作を決めた標準規格ではなく、挙動は各サービス次第
仕組み + 以降は無視され、本体のメールボックスに届く。設定不要
受信 Gmail / Workspace / Outlook / Proton / Fastmail は対応。iCloudは公式に記載がなく要確認
日本のキャリアメール 対応表明なし。 docomo / au / SoftBank ともアドレスに + を使えず、使えない前提で設計する
日本特有の事情 2009年頃までのdocomo/auにはRFC違反アドレスが存在し、今も使われている。RFCに忠実な正規表現は実在ユーザーを弾く
送信 サービスによる。 Exchange Onlineは受信専用。Gmailは所有確認をすれば送信元にできる
Gmail特有 @gmail.com はドットも無視される(Workspace独自ドメインは区別される
最大の地雷 application/x-www-form-urlencoded として解釈されると + が半角スペースになる。%2B にエンコードが必要
実装側の地雷 ドット除去・+ 除去の正規化を全ドメインに一律適用すると、別人を統合する事故になる
使いどころ サービスごとの振り分け、少数の手動テスト
向かないところ 網羅的な自動テスト(Mailpit等を使う)、公開ドキュメント(example.comを使う)

気になる人は、別のメールアドレスから自分の +test 宛てに1通送ってみてください。届いた瞬間に全部わかります。


脚注


  1. RFC 5233 - Sieve Email Filtering: Subaddress Extension https://www.rfc-editor.org/rfc/rfc5233.html
  2. Postfix configuration parameters - recipient_delimiter https://www.postfix.org/postconf.5.html#recipient_delimiter
  3. RFC 5322 - Internet Message Format, Section 3.2.3 (Atom / atext) https://www.rfc-editor.org/rfc/rfc5322.html#section-3.2.3
  4. RFC 5321 - Simple Mail Transfer Protocol, Section 2.3.11 https://www.rfc-editor.org/rfc/rfc5321.html
  5. Gmail の受信トレイを最適化するためのヒント - Google Workspace ラーニング センター https://support.google.com/a/users/answer/9308648?hl=ja
  6. 別のアドレスやエイリアスからメールを送信する - Gmail ヘルプ https://support.google.com/mail/answer/22370?hl=ja
  7. Plus Addressing in Exchange Online - Microsoft Learn https://learn.microsoft.com/en-us/exchange/recipients-in-exchange-online/plus-addressing-in-exchange-online
  8. Send email from a different address in Outlook.com - Microsoft サポート https://support.microsoft.com/en-us/office/send-email-from-a-different-address-in-outlook-com-ccba89cb-141c-4a36-8c56-6d16a8556d2e
  9. Proton Mail addresses and aliases - Proton Support https://proton.me/support/addresses-and-aliases
  10. iCloud メールのメールエイリアスとは - Apple サポート https://support.apple.com/guide/icloud/what-are-email-aliases-in-icloud-mail-mm074af79454/icloud
  11. メールアドレス変更 - NTTドコモ https://www.docomo.ne.jp/info/spam_mail/change_add/
  12. メールアドレス変更方法 - au https://www.au.com/support/service/mobile/trouble/mail/email/change/
  13. Eメール(i)のメールアドレスに使用できない文字や記号はありますか? - ソフトバンク https://www.softbank.jp/support/faq/view/10544
  14. Gmail アドレスのピリオドは無視されます - Gmail ヘルプ https://support.google.com/mail/answer/7436150?hl=ja
  15. Gmail で検索を絞り込む - Gmail ヘルプ https://support.google.com/mail/answer/7190?hl=ja
  16. URL Standard - application/x-www-form-urlencoded (WHATWG) https://url.spec.whatwg.org/#application-x-www-form-urlencoded
  17. RFC 5321 - Simple Mail Transfer Protocol, Section 4.5.3.1 (Size Limits and Minimums) https://www.rfc-editor.org/rfc/rfc5321.html#section-4.5.3.1
  18. RFC 2606 - Reserved Top Level DNS Names https://www.rfc-editor.org/rfc/rfc2606.html

はちみつ動画の主張33項目を全部チェックしてみた

前回の記事([ヒドロキシメチルフルフラール(HMF)とは何か] で、「安いはちみつにはHMFという発がん性物質が入っている」という主張を検証しました。

masalib.hatenablog.com

結果としては、HMFは品質指標であって危険物質ではない という結論だったのですが、この動画、HMF以外にもかなり気になる主張が入っていました。

  • 「天然蜂蜜は血糖値を上げづらい」
  • 「人工蜂蜜で腸内悪玉菌が増えて免疫低下 → 癌」
  • 「蜂蜜で見た目が爆速で若返る」
  • 「加熱されている=以前カビが生えていた証拠」

www.youtube.com

49分の動画の主張を最初から最後まで洗い出したら、33項目 ありました。全部チェックしてみます。

注意: この記事は医療・栄養の専門家ではない個人が、公開されている資料を調べて整理したものです。健康上の判断は専門家にご相談ください。


先に結論

この動画は 完全なデタラメではありません。 むしろ「元になっている科学的事実」はかなりあります。

問題は、その事実から

「猛毒」 「絶対に買ってはいけない」 「癌になる」 「加熱されている=カビが生えていた証拠」 「爆速で若返る」

のような結論に 飛躍する ところが多いことです。

判定基準

記号 意味
概ね正しい
一部正しいが誇張・条件不足
× 根拠不足、または明確におかしい

1. マッドハニーは危険

① トルコ・ネパールなどのマッドハニーはグラヤノトキシンを含み、中毒を起こす →

動画では、めまい、吐き気、低血圧、不整脈などを引き起こし、重症化することがあると説明しています。

これはかなり正確です。

食品安全委員会も、グラヤノトキシンを含むはちみつによって、悪心、嘔吐、めまい、低血圧、心拍数低下、重症時にはショックなどが起こり得ると紹介しています。特にトルコ黒海地域、ネパールなどのはちみつで中毒例があります。1

ただし動画の「神経が異常興奮し続ける→心停止」といった細かい説明は少しドラマチックです。「マッドハニーを興味本位で大量摂取・個人輸入しない」という結論自体は妥当です。


2. はちみつの偽装

② はちみつに砂糖シロップなどを混ぜた偽はちみつが存在する →

これは実際に国際的な問題です。動画では、水あめやコーンシロップなどを加えたものを「フェイクハニー」と呼んでいます。

EUもはちみつへの外部糖類の添加を調査しており、輸入はちみつの真正性について大規模な検査を実施しています。つまり「はちみつ偽装そのもの」は動画が作った話ではありません。2

③ ミツバチに砂糖水を与えて作らせる「ステルスフェイクハニー」がある →

養蜂でミツバチに糖液を給餌すること自体は実際に行われます。採蜜期の給餌や、糖液がはちみつに混入するような生産方法は真正性の問題になります。EUのはちみつ偽装調査でも、給餌由来糖の問題は検討対象になっています。[^2]

ただし動画は、

「安物のはちみつはミツバチに大量の砂糖水を与えて作られている」

という印象をかなり強く与えています。

安いはちみつだから砂糖水由来とは判断できません。

主張 判定
そういう偽装・不適切生産は存在する
安いはちみつに広く存在する 根拠不足

3. はちみつと血糖値

④ 天然はちみつは血糖値をあまり上げず、シロップはちみつは急上昇する →

動画では、

天然はちみつは果糖が多いので血糖値をそこまで急激に上げない フェイクハニーは血糖値を急上昇させる

と説明しています。

ここには事実もあります。はちみつは種類によっては、ブドウ糖・ショ糖などと比較して食後血糖の上昇が小さい場合があります。

しかし はちみつも大量の糖質を含む食品で、普通に血糖値を上げます。 糖尿病患者がはちみつを50g/日摂取した試験ではHbA1cが上昇した研究もあります。3

「天然はちみつ=血糖値を上げにくい健康食品」

とまで言ってしまうのは危険だと思います。

⑤ 砂糖シロップはちみつは雑菌が繁殖しやすく食中毒になる → ×

動画は、天然はちみつには抗菌成分がある一方、シロップで薄められたものでは雑菌が繁殖しやすくなると説明しています。

水分活性が上がれば保存性が低下する、という食品科学上の方向性自体は理解できます。

ただ、

「安い中国産フェイクハニーは輸送中に汚染されて食中毒になる」

という一般化を裏付ける公的なデータは、この動画からは示されていません。

はちみつの真正性問題と、食中毒問題を混ぜています。 別の話です。


4. 加熱はちみつ

⑥ 加熱するとはちみつの酵素が減る →

これはその通りです。

はちみつにはジアスターゼ、インベルターゼ、グルコースオキシダーゼなどが含まれ、熱により活性が低下します。Codexでもジアスターゼ活性やHMFははちみつ品質の指標になっています。4

ただし、酵素が減る=健康効果が大幅に失われる まで言えるかは別問題です。

⑦ 加熱や長期保存でHMFが増える →

ここは動画の中でもかなり正確です。

HMFは糖を含む食品で加熱・保存によって形成されます。はちみつでは過度な加熱や長期保存の品質指標として使われます。Codexでは加工後のはちみつについて原則40mg/kg以下、熱帯地域由来では80mg/kg以下とされています。5

⑧ HMFは発がん物質で、高齢者では癌リスクが上がる → ×

これは、この動画の中でも特に問題の大きい部分です。

動画は、

「ヒドロキシメチルフルフラールという発がん性物質」 「長期摂取すると特に高齢者では癌リスクが高まる」

と断定しています。

しかし研究上、HMFやその代謝物について遺伝毒性・発がん性の可能性は研究されていますが、通常の食品摂取で人間の癌リスクを高めるという結論は確立していません。 レビューでも発がん性・抗発がん性を含め結果は一貫していないとされています。6

しかもHMFははちみつ特有ではなく、コーヒーやパンなど多くの加熱食品にも含まれます。[^5]

特に「高齢者では癌リスクが高まる」という強い主張について、動画では根拠となる研究が提示されていません。

⑨ 加熱はちみつは絶対に買ってはいけない → ×

ここまで来ると明確に言い過ぎです。

加熱によって、

  • HMFが増える
  • 酵素活性が下がる
  • 香りが変わる

ことはあります。[^5] しかしそれは主に 品質の話 であって、「加熱はちみつを食べると健康被害が出る」という話にはなりません。

ちなみに、動画内に矛盾があります

動画では「加熱はちみつは絶対に選んではいけない」と言っている一方で、業務スーパーのブルガリア産純粋はちみつについては「低温で充填されているからおすすめ」と評価しています。

つまり動画自身も実際には、

加熱そのものが問題なのではなく、高温・長時間の過剰な加熱が問題

という話をしていることになります。


5. 残留農薬・抗生物質・重金属

⑩ はちみつから農薬・抗生物質・重金属が検出されることがある →

これはあります。はちみつから農薬残留物などが検出されることはありますし、環境汚染物質のモニタリング対象になることもあります。

ただし重要なのは 検出された=危険ではない ことです。

FDAの監視結果を食品安全委員会が紹介した資料では、はちみつから農薬残留が検出されたものの、ほとんどが痕跡レベルで、公衆衛生上の懸念にならない水準でした。7

「存在することがある」という意味なら○です。

⑪ 中国などの安価なはちみつは大量の農薬・重金属で危険 → ×寄りの△

これは国単位で一般化しすぎです。

特定地域の環境汚染や違反品が存在する可能性は当然あります。しかし、

中国産
  ↓
農薬・重金属が多い
  ↓
健康に危険

とは言えません。輸入食品には残留基準や検査制度があります。


6. フィルター処理

⑫ フィルター処理すると酵素やポリフェノールがほぼ失われる →

動画では、

「はちみつ本来の栄養素を丸ごと奪う」 「抗酸化力が最大90%減る」

と説明しています。

処理方法や加熱条件によってポリフェノール・酵素などに変化が生じることはあります。

しかし「濾過しただけではちみつがほぼ砂糖水になる」という表現は明らかに過剰です。特に 普通の濾過と、超微細濾過+高温処理を同一視してはいけません。

⑬ フィルター処理でポリフェノールがなくなるため糖が一気に吸収される → ×

ここはかなり怪しい説明です。動画では、

ポリフェノールやミネラルが「クッション」になって糖の吸収を遅くしている
        ↓
   フィルター処理で失われる
        ↓
    糖が全部一気に吸収される

と説明しています。

はちみつの血糖反応は、主に糖の構成、特に果糖・ブドウ糖の比率など複数要因で決まります。「ポリフェノールを濾過すると糖が全部一気に吸収される」という機序は支持できません。そもそもはちみつ自体が糖質食品です。[^3]


7. 「加熱=カビが生えていた証拠」

⑭ 加熱・フィルター処理されているはちみつは、以前カビが生えた証拠 → ×

動画では実際にこう主張しています。これは最も分かりやすい誤りの一つです。

はちみつを加温する理由には、

  • 結晶を溶かす
  • 粘度を下げる
  • 濾過・充填を容易にする
  • 酵母による発酵を抑える
  • 均一な製品にする

などがあります。

加熱されたという事実から「一度カビが生えた」と推定することはできません。

個人的には、この動画で一番問題が大きいのはHMFよりむしろ、この主張だと思いました。


8. ボツリヌス菌

⑮ はちみつは1歳未満には危険 →

これは重要で、正しいです。厚生労働省も1歳未満にははちみつを与えないよう明確に警告しています。8

⑯ 普通の加熱ではボツリヌス菌芽胞を殺せない →

これも正しいです。厚労省によれば、芽胞は非常に熱に強く、通常の加熱・調理では死滅しません。[^8]

ですから、

「加熱はちみつだから乳児にも安全」

とは 絶対に 考えてはいけません。ここは動画が正しく指摘している重要な部分です。

⑰ 大人ならボツリヌス菌は全く問題ない →

動画では「大人では全く問題にならない」という表現をしています。

厚労省も1歳以上でははちみつをリスクの高い食品としていません。[^8] ただ「全く問題ない」という絶対表現にする必要はありません。


9. 人工はちみつ

⑱ 糖シロップ主体の商品は天然はちみつとは別物 →

当然です。蜂が作ったはちみつではなく、糖液などで作った「はちみつ風食品」なら、天然はちみつとは栄養組成も違います。ここまでは問題ありません。

⑲ 人工はちみつを食べる → 悪玉菌増加 → 免疫低下 → 癌になる → ×

ここは典型的な「話をつなぎすぎ」です。動画では、

糖シロップ
   ↓
 悪玉菌
   ↓
腸内環境悪化
   ↓
 免疫低下
   ↓
癌細胞を排除できない
   ↓
肝臓癌・大腸癌

という一本の因果関係にしています。

高糖質食の過剰摂取が健康上好ましくないことと、人工はちみつを食べると癌になることは全く別の主張 です。この因果関係をそのまま支持する根拠は示されていません。

⑳ 果糖は肝臓で代謝され、過剰摂取は脂肪肝に関係する →

方向性は正しいです。ただし動画では「人工はちみつ→脂肪肝→肝硬変→肝臓癌」というかなり一本道の説明になっています。

問題は 総摂取量 です。そして 天然はちみつにも果糖は大量に含まれています。

なので「異性化糖だけ悪くて天然はちみつの果糖なら問題ない」という説明にはできません。


10. おすすめはちみつ

㉑ 業務スーパーのブルガリア産はちみつは安全で優秀 →

動画ではかなり具体的な商品を推奨しています。

商品が純粋はちみつであることと、「他の商品より健康に良い」ことは別です。

さらに「味にばらつきがある=本物の証拠」という説明も、補助的な特徴にはなっても真贋判定には使えません。

㉒ アカシアはちみつは固まりにくい →

これは概ね正しいです。アカシア系はちみつは果糖/ブドウ糖比などの関係で比較的結晶化しにくいタイプです。

ただし動画の「固まるはちみつ=本物の天然はちみつの証拠」は×です。

偽物でも組成によって結晶化することがありますし、本物でもアカシアのように長期間固まりにくいものがあります。

㉓ アカシアはちみつはアレルギー体質の人でも比較的安全 → ×寄りの△

動画は「花粉由来の刺激が少ないのでアレルギー体質でも安心」としています。

これは医療上、安易に「安心」と言うべきではありません。はちみつ・蜂由来物質・花粉などにアレルギー反応を示す人はいます。


11. マヌカハニー

㉔ マヌカハニーにはMGOが多く、抗菌作用がある →

ここはかなり正確です。

MGO(メチルグリオキサール)はマヌカハニー特有の非過酸化物型抗菌活性に関係する主要因の一つです。ニュージーランド政府もマヌカハニーの真正性について化学マーカー+DNAマーカーによる公式定義を設定しています。9

㉕ MGOが高ければ高いほど健康に良い →

抗菌活性の指標としてMGOを見る意味はあります。

しかし MGO500+を食べればMGO100+より人間が健康になる といった臨床的な用量反応が確立しているわけではありません。

動画もここは「抗菌活性の指標」として説明しているので、比較的まともです。

㉖ MGO115+くらいが初心者に最適 → △~×

これは医学・食品科学というより、動画制作者のおすすめ基準です。科学的な「初心者の最適値」はありません。


12. 「体力爆上げ」

㉗ はちみつは素早いエネルギー補給になる →

これは普通にそうです。はちみつの主成分は糖なので、糖質としてエネルギーになります。特に運動時などに糖質補給源として利用できます。

㉘ 短期・中期・長期すべてで体力を爆上げする最強食品 → ×

「糖質なのでエネルギーになる」から、

「長期的な体力を爆上げする最強食品」

にはなりません。

はちみつの健康効果について研究はありますが、人間の代謝指標への影響については研究結果にばらつきがあります。10


13. 「爆速で若返る」

㉙ はちみつにはポリフェノールがあり抗酸化作用がある →

これは正しいです。はちみつにはフェノール化合物など抗酸化活性に関係する成分があります。11

㉚ はちみつを食べると植物の防御システムを取り込める →

かなり比喩的な表現です。

ポリフェノールを摂取することと、「植物の防御システムを体内に取り込む」は同義ではありません。しかもはちみつを食べた後、血中で確認されるポリフェノール量は限定的だという研究もあります。[^11]

㉛ はちみつの抗酸化作用で見た目が爆速で若返る → ×

これは完全に誇張です。動画は最終的に、

「圧倒的な抗酸化作用によって見た目が爆速で若返る」

とまとめています。

はちみつに抗酸化成分が存在することと、人間の外見が若返るという臨床効果 は別です。特に「爆速」というレベルの効果を裏付ける根拠はありません。


14. 砂糖との置き換え

㉜ 砂糖を大量に取るよりはちみつに置き換えた方がよい →

これは量次第です。

例えば砂糖20gを使っていた料理で、甘味が強いはちみつを15gに減らせるなら、結果として糖質・エネルギーを減らせる可能性があります。

しかし、

砂糖20g → はちみつ20g

なら「健康食品に変わった」わけではありません。はちみつも大部分が糖です。臨床研究でも必ずしも代謝改善が一貫して確認されているわけではありません。[^3]

㉝ はちみつは1日大さじ2~3杯なら健康効果が上回る → ×

これはかなり気になりました。動画は、

「1日大さじ2~3杯程度であれば、むしろ健康効果が上回る」

としています。

しかし、この量が万人にとって健康上最適であるという確立した基準はありません。大さじ3杯ともなれば、それなりの量の糖を摂取することになります。

「健康のために毎日大さじ2~3杯食べるべき」とは言えません。


全体の採点表

動画の主要主張 判定
マッドハニー中毒
糖シロップによるはちみつ偽装
ミツバチへの糖液給餌による偽装
天然はちみつは血糖をあまり上げない
フェイクハニーは食中毒になりやすい ×
加熱で酵素が減る
加熱でHMFが増える
HMF=人間の発がん物質 ×
高齢者はHMFで癌になる ×
加熱はちみつは絶対NG ×
はちみつから農薬等が検出されることがある
中国産はちみつは農薬・重金属で危険 △~×
フィルターで成分が変化する
フィルターではちみつが砂糖水になる ×
ポリフェノールが糖吸収の「クッション」 ×
加熱はちみつ=カビが生えていた証拠 ×
1歳未満にはちみつは危険
普通の加熱ではボツリヌス芽胞は死なない
糖シロップ主体は天然はちみつとは別物
人工はちみつ→悪玉菌→癌 ×
マヌカのMGOに抗菌活性
MGO115+が初心者に最適 △~×
はちみつはエネルギー源になる
はちみつで体力が「爆上げ」 ×
はちみつには抗酸化成分がある
はちみつで「爆速で若返る」 ×
砂糖をはちみつに置換するのは有益な場合がある
毎日大さじ2~3杯なら健康効果が上回る ×

この動画をどう評価するか

私なら、「科学的事実を材料にはしているが、健康上の結論をかなり誇張する動画」 と評価します。

飛躍のパターンが決まっている

一番特徴的だと思ったのが、この構造です。

【事実】
「HMFは加熱で増える」

        ↓

【まだ言える】
「過度な加熱・長期保存の品質指標になる」

        ↓

【動画の飛躍】
「HMFは発がん性物質」

        ↓

【さらに飛躍】
「高齢者の癌リスクが上がる」

        ↓

【結論】
「加熱はちみつは絶対買うな」

同じパターンが他でも使われています。

ポリフェノールがある
   → 抗酸化作用がある
      → 老化を防ぐ
         → 見た目が爆速で若返る
糖シロップを食べ過ぎるのはよくない
   → 腸内環境が悪化
      → 免疫低下
         → 癌になる

最初の1~2ステップは正しく、そこから先が根拠なく延長されている。 ここが、この手の動画を見る上で一番注意すべきところだと思いました。


最初の疑問への答え

そもそもの疑問は 「安い加熱はちみつを食べるのは危険なのか?」 でした。

33項目を全部確認しても、結論は変わりませんでした。

普通に市販されている純粋はちみつについて、「加熱されているから健康に悪い」と心配する必要はありません。

非加熱・低温処理を選ぶ意味があるとすれば、「安全性」よりも 香り・風味・酵素活性など、はちみつ本来の品質を重視したいから です。CodexでもHMFなどを品質基準として管理しています。[^4]

一方で、この動画にも 正しく重要な指摘 はありました。

  • 1歳未満にはちみつを与えてはいけない(○)
  • 普通の加熱ではボツリヌス菌芽胞は死なない(○)
  • はちみつの糖シロップ偽装は実在する国際問題(○)
  • マッドハニー中毒は本当にある(○)

全否定すべき動画ではないでも 飛躍しちゃうので自分でも調べたほうがいいかな というのが正直な感想です。

個人的に一番問題が大きいと感じたのは、 HMFよりむしろ以下の4つです。

  1. 「加熱=カビが生えた証拠」
  2. 「人工はちみつ→癌」
  3. 「はちみつで爆速若返り」
  4. 「1日大さじ2~3杯なら健康効果が上回る」

ここは健康情報として鵜呑みにしない方がよい部分だと思います。


参考

ヒドロキシメチルフルフラール(HMF)とは何か ―「安いはちみつは危険」は本当か

この記事を書いたきっかけ

YouTubeで「安いはちみつにはヒドロキシメチルフルフラールという発がん性物質が入っている」という趣旨の動画を見ました。

www.youtube.com

ヒドロキシメチルフルフラールという物質を自分で調べてみたのですが、イマイチよく分かりませんでした。

  • そもそもHMFって何なのか
  • 本当に発がん性物質なのか
  • 「安いはちみつ=加熱されている=危険」は成り立つのか

調べて整理したのが、この記事です。

先に結論を書きます。

HMFが入っている=危険なはちみつ、という理解は正しくありません。 むしろHMFは「そのはちみつがどれくらい加熱されたか・古くなっているか」を見る 品質指標 として使われる物質です。

注意: この記事は医療・栄養の専門家ではない個人が、公開されている資料を調べて整理したものです。健康上の判断は専門家にご相談ください。


1. HMFとは何か

HMF(正確には 5-ヒドロキシメチルフルフラール)は、果糖やブドウ糖などの糖が、加熱や長期保存によって変化すると自然にできる 物質です。

ここが最初の誤解ポイントでした。

人工的な添加物ではありません。 糖があって熱が加わると、勝手にできます。

そしてはちみつだけの特殊な物質でもありません。

  • コーヒー
  • パン
  • ドライフルーツ
  • キャラメル

など、普段食べている食品にも含まれます。

J-GLOBALに掲載されているレビュー論文でも、一般的な食品から人は 1日あたり約4~30mg を摂取するとされています。1

つまり、はちみつを避けたところでHMFの摂取をゼロにはできません。


2. はちみつとHMFの関係

採れたばかりの新鮮なはちみつでは、HMFは通常かなり少ないです。

ところが、

はちみつを強く加熱する
        ↓
    糖が分解される
        ↓
     HMFが増える

また、

   長期間保存する
        ↓
 少しずつHMFが増える

という性質があります。

そのため、

  • 高温で一気に処理されたはちみつ
  • 暑い場所で長期間保管されたはちみつ

ではHMFが高くなることがあります。これは価格とは直接関係ありません。2


3. 国際基準はあるが「毒の基準」ではない

国際食品規格の Codex でも、はちみつのHMFについて基準があります。

区分 基準値
通常 40 mg/kg以下
熱帯地域由来 80 mg/kg以下

ここで重要なのは、この数字が 「40mgを超えたら毒」という意味ではない ことです。3

どちらかというと、

HMFが多い → 強く加熱された可能性がある → 古い可能性がある → はちみつ本来の品質が落ちている可能性がある

という 品質管理の目安 です。

例えるなら「賞味期限」に近い性質の指標だと思います。1日過ぎたら毒になるわけではないけれど、状態を推し量る目安にはなる、という感じです。


4. 「発がん性がある」という話は?

ここが動画などで一番怖く説明されやすいところです。

HMFについては、体内で別の物質に代謝されることなどから、遺伝毒性・発がん性について研究されてきました。研究が存在すること自体は事実です。

ただし、調べたレビュー論文(2011年)では、動物試験を含めた研究を総合した結果、

通常の食品摂取によるHMFについて、人間での発がん性や遺伝毒性のリスクは低い

という結論になっています。ラットの短期試験で発がん性は確認されず、ラット・マウスの長期試験でも腫瘍増加などは確認されなかったとされています。[^1]

より新しいレビューでも、発がん性・抗発がん性を含めて結果は一貫していないとされています。4

ですので、

「HMFという発がん物質が安い蜂蜜に入っているから危険」

という説明は、かなりミスリーディングだと思います。


5. よくある主張と実際

整理するとこうなります。

主張 実際
HMFは人工添加物 ❌ 糖から自然に生成する
安い蜂蜜だけに入っている ❌ 高価な蜂蜜にも存在しうる
HMFが入っていたら危険 ❌ それだけでは危険とはいえない
加熱すると増える
長期保存でも増える
蜂蜜の品質指標になる
発がん性が確認されている ❌ 通常の食品摂取でのリスクは低いと評価されている

私なら 「安いはちみつだからHMFが危険」という理由だけで商品を避ける必要はない と考えます。

むしろHMFについて面白いポイントは、「危険物質」というより、非加熱・低温処理を売りにしている高級はちみつと、大量生産のはちみつの品質差を見る指標の一つ になり得るところです。


6. では「加熱処理されているから良くない」は本当か

動画のもう一つの主張がこれでした。ここも調べました。

結論としては、「加熱処理されている=体に悪い」は言い過ぎ です。

加熱で起きること(事実)

はちみつを加熱すると、確かにいくつか変化します。

  • HMFが増える ― 加熱温度や時間が増えるほど増えることが確認されています[^2]
  • 酵素が減る ― ジアスターゼ、インベルターゼ、グルコースオキシダーゼなど
  • 一部の香り・ポリフェノールが減る ― 液状化のための加熱でフェノール類・フラボノイドが減少した研究があります5

ここまでは事実です。

ただし、それは「品質」の話

これは主に 「品質が落ちる可能性がある」という話 であって、「健康被害が出る」という話ではありません。

Codexが加工後のはちみつにHMFの上限値を設けているのも、「少しでもHMFがあったら毒」という考え方ではありません。[^3]

そもそも加熱には理由がある

はちみつを加温する理由は普通にあります。

  • 結晶化して固くなったものを溶かす
  • 粘度を下げて瓶詰め・濾過しやすくする
  • 酵母による発酵を抑える
  • 均一な製品にする

FAOの資料でも、結晶化したはちみつを 35~50℃程度 で温めて溶かす処理が紹介されています。6

つまり、加熱自体が悪質な処理というわけではありません。

整理すると

説明 評価
加熱するとHMFが増える ✅ 本当
強い加熱で一部の酵素・成分が減る ✅ 本当
非加熱蜂蜜の方が成分を保ちやすい ✅ 概ね本当
加熱蜂蜜は健康に悪い ❌ 根拠が飛躍している
加熱蜂蜜は毒 ❌ 誤り
安い蜂蜜=強く加熱され危険 ❌ 価格だけでは判断できない

動画の論理を書き出すと、

スーパーの安い蜂蜜は加熱されている   ← 事実の場合がある
        ↓
   HMFができている              ← これも事実
        ↓
    だから体に悪い               ← ここが飛躍

前半には事実が含まれていますが、「だから健康に悪い」という結論にはかなり飛躍があります。


7. 意外だったこと:加熱してもボツリヌス菌対策にはならない

これは調べていて一番「へえ」と思った点です。

「加熱してある蜂蜜の方がボツリヌス菌の心配がなくて安全」というわけでもありません。

厚生労働省によると、

  • はちみつは一般に包装前に加熱処理を行わないことも多い
  • しかも ボツリヌス菌の芽胞は通常の加熱では死滅しない

とされています。7

そのため、加熱・非加熱にかかわらず1歳未満には与えてはいけません。

「加熱してあるから乳児にも大丈夫だろう」は絶対にやってはいけない考え方です。ここは動画も正しく指摘していました。


8. まとめ ― 私ならこう考える

HMFについて

HMFは「危険物質」ではなく、加熱の強さと保存期間を映す品質指標。 通常の食品摂取レベルで人間の発がんリスクが高まるという結論は確立していない。

加熱はちみつについて

「非加熱のほうが本来の成分を残しやすい」は概ね本当。 でも「加熱したものは体に悪い」は別の話。

買うときに私が見るポイント

「非加熱かどうか」を最優先にはしません。もっと現実的には、

  1. 原材料が「はちみつ」だけか
  2. 信頼できるメーカー・輸入者か
  3. 産地が明確か
  4. 極端に不自然な価格ではないか

くらいを確認すれば十分だと思っています。

非加熱・低温処理を選ぶのは、「危険を避けるため」ではなく「香りや風味、酵素などはちみつ本来の状態をできるだけ残したものを食べたいから」 と考えるのが適切だと思いました。


次の記事

この動画、HMF以外にも「天然蜂蜜は血糖値を上げづらい」「人工蜂蜜で腸内悪玉菌が増えて免疫低下→癌」「蜂蜜で爆速で若返る」など、気になる主張がたくさん入っていました。

49分の動画の主張を、最初から最後まで33項目に分けて「○正しい/△誇張/×誤り」でチェックしてみました。

はちみつ動画の主張33項目を全部チェックしてみた


参考

MRAMで投資するならどこ? ― 日本企業への恩恵を「直接度」で整理してみた

前回の記事の続きです masalib.hatenablog.com

MRAMという不揮発性メモリが「高温に強い」「電源を切っても消えない」「SRAMより小さく作れる」という特徴を持ち、自動車やAI半導体で注目されていることを整理しました。

動画の中で、遠藤教授が「MRAMをビッグテックが依頼していると聞いた」という趣旨の話をしていました。

もしMRAMが本格量産されたら、日本企業にはプラスになるのか。投資という観点で調べてみたのがこの記事です。

注意: これは投資助言ではありません。個人が動画をきっかけに調べて整理したメモです。実際の投資判断はご自身の責任でお願いします。また、記載している企業情報や上場状況は執筆時点で確認した内容です。


1. まず「ビッグテックが依頼している」の真偽

動画のこの部分は、動画内では推測として語られています。

遠藤教授は、TSMCが先端ノードでMRAMを進めるには大口顧客の要求があるはずで、「G、A、N…のような数社のどこかでは」という趣旨を話しています。

つまり、Google、Apple、NVIDIAなど特定企業がTSMCへMRAMを発注したという公式確認は、調べた範囲では見つかりませんでした。 ここは推測として扱うべきです。

一方で、TSMC自身がMRAMをかなり本気で進めていることは確認できます。

TSMCは 22nm/16nm の eMRAM を量産段階に置き、さらに 12nm や 5nm の MRAM を自動車、データセンター、通信、Edge AI 向けに開発しています。1

つまり「市場ニーズがある」というところまでは、公式情報で裏付けられています。


2. 恩恵を受けるのは「MRAMを作る会社」だけではない

ここが一番の気づきでした。

MRAMが普及したときに恩恵を受けるのは、MRAMチップそのものを売る会社だけではありません。むしろ 製造装置・材料・研究IPを持つ企業 のほうが分かりやすい。

構造としてはこうなります。

NVIDIA / Apple / Google / Amazon など
        ↓
AI半導体で大量キャッシュが欲しい
        ↓
TSMCなどにMRAM要求
        ↓
TSMCがMRAM量産
        ↓
MRAM用製造装置・材料が大量に必要
        ↓
日本企業にも受注

これはちょうど、

「NVIDIAのGPUが売れる → NVIDIAだけが儲かるのではなく、TSMC、SK hynix、東京エレクトロン、アドバンテストなどにも波及する」

のと同じ考え方です。

なぜ製造装置が必要になるのか。MRAMの核心部分は MTJ(磁気トンネル接合) という構造で、

CoFeB
─────
 MgO
─────
CoFeB

こういう非常に薄い磁性膜を積層して作ります。層数は25層以上になることもあり、膜厚・組成・界面を精密に制御する必要があります。

普通のCMOS製造装置では作れません。専用の成膜装置(スパッタリング装置)が必要 になります。


3. 「直接度」で整理した一覧

MRAMが普及したときの 直接度 と、会社全体の利益に与えるインパクト は別々に考えるべきだと思ったので、分けて整理しました。

企業 MRAMとの直接度 MRAM普及時の恩恵 見方
ULVAC(6728) ★★★★★ MRAM用成膜装置を直接持つ
JX金属(5016) ★★★★★ MRAM用磁性材料・スパッタリングターゲット
東京エレクトロン(8035) ★★★★★ STT-MRAM用成膜装置。ただし会社が巨大
ルネサス(6723) ★★★★☆ MRAM搭載マイコンを自ら製品化する側
アドバンテスト(6857) ★★★☆☆ MRAM量産時の検査・テスト
レーザーテック(6920) ★☆☆☆☆ 小~中 MRAM専用というより先端半導体全般

以下、1社ずつ見ていきます。


4. ULVAC(6728)― MRAMというテーマへの純粋度が高い

MRAMというテーマへの 純粋な直接度ではかなり高い です。

ULVACは磁気デバイス用の製造装置を持っており、公式サイトでも「MRAMなどの不揮発性メモリ向けに、成膜からエッチングまで対応」と明記しています。2

さらに、300mmウエハー対応の量産向けスパッタリング装置「ENTRON」シリーズを持ち、MRAM用TMR膜形成用の量産超高真空スパッタ装置をかなり昔から開発しています。3

TSMC / Samsung / Intel など
        ↓ MRAM増産
   MRAM製造ライン増設
        ↓
     成膜装置需要
        ↓
      ULVAC

という、非常に分かりやすい構造です。

投資目線で面白いところ

東京エレクトロンよりULVACのほうが会社規模が小さいので、

MRAM関連需要が本格化した場合、会社全体への影響が相対的に大きくなる可能性

があります。

ただしリスクでもある

これは裏返すとリスクでもあります。MRAMが期待ほど普及しなければ、そのテーマだけを期待して買うのは危険です。


5. JX金属(5016)― 個人的に一番の発見

調べ直して、JX金属はかなり面白い と思いました。

2025年3月19日に東証プライムへ上場した会社です。証券コードは5016。4

何をMRAM向けに売るのかというと、スパッタリングターゲット です。

先ほどのMTJの、

CoFeB
MgO
Ru
Ta
など

という非常に薄い膜を作るとき、その原料となる板・材料が必要です。それがスパッタリングターゲットです。

JX金属自身が公式サイトで「磁気デバイス向けスパッタリングターゲットがMRAM製造にも使われ始めている」と明記しています。5

これはかなり直接的です。

装置と違って「消耗品」なのが面白い

ここが重要なポイントだと思います。

ULVACや東京エレクトロンの装置は、

工場建設
 ↓
装置購入
 ↓
数年間使う

というビジネスです。

一方、ターゲット材料は、

MRAMを作る → 材料を消費
MRAMを作る → また材料を消費
MRAMを作る → また購入

になります。

つまりMRAMの 生産量そのものが増えれば、継続的な需要 になります。この点でJX金属はかなり評価できると思いました。


6. 東京エレクトロン(8035)― 技術的直接度は文句なし

技術的な直接度なら文句なしで★★★★★です。

東京エレクトロンには EXIM / LEXIA-EX という、複雑な多層膜を形成する300mm PVD装置があります。同社自身が、EXIMについて「STT-MRAMの多層膜形成に貢献する量産対応装置」と説明しています。6

しかもこれは最近急に始めた話ではありません。東京エレクトロンは2010年代前半から東北大学とSTT-MRAMの製造技術を共同開発しており、複数顧客の開発ラインへ導入した実績も公表しています。^7

動画で「東京エレクトロンが昔からMRAMを支援した」という話が出てくるのも、この背景があります。

MRAM市場拡大
     ↓
世界のファウンドリーが増産
     ↓
MRAM成膜装置
     ↓
東京エレクトロン

は非常に自然な流れです。

ただし株式投資としては一つ問題がある

東京エレクトロンは巨大です。

MRAM以外にも、NAND・DRAM・HBM・ロジック・AI半導体など、大量の半導体製造装置を売っています。

したがってMRAM市場が仮に10倍になったとしても、

東京エレクトロン全体の利益が10倍になるわけではありません。

ここがULVACとの決定的な違いです。

私なら、

MRAMが成功しても失敗してもAI半導体全体で成長する会社

として東京エレクトロンを見ます。これはむしろ長期投資ではメリットとも言えます。


7. ルネサス(6723)― MRAMを「使う側」

これは装置メーカーとは立ち位置が違います。ルネサス自身が MRAMを搭載したマイコンを作る側 です。

2024年には22nmロジック混載MRAMの試作チップで、200MHz超のランダム読み出しなどを実証しています。7

さらに2025年に発表した RA8P1 では、Embedded MRAM を実際の製品特徴として掲げています。8

従来                    将来

ルネサスマイコン    →    ルネサスマイコン
     +                      +
   Flash                   MRAM

前回の記事で説明した「高温対応 → 自動車・産業機器」という市場は、まさにルネサスの得意分野です。

したがって、「MRAM搭載マイコン」という製品そのものが競争力になる 可能性があります。

ULVACやTELとは別の意味で面白い会社です。


8. アドバンテスト(6857)― 検査する会社

こちらは MRAMを作った後に、ちゃんと動くか検査する会社 です。

アドバンテストは東北大学CIESと共同でSTT-MRAMを測定するメモリテスト技術を開発しています。9 128Mbit STT-MRAMを実際に同社のメモリテストシステムで評価した実績もあります。10

量産になると、

100個作りました

  ではなく

何億・何十億個作ります

となります。当然、全部正常か高速に検査する必要があります。

そこでアドバンテストが恩恵を受ける可能性があります。

ただし現在のアドバンテストにとって圧倒的に重要なのはAI/HPCを含む半導体テスト全般なので、MRAM単独の恩恵度ではULVACなどより下 と考えます。


9. レーザーテック(6920)は?

MRAM銘柄としては、かなり順位を下げます。

レーザーテックは非常に優れた半導体検査装置メーカーですが、「MRAMだからレーザーテックが必要」 という直接的な関係を、今回確認した公式情報からは確認できませんでした。

MRAM搭載SoCが先端プロセスで増える
        ↓
     EUV利用が増える
        ↓
    マスク検査需要

という間接的な恩恵は考えられます。

なので、

MRAM ★☆☆☆☆ / 先端半導体 ★★★★★

くらいの捉え方が妥当だと思います。


10. 【訂正】JSRは現在買えません

調べる過程で、最初は「JSRも材料メーカーとして候補では」と考えていました。実際、JSRは2024年・2025年のSEMICON JAPANで「MRAM向け材料」を次世代技術として展示しています。

しかし、JSR株は現在買えません。

JSRは2024年6月25日に東証を上場廃止しています。11

したがって「日本の上場企業」という条件からは除外になります。ニュースや展示情報だけを見ていると、こういう見落としをするので注意が必要でした。


11. 【重要】MRAM ≠ Rapidus

ここは動画を見ていると混ざりやすいところです。

動画のタイトルに「Rapidus」が入っているので、「MRAM=Rapidus」と思ってしまいがちですが、

MRAM市場が伸びても、Rapidusが直接大儲けするとは限りません。

現時点ではTSMCが既にMRAMの量産・開発を進めています。22nm/16nmは量産段階で、5nmなども開発中です。[^1]

Rapidusが将来、

Rapidus 2nmロジック
       +
      MRAM

を組み合わせられれば非常に面白いですが、これは今後の話です。

現在の「MRAM普及の日本企業への恩恵」を考えるなら、

製造装置 → 材料 → IP/研究 → ファウンドリー

の順に見るのが妥当だと思います。


12. 3つのタイプに分けて考える

投資テーマとして整理すると、非常に分かりやすくなりました。

A:MRAMそのものに賭ける

ULVAC(6728) / JX金属(5016)

MRAM普及
   ↓
装置・材料需要
   ↓
直接恩恵

この2社が一番分かりやすい。ただしMRAMが普及しなければ、そのテーマは外れます。

B:MRAM+半導体全体に賭ける

東京エレクトロン(8035) / アドバンテスト(6857)

MRAMが成功 → プラス

MRAMがそれほど成功しない
        ↓
AI/HBM/DRAM/先端ロジックが伸びる
        ↓
それでもプラスになり得る

長期投資なら、こちらのほうがリスクは分散されています。

C:MRAMを使って製品競争力を上げる

ルネサス(6723)

MRAM
 ↓
高温 / 省電力 / 高速 / 不揮発
 ↓
自動車 / 産業機器 / Edge AI / マイコン

というポジションです。


13. 「MRAMが大成功した場合」の順位

あくまで 株価ではなく、MRAMとの事業上の関係性 として順位を付けるなら、

  1. ULVAC
  2. JX金属
  3. 東京エレクトロン
  4. ルネサス
  5. アドバンテスト

くらいで見ます。

ただし「20年くらい潰れにくい会社か」という観点まで加えると、評価は変わります。

私なりの結論としては、

MRAMだけを理由に買うならULVAC/JX金属を調べる。 MRAMもAI半導体も含め20年を見るなら東京エレクトロンを中心に考える。

という見方になりました。

特に今回発見した JX金属(5016) は面白いです。2025年上場なので比較的新しく、しかも会社自身が「MRAM向けに磁性スパッタリングターゲットが使われ始めている」と明記しています。[^4]


14. 最後に ― 注意しておきたいこと

今回整理していて、自分で気をつけようと思った点です。

① 「MRAMが伸びればこの会社の利益が何%増える」という段階ではない

各社とも巨大企業で、MRAM関連売上だけを明確に分離して公表しているわけではありません。「関係がある」ことと「業績インパクトが大きい」ことは別です。

② 動画の話と公式情報を分けて考える

「ビッグテックが依頼している」は動画内でも推測として語られている話でした。裏付けが取れる情報(TSMCの量産状況、各社の製品ページ)と、そうでない話は分けたほうがいいです。

③ テーマ株の宿命

MRAMが期待ほど普及しない可能性は当然あります。特にAI用の巨大キャッシュとしての採用は、まだ「可能性」の段階です。

④ 上場状況は必ず確認する

JSRの件がまさにそれでした。ニュースや技術展示の情報だけ見ていると、すでに上場廃止していることに気づけません。


関連記事

きっかけになった動画:Rapidus×性能1億倍のスピン半導体!?


参考

MRAMとは何か ―「150℃まで耐える」の本当の意味と、AI時代に注目される理由

この記事を書いたきっかけ

YouTubeで Rapidus×性能1億倍のスピン半導体!? という動画を見ました。

www.youtube.com

東北大学の遠藤教授が MRAM について語っている動画です。

面白かったのですが、途中の

「今のフラッシュだと85℃までしか持たない。MRAMなら150℃まで持つ」

という部分が、正直よく分かりませんでした。

  • そもそもMRAMって何?
  • 85℃と150℃で、何がそんなに嬉しいの?
  • 後半で言っている「AIに効く」ってどういうこと?

このあたりを調べて整理したのが、この記事です。AIに助けてもらって作った記事です。ChatGPTとClaudeCodeに感謝です。

先に結論を書いておくと、「シリコン半導体は85℃を超えるとダメ」という単純な話ではありませんでした。 ここは動画がかなり言葉を端折っています。


1. MRAMとは何か

コンピュータには、用途によっていろいろな種類のメモリが使われています。

メモリ 電源OFFでデータ 速さ 主な用途
SRAM 消える 非常に速い CPUキャッシュ
DRAM 消える 速い PCのメインメモリ
Flash 残る やや遅い SSD・マイコンのプログラム
MRAM 残る 速い FlashやSRAMの代替候補

MRAM は Magnetoresistive RAM(磁気抵抗メモリ) の略です。

Flashが「電荷」で0/1を記憶するのに対して、MRAMはざっくり言うと

磁石の向きで0/1を記憶します。

磁石の向きは電源を切っても変わりません。だから電源を落としても記憶が残ります。これを「不揮発性メモリ」と呼びます。

Imec も MRAM を、磁性層の磁化状態によって情報を保持する不揮発性メモリとして説明しています。1


2. 「シリコンは85℃まで」は正確ではない

まずここを整理しておきます。動画をそのまま受け取らないほうがいい部分です。

シリコン半導体そのものが85℃で壊れるわけではありません。

自動車用半導体では、125℃や150℃近辺まで動作保証される製品は普通にあります。

では何が問題なのか。

Flashメモリの「長期間データを保持できるか」という性能が、温度に強く依存する

ということです。

25℃なら長期間保持できる

  ↓

85℃
保持期間が短くなる

  ↓

125℃・150℃
さらに厳しくなる

温度が上がるほど、電子が絶縁膜を抜けたりして、記録していた電荷が失われやすくなります。

MRAM の場合は電荷ではなく磁化状態を使って記憶するため、この点で有利です。実際、IEEE の STT-MRAM 研究でも、自動車用途に向く理由として「高温でのデータ保持、高い書き換え耐久性、高速書き込み」が挙げられています。2

なので動画の「今フラッシュですと85℃までしか持たない」という部分は、

△ かなり省略した説明

だと思ってください。「85℃を超えた瞬間にFlashが壊れる」という意味ではありません。


3. では「150℃まで使える」と何が嬉しいのか

ここが動画の一番重要なところです。

例えばハイブリッド車を考えます。

従来

モーター
🔥 高温
 │
 │ 離す
 ↓
制御基板
CPU
Flash

モーターやエンジンの近くは、かなり高温になります。

そのため「制御用マイコンを熱源から離して置こう」となります。

すると、

  • 配線が長くなる
  • コネクタが必要
  • 制御基板用の場所が必要
  • 冷却が必要になる場合がある
  • 組み立て工程が増える

という問題が出ます。

ここを MRAM にすると、

MRAM採用

┌──────────────┐
│ モーター      │
│      +      │
│ 制御回路      │
│ CPU + MRAM   │
└──────────────┘

のように一体化しやすくなる、というのが動画の主張です。

つまり150℃耐えること自体が目的ではありません。

「熱いところにも電子回路を置ける」→ 設計の自由度が大きくなる

というところが価値です。

具体的にどう変わるか

現在

モーター
↓
ケーブル
↓
インバータ
↓
制御基板
↓
マイコン
↓
Flash

将来

モーター
+
インバータ
+
制御回路
+
MRAM

こうまとめられる可能性があります。

そうなるとメーカーにとっては、

  • 部品点数削減
  • 配線削減
  • 小型化
  • 軽量化
  • 組み立て工程削減
  • 故障箇所削減

につながる可能性があります。

動画で「部品が変わるだけじゃなく、製造工程も変わる」と言っているのは、こういう話です。この部分はかなり筋の通った話だと思います。


4. MRAMのすごさは「150℃」だけではない

むしろこちらのほうが重要かもしれません。MRAM には、

  1. 電源OFFでも消えない
  2. Flashより高速
  3. 書き換え回数が多い
  4. 高温に強い
  5. SRAMより小型化できる可能性がある

という特徴があります。

狙っているのは、

Flash
「消えないけど遅い」

+

SRAM
「速いけど電源OFFで消える」

       ↓

MRAM
「速い + 消えない」

という「いいとこ取り」です。

Imec も MRAM について、組み込みFlashの代替として既に使われ始めており、さらに SRAM キャッシュの代替候補にもなっていると説明しています。3

さらに SOT-MRAM では、SRAM に近い高速性と、不揮発性による低い待機電力、高密度化の可能性が研究されています。4


5. ここからが本題 ― なぜ「AIに効く」のか

動画の後半では「SRAMをMRAMにするとキャッシュ容量を10倍にできる」「AIに効く」という話が出てきます。ここを理解するには、CPUのキャッシュの仕組みから見ていくのが早いです。

先に結論を書きます。

MRAMそのものがCPUの計算速度を何倍にもするわけではありません。 MRAMを使うことで「CPU/GPUのすぐ近くに置ける高速メモリを大容量化できる可能性」があり、結果として遅い外部メモリを読みに行く回数を減らせるため、AI処理が速くなる可能性がある、という話です。

5-1. CPUのL1・L2・L3とは何か

CPUから見ると、メモリはこんな階層で並んでいます。

                 速い
                  ↑
                  │
             ┌─────────┐
             │ レジスタ │
             └─────────┘
                  │
             ┌─────────┐
             │ L1 cache│ 数十KB
             └─────────┘
                  │
             ┌─────────┐
             │ L2 cache│ 数百KB~数MB
             └─────────┘
                  │
             ┌─────────┐
             │ L3 cache│ 数MB~数十MB
             └─────────┘
                  │
             ┌─────────┐
             │  DRAM   │ 数GB~数百GB
             └─────────┘
                  │
             ┌─────────┐
             │SSD/HDD  │
             └─────────┘
                  │
                  ↓
                 遅い

なぜこんな面倒な構造にするのかというと、

速いメモリほど高価で、大きく作れない

からです。

CPUはものすごく速いのですが、DRAMからデータを持ってくるのはCPUからすると非常に遅い。そこで「最近よく使ったデータはCPUのすぐ近くに置いておこう」というのがキャッシュです。

5-2. 「机」で考えると分かりやすい

自分が仕事をする場面に置き換えてみます。

頭の中            レジスタ

机の上            L1

机の引き出し       L2

本棚              L3

別の部屋           DRAM

倉庫              SSD

よく使う資料が机の上にあれば、すぐ取れます。

ところが「資料どこだっけ?」となって別の部屋まで取りに行けば、その間、仕事が止まります。

CPUもまったく同じです。

CPUが「このデータが欲しい」となったとき、

L1にある?
 ↓ 無い

L2にある?
 ↓ 無い

L3にある?
 ↓ 無い

DRAMまで取りに行く

こうなります。これをキャッシュミスと言います。キャッシュミスが多いほど、CPUは待たされます。

5-3. AIではこの問題がさらに深刻

AIでは大量の数字を扱います。単純化すると、

入力データ
 ×
AIモデルの重み
 ↓
大量の掛け算・足し算

を猛烈な勢いで繰り返しています。

そして計算機そのものは、ものすごく速くなっています。問題は、

計算するデータを持ってくるのが間に合わない

ことです。これが今のAI半導体の非常に大きな問題です。

5-4. GPUとHBMの関係

現在のAI用GPUは、ざっくりこうなっています。

             GPU
    ┌─────────────────┐

     演算器 演算器 演算器
     演算器 演算器 演算器

          キャッシュ

    └─────────────────┘
              │
        ┌───────────┐
        │    HBM    │
        │  数十GB~  │
        └───────────┘

HBM は普通のメモリより高速ですが、それでもGPUチップ内部のキャッシュより遠いです。

だから理想は「できるだけGPU内部にデータを置いておきたい」となります。

5-5. じゃあL3キャッシュを巨大にすればいい?

まさにそうなのですが、問題があります。

現在キャッシュとして主に使われているのは SRAM です。SRAMは非常に高速なのですが、

面積をたくさん使う

という欠点があります。

┌────────────────────┐
│ CPU/GPU演算回路      │
├────────────────────┤
│                     │
│ SRAMキャッシュ       │
│                     │
└────────────────────┘

「もっとキャッシュを増やしたい」と思っても、

┌────────────────────┐
│ 演算回路             │
├────────────────────┤
│                     │
│                     │
│ SRAM                │
│                     │
│                     │
└────────────────────┘

こうなってチップが巨大になります。巨大になると、

  • 高価になる
  • 消費電力が増える
  • 製造歩留まりが悪くなる

ので、限界があります。

5-6. そこでMRAM

動画で遠藤教授が話しているのがここです。

「SRAMよりもMRAMってセルサイズが小さいので、同じ面積だったらキャッシュ容量を大きくできる」

つまり、同じ面積で

SRAMの場合            MRAMの場合

┌──────────────┐      ┌──────────────┐
│              │      │              │
│   SRAM       │  →   │   MRAM       │
│   100MB      │      │   数百MB~    │
│              │      │   数GB?      │
└──────────────┘      └──────────────┘

とできる可能性がある、という話です。

5-7. するとAIでは何が起きるのか

例えばAIの計算で 1GBのデータを繰り返し使う とします。

キャッシュが100MBしかない場合、

GPU
 │ データ足りない
 ↓
HBM
 │ データ取得
 ↑
GPU
 │ また足りない
 ↓
HBM

を何度も繰り返します。

MRAMでキャッシュを1GBにできれば、

GPU
┌─────────────────┐
│                 │
│  MRAM 1GB       │
│  必要データ全部   │
│                 │
└─────────────────┘

ほとんどHBMに
取りに行かなくていい

となる可能性があります。

つまり、

計算が速くなるのではなく、「待ち時間が減る」ことでAI全体が速くなる。

ここが一番重要なポイントです。

5-8. Webサーバーの経験に置き換えると分かりやすい

自分はサーバーをやっていたので、この話はRedisに置き換えると腑に落ちました。

PHP
 ↓
毎回MySQLに問い合わせ
 ↓
結果取得

これをRedisなどにキャッシュすると、

PHP
 ↓
Redis

で済みます。

PHPの処理速度そのものが速くなったわけではありません。DBアクセスをしなくて済むから速くなった わけです。

MRAMの話もかなり似ています。

AIの場合

GPU
 ↓
HBMを読みに行く

     ↓

巨大なMRAMキャッシュ

     ↓

HBMアクセスを減らす

6. 「電源を切ってもキャッシュが残る」という特徴

ここがSRAMとの大きな違いです。

SRAM                    MRAM

電源ON                  電源ON
 ├ データあり            ├ データあり
 │                      │
電源OFF                 電源OFF
 ↓                      ↓
全部消える               データが残る

したがって、

必要な部分だけ電源ON
       ↓
    処理終了
       ↓
    電源OFF
       ↓
 必要になったらON
       ↓
 以前のデータが残っている

という使い方ができます。

これは消費電力削減にも効きます。AIでは電力が非常に大きな問題なので、このメリットも大きいです。IoT機器でも同様です。


7. だったら全部MRAMにすればいいのでは?

ここは重要です。現時点ではそう簡単ではありません。

L1・L2・L3を全部MRAMに置き換える、という話ではありません。SRAMには 圧倒的に高速 という強みがあるからです。

将来的にも、

CPU/GPU
 ↓
L1   SRAM
 ↓
L2   SRAM
 ↓
L3   SRAM / MRAM
 ↓
巨大MRAMキャッシュ
 ↓
HBM

のような形のほうが現実的だと思われます。

特に L1 は 容量より速度が最重要 なのでSRAMが非常に強い。

一方、L3やLast Level Cache(LLC) では「数ns速いことより、大量に置けるほうが重要」になってきます。ここがMRAMの狙いやすい場所です。


8. 動画の「4GBキャッシュ」の意味

動画では

「チップレットのキャッシュが今は数百MBだけど、MRAMを使うと4GBなどもできる」

という趣旨の話があります。これは非常に大きな話です。

現在                   将来

GPU                    GPU
 ↓                      ↓
200MBキャッシュ    →    4GB MRAMキャッシュ
 ↓                      ↓
HBM 80GB               HBM 80GB

となれば、20倍近いデータをGPUのすぐ近くに置けます。

そうすると、

HBMから読む
   ↓
時間がかかる

+

大量のデータを移動
   ↓
電力を食う

という2つを同時に減らせます。

AIでは実は、「計算する電力」だけでなく「データを移動する電力」も非常に大きい ので、ここが重要です。


9. まとめ ― 動画の主張を慎重に言い換えると

MRAMはかなり面白い技術です。ただし、

「SRAMをMRAMにしたらAIが10倍速くなる」

という単純な意味ではありません。

実際の速度向上は、

  • AIモデル
  • キャッシュヒット率
  • MRAMの読み書き速度
  • 容量
  • HBMの帯域
  • GPUの設計

などによってかなり変わります。

ただ、

AIのボトルネックが「演算速度」から「データをどれだけ速く演算器に届けられるか」に移ってきている

ので、「巨大な高速キャッシュを作れる可能性のあるMRAMはAI時代との相性が非常に良い」 という動画の方向性は理解できます。

私なりのまとめ

「MRAMは150℃まで耐える魔法の半導体」ではなく、

FlashとSRAMの中間のような性質を持つ新しいメモリ。電源を切っても記憶が残り、速く、高温にも比較的強い。そのため車・宇宙・AIチップなど、これまでメモリの制約で難しかった設計ができる可能性がある。

という話です。

そして動画の 「85℃ → 150℃」 で本当に重要なのは、

65℃余計に耐えられること ではなく、

「制御基板を熱源から離さなくてもよくなるかもしれない」 ということです。

なお、動画タイトルの 「性能1億倍のスピン半導体」 については、「MRAMにしたらPCが1億倍速くなる」という意味ではまずありません。 動画のどの指標を「1億倍」と表現しているのかを切り分けないと、かなり誤解を招く数字だと思います。


次の記事

MRAMが本当に普及した場合、日本企業にどんな恩恵があるのか。投資という観点で整理してみました。

masalib.hatenablog.com


参考

XcodeのDerivedDataについて

久しぶりにFlutterの環境でビルドしたらエラーがでた

Error (Xcode): stat cache file '/Users/hiranotadashiken/Library/Developer/Xcode/DerivedData/SDKStatCaches.noindex/iphoneos18.2-22C146-65c9fcd357f363e7a7f00013cd665f98.sdkstatcache' not found

キャッシュっぽいエラーでたのですが キャッシュクリアしても解決しなかった

rm -rf ~/Library/Developer/Xcode/DerivedData/SDKStatCaches.noindex
rm -rf ~/Library/Developer/Xcode/DerivedData/*
flutter clean
flutter pub get
cd ios
pod deintegrate
pod install
cd ..
flutter build ios

どうしても治らなくて 調べたら

https://qiita.com/BlueEventHorizon/items/6ccbe44968acc4d66c08

以下を対応したら治りました

DerivedData のパスを変更する
Xcodeメニュー → Settings... → Locations → Derived Data を Relative に変更

あまりDerivedDataに理解していないのでこの項目についてメモを残す


✅ DerivedData とは?

  • Xcode がビルド時に生成する 中間ファイルやキャッシュの置き場です。

    • コンパイル済みのモジュール(.pcm
    • ビルド成果物
    • インデックス情報(補完やジャンプに使う) がここに溜まります。

デフォルトは:

~/Library/Developer/Xcode/DerivedData/

(ユーザーごとに共通のキャッシュ置き場)


✅ 「Locations → Derived Data」設定

XcodePreferences(または Settings) → Locations タブ にある「Derived Data」の設定で 保存先のルールを決められます。

  • Default → 上記の共通フォルダにまとめて保存。 複数のプロジェクトで DerivedData が衝突することがある。

  • Relativeプロジェクトごとに DerivedData をそのディレクトリの下に保存する。 (例: MyProject/DerivedData/...


✅ 今回エラーが直った理由

今回のエラーは、

  • 共通の ~/Library/Developer/Xcode/DerivedData 内で 複数プロジェクトのキャッシュが競合 / 壊れる
  • Xcode の切り替えや SDK バージョン違いで 古いキャッシュを参照してしまう

というのが原因でした。

→ プロジェクトごとに分離(Relative)することでキャッシュ衝突がなくなった ので解決した、という仕組みです。


✅ メリット / デメリット

メリット

  • プロジェクトごとのキャッシュが独立するので、壊れにくい
  • 今回のような「キャッシュ競合」トラブルを避けやすい

デメリット

  • プロジェクトごとに DerivedData が作られるので ディスク使用量が増える
  • 複数プロジェクトを切り替えるとキャッシュ再生成で ビルド時間が長くなることもある

✅ まとめ

  • 「DerivedData = Xcode のキャッシュフォルダ」
  • Default:共通の場所にまとめて保存
  • Relative:プロジェクトごとに分離保存
  • トラブルが多い環境(複数 Xcode / Flutter / SDK 切り替え)では Relative が安定する