<解決済み>Bingクローラ急襲によりサーバが応答不能に。。。

2018年最初の投稿になります。

早速ですが、年始からSCDB JAPANにちょっとした事件(障害)がありました。 正月休みを返上して(というのはだいぶ大袈裟ですが)原因調査と対応に当たりましたのでその一部始終を記載します。

Bing襲来!?(Welcome!!)

f:id:boost-up:20180105215551p:plain

上はBingウェブマスターツール上から確認できるBingクローラーのアクセス状況です。

従来は1日当たりのクロール数は概ね数千から2万ページ程度だったのですが、 12月28日あたりからアクセス数が急増し始め、1月2日~本日まで10万ページ/日を記録し続けています。

1月1日までは「いよいよXデーが近いか」と期待して見守っていたのですが、1月2日の夕方に事件が起きました。

Redisサーバと正常な通信ができない事態が発生

blog.boost-up.net

上記の過去記事で、冗長化の話を書いたとき、 SCDB JAPANは100倍のアクセスが来ても耐えられると調子に乗って宣言していたのですが、 恥ずかしながら、たかが10倍程度のアクセスでまさかのサービス停止に追い込まれる障害を発生させてしまいました。

Webサーバの負荷

SCDB JAPANはフロントにLVSサーバを配置し、WebサーバはH2Oサーバ2台構成でロードバランシングを行っています。 Bingからのアクセスが急増し始めた後の1月1日の時点でも、CPU使用率はまだ一桁台、メモリ使用率もまだ50%を切る状況で十分に余裕がありましたので、この程度のアクセスが翌日のサービスダウンに繋がるとは初夢にも思いませんでした。

500エラーの急増とOOMの多発

Webサーバの負荷が十分低いにも関わらず、1月2日の18時頃から500エラーが急増し始めました。 実際にブラウザでアクセスしてもWebページが表示されず、一人緊急対策会議を始めました。

unicornのログ

まず調べたのはアプリケーションサーバであるunicornのログです。 恐れていた通り”FATAL”という致命的なエラーが発生してしまっています。

F, [2018-01-02T18:10:50.417908 #82334] FATAL -- : [6849ed35-e5bf-472e-8bf1-3da7413842a2] ActionView::Template::Error (OOM command not allowed when used memory > 'maxmemory'.):

このエラーメッセージをヒントにググってみると、先人の経験から、どうやらこのエラーはRedisに関して発生している可能性が高いことが分かりました。

qiita.com

SCDB JAPANではキャッシュサーバとアクセス数集計サーバにRedisを使っており、 リソースはまだ最低限しか割り当てていませんので、十分に可能性が考えられました。

キャッシュサーバ用のRedisとアクセス数集計サーバのRedisは別サーバで運営しているのですが、 普段、アクセス数集計サービスの方が数倍の負荷がかかっていることを見ていたこともあって、先入観からアクセス数集計サービスの方が原因と思い込んでしまい、対応に時間を要する羽目になりました。

先人の経験を参考に同様の対策を施してサービスを再起動しても減少は解消せず、一旦手探り状態となりました。

Redis以外の原因を疑う

Webサーバ越しにアクセスすると500エラーが頻発する状況の中、本番環境上のRails consoleを使ってRedisへの疎通を確認すると、キャッシュサーバ、アクセス数集計サーバともに、全くエラーなく接続できる状況だったため、Redis以外に原因がある可能性も否定できませんでした。

LVSサーバのログを調べたり、ロードバランサ越しのアクセスではなく、直接Webサーバに接続するなどして挙動を見ていましたが、LVSやWebサーバ自体のログには問題となりそうな異常は見つけられませんでした。

TCP接続エラーを疑う

解決のヒントを探して色々なブログ記事などを見ている中で、一つ気になる情報を見つけました。

dsas.blog.klab.org

この記事はmemcachedに関する記事なのですが、SCDBのredisもキャッシュサーバを担っていることから、もしかしてと思い調べてみることにしました。

キャッシュサーバのsomaxconn(TCPソケットが受け付けた接続要求を格納するキューの最大長)の設定値を調べてみます。

$ sysctl net.core.somaxconn
net.core.somaxconn = 128

、、、自らの知識不足に情けなさを感じると同時に、一筋の光が差した思いがしました。

念のため、netstatも見てみます。

Tcp:
    232712 active connections openings
    2956 passive connection openings
    13370619 failed connection attempts
    90 connection resets received
    5 connections established
    59221754 segments received
    39087217 segments send out
    10131 segments retransmited
    0 bad segments received.
    659 resets sent

上から3つ目に13370619 failed connection attemptsとあり、一千万を超えるTcp接続要求が失敗していることが判明しました。 この時点で疑惑は確信に変わりました。

somaxconnの設定値を変更する

早速sysctlの定義ファイルを作成し、somaxconnの設定値を変更します。 今回は128→4096に増やしてしばらく様子を見ることにします。

1.定義ファイルの作成

vi /etc/sysctl.d/custom.conf

net.core.somaxconn=4096

2.定義ファイルの反映

$sudo sysctl --system
(略)
* Applying /etc/sysctl.d/custom.conf ...
net.core.somaxconn = 4096
* Applying /etc/sysctl.conf ...

設定変更が反映されました。

3.Redisの再起動

$ systemctl restart redis.service

藁にも縋る思いでWebサーバ越しのアクセスを確認すると、待望の「http status 200」の文字が並び始めました!!

その後の経過

1月3日に対策を行って以降、この記事を書いている1月5日時点までにはその後問題は起きていません。 障害によってクロールペースがダウンすることが懸念されましたが、BingにもGoogleにも今のところ大きな変化は起きていないようです。

ただ今回設定した値の妥当性についてはまだ手探りですので、もしかしたらまたいつか同じ事象が起きる可能性があります。

実アクセスが原因でこの手の障害が起きてしまうと色々と損失が大きいので、正月という閑散期にクローラーが原因で起きたことは寧ろ非常にラッキーだったと言えると思います。

今回のようにクローラーではなく実アクセスを伴うようになって来ればサーバを増強する予算もついてくると思いますので、 財布と相談しながら早め早めに手を打てるように、今年も頑張りたいと思います。

niceなクラウドマイニングでほんの少しだけ幸せになる方法

f:id:boost-up:20171225232601j:plain

クラウドマイニングって儲かるの?

儲かりません!

クラウドマイニングって元が取れるの?

無理です!!

じゃあこの記事は何なの?

とても限定的な状況下ではありますが、クラウドマイニングが役に立つシーンを思いついたのでその共有です。 過度な期待をしないでください。条件に合う境遇にある極一部の人が”ほんの少し”だけ幸せになれるかも知れない方法です。

まだ実証実験が出来ていませんので効果はあくまで試算であることと、この方法によってサーバにネガティブな影響が出ない(または無視できる)と言えるかどうか、正直まだ自信がありませんのであくまでその前提で書きます。

それと、この方法は悪意を持って使うと周囲に大きな迷惑をかける可能性がありますので、絶対に悪用しないでください。 多分私が書かなくても早晩誰かが同じような記事を書くでしょうし、誰も書かなくても誰かがこれと似たような方法を使って悪事を働くケースが出てくると思います。

今回あえてこの記事を書くことで、こんな方法もあるんだということを広く知ってもらい、「監視による抑止効果」を期待したいと思います。

この方法でほんの少し幸せになれる人

  1. 自分でクラウドサービス(基本的にはIaaSかVPS)を契約している人
  2. サーバリソースに十分な余裕があること
  3. サーバが少しくらい遅くなっても大目に見れること

この3条件をクリアできる環境にいる人自体それほど多くないと思われます。

一方、悪意ある立場で考えると、1.はクラウドサービスの管理者である人、3.はそれほど重要な役割ではないサーバであるか、それを問題にならないように出来る立場にいる人は、不正を働く動機を持った時にはそれが実行できるリスクがある人かも知れません。

この方法を悪用すると、最近問題になっている、悪意のあるjavascriptを送り込んで他人のマシンにマイニングをさせる方法と非常に近い結果が得られてしまいますので、繰り返しになりますが世の中に啓蒙することで「監視による抑止効果」を期待したいと思います。

別記事でminergateについて書きましたが、この方法は私自身が好奇心からminergateを使ってみて、思いついた方法です。 blog.boost-up.net

今回はminergate前提に書きますが、おそらく他のマイニングプールでも同じような方法を使うことができると思います。

幸せになるための事前準備

今回はCentOSを前提にしますが、この方法を使うためには3つのコマンド(プログラム)が必要になります。

minergate-cli

minergateによるマイニングをコマンド実行するためのプログラムです。 ダウンロード方法はここでは触れませんが、Minergateの公式サイトから誰でも簡単に入手できますので、「自分が契約する」サーバ上で利用できる状態にしてください。

nice

プロセスの優先度を指定するコマンドです。 通常Linuxのプログラムはnice 0という優先度で動きます。nice値は-19が最も優先度が低く、20が最も優先度が高いことを意味します。

cpulimit

プロセスに割り当てるCPU使用率を制御するコマンドです。 例えば、cpulimit -l 10 <任意のコマンド>で実行すると任意のコマンドが使用するCPU使用率を10%までに制限することが出来ます。

ここまでで、そろそろ結果が見えた方もいると思います。

ほんの少しだけ幸せになるための魔法の呪文

あとはOS上で以下のコマンドを実行するだけです。

nohup cpulimit -l 80 nice -n 19 minergate-cli --user <minergateアカウントのメールアドレス> --xmr &

文章で書くと、「ログアウトしても中断しないバックグラウンド処理として、CPU使用率上限80%(適当に調整してください)かつ最低優先度でMonero(これは他の通貨でも良いです)の採掘を開始する」処理となります。

これにより、普段は概ね80%のCPU使用率を維持しながら採掘し、他のプログラムが起動されたときにはそちらにCPUを譲る動きが期待できます。

この発想のポイントは次の2点です。

1.固定費の一部回収を期待するものであること

クラウドマイニング単独では投資回収ができないことは所与として、サーバリソース、特にCPUリソースに空きがある場合に、その一部でマイニングを続けることでサーバ利用料の一部だけでも回収するという考えです。

2.他の処理を優先する控えめな実行であること

この処理を実行するサーバは本来別用途で存在しているサーバですので、儲からないクラウドマイニングのために本来のサービスが疎かになっては困ります。

そのため、nice値を最低にすることで他の処理が起動されたときには、そちらを優先するように予め優先度を最低に指定しています。 ただそれだけだと、minergate-cliがCPUを使い切って監視に引っかかる状態になってしまったため、cpulimitを併用することで高稼働にならないよう制御しています。

クラウドマイニングはただでさえ儲からないので、この方法で回収できる金額はそれこそ微々たるものですが、塵も積もれば効果は期待できると思います。

どれくらい幸せになれるのか?

皮算用ですので、「どれくらい幸せになれそうなのか?」が正しいかも知れません。

例えば私が使っているIDCFクラウドのLight.S1プランだと、毎月の使用料は例えば648円(仮想マシン200円、ルートディスク300円、データディスク100円、消費税8%として48円)です。

このサーバ上で今回の採掘コマンドを実行した場合のハッシュレートはだいたい6.5-10H/sです。

ハッシュレートに対してどれくらいの収益が期待できるかは、↓のサイトの値を信用すると一か月あたり0.001914XMRとなります。 www.cryptocompare.com

これに乗じるMoneroのレートは1XMR=39,273.142958円(2017年12月25日のある時点)とすると、計算上は75.17円/月の収入が得られることになります。

最近の仮想通貨はボラティリティが非常に激しいので全く参考にならないかも知れませんが、 648円でサービスを提供しながら75.18円が得られるということは、サーバ利用料の約11.6%がマイニングで回収できるということになります。

サーバ1台では微々たる金額ですが、私は仮想サーバを10台以上契約していますので、マイニングによって得られる資金で仮想サーバを1台追加できることになります。

この程度で幸せを感じている場合でないのは自分でも良くわかっております。

そうだ、クラウドマイニングを始めてみよう!

f:id:boost-up:20171225221155j:plain

仮想通貨のマイニング

仮想通貨のマイニングは発電コストが出来るだけ安い環境で、高性能なASICやGPUを用意して全力投球し続けるというのが定石になっており、日本のように発電コストが高い国とアイスランドのような地熱エネルギーが豊富な国とでは限界利益率が違いすぎて勝負にならないと言われています。

ネット上ではAWSなどのクラウドサービスを使ったマイニングの採算を検証したブログ等が多数ありますが、いずれも採算には程遠い結論になっているようです。

それでもマイニングで利益を目論む一部の悪意ある人々は、ついに他人のマシンリソースを勝手に使って自分のためにマイニングをさせるスクリプトをバラまいており、ここ数日新聞各紙でも報道されるようになりました。

仮想通貨のマイニングに参加する方法

仮想通貨のマイニングはインターネットにつながるパソコン等を持っている人であれば、基本的には誰でも始めることができます。

ただ、仮想通貨のマイニングを一人でやること(ソロマイニング)は現実的にお勧めできません。 冒頭でも書いたように、仮想通貨を効率よく採掘するためには「電気代を抑え」、「高性能な処理機材」が必要ですが、 個人で用意できる範囲には限界がありますし、実際マイニング市場では「マイニングプール」と呼ばれる集団採掘が多数派となってきています。

「マイニングプール」にはマイニングファームと呼ばれる採掘専門会社や、個人のマイナーなどが多数参加し、「ハッシュレート」という指標で計算・評価されるそれぞれのマシンリソースを拠出する形で、一つの巨大な採掘力を生み出しています。 各マイニングプールとも自分たちのハッシュレートを高めるべく参加者を募っており、こうした組織力にソロマイニングで対抗することは無謀とも言えます。

マイニングによって得られる経済的価値を度外視して、マイニング行為自体に興味がある場合以外は、おとなしくマイニングプールに参加する方法を選択した方が良いと思います。

マイニングのイメージが湧かない方は、初心者でも簡単にマイニングを始めることができるminergateを始めて見ることをお勧めします。

minergate.com

minergateでは自分が採掘に参加したいときだけマシンリソースを拠出することが簡単にコントロールできますので、 イメージと違う、儲からないなど、止めたくなったらいつでも止めることができます。

minergateの始め方

ここではアカウントの解説方法とGUI版のクライアントソフトの入手方法を紹介します。

minergateアカウントの解説

minergateのWebサイトに行くと下の様な画面が表示されますので、 右上の「Sign up」をクリックします。

f:id:boost-up:20171225215446p:plain

続いて、メールアドレスとパスワードを入力し、「私はロボットではありません」にチェックをしたら「Sign up & Start mining」をクリックします。

f:id:boost-up:20171225215658p:plain

たったこれだけでアカウントの開設が完了しました。 日本の仮想通貨取引所に口座開設するときのような本人確認資料の提出などは一切求められません。

クライアントソフトの入手方法

minergateを使ったマイニングはクライアントソフトを使わない(CUI版)とクライアントソフトを使った(GUI版)がありますが、 今回はパソコンに詳しくない方がより簡単にマイニングを体験することを目的としていることから、GUI版を使った例を説明します。

minergateのトップページに戻り、画面右側にある「Download & Start Mining」をクリックします。

f:id:boost-up:20171225214413p:plain

使っているパソコンのOSを選ぶ画面が出てきますので、自分が使っている/使いたい環境を選んでください。 少し待つと、今アクセスしているパソコンに最も適した環境に絞り込み表示されます。 使いたい環境が決まったら、「Get It」を押してクライアントソフトをダウンロードしてください。

f:id:boost-up:20171225214325p:plain

ダウンロードしたファイルを実行するとアカウント認証画面が表示されますので、 先ほど登録したメールアドレスとパスワードを入力し、「Login In & Start Mining」をクリックしてください。

minergateのマイニングには「Smart Mining」と「Mining」の2種類がありますが、 「Smart Mining」の方をクリックすると、そのパソコンの性能から掘りやすさを判断し、最も効率が良い通貨を採掘するように自動設定されます。マルチコアのCPUやGPUを積んでいるパソコンの場合、マイニングに割り当てるコアの数を指定することが出来ます。

一方の「Mining」の方は自分で通貨と割り当てるコア数を指定する方法です。

いずれもクリック一つでマイニングを開始することができ、中止したくなったらいつでも終了させることが出来ます。

【Help me !!】運営するサーバのIPをアドレス変更したら何か大変なことが起きています

f:id:boost-up:20171222233600j:plain

IPアドレスの変更とSEO

www.suzukikenichi.com

こちらの記事によると、サーバのIPアドレスを変更しても「普通は問題ない」そうなのですが、 私の場合は「普通でない」何かが起きているようです。。

1か月ほど前、https://上場企業サーチ.comを運営するサーバを別の業者のクラウドに乗せ換えました。

当然ながらIPアドレスも変わったのですが、最近なにやら異常事態に見舞われております。

Search Consoleで起きていること

サイトマップのインデックスが激減!!

上場企業サーチ.comは上場企業を対象にした情報サービスですので、上場企業数+αに相当する約4,000ページのサイトマップを送信していました。

以前は、送信したページの90%以上がインデックス登録されており、順調にアクセス数を増やしていたのですが、 先週から急にインデックス登録数が急落し始め、今日時点ではついに10%を切ってしまいました。

検索アナリティクスがほぼゼロに!!

こちらも以前は1日当たり5,000~10,000ページ程の表示回数を維持していたのですが、やはり先週から暴落し始め、 昨日に至ってはなんと約100ページまで落ちてしまいました。

でも不思議なことに、Google Analyticsで見るアクセス数は一定のところで踏みとどまっており、まったく検索にヒットしなくなった訳ではなさそうです。

サイトへのリンクを見ると旧IPアドレスからのリンクが大量に認識されている!!

上場企業サーチ.comが以前使っていたIPアドレスは「153.122.0.51」なのですが、 Search Consoleのサイトへのリンクを見ると「153.122.0.0」からのリンクが約4,000程認識されていました。

上場企業サーチ.comの以前のサイトマップ送信数とほぼ同数です。 そして殆どのページに対して「153.122.0.0」から1対1のリンクが張られていると認識されています。

想像ですが、新しいIPアドレスで運営している今の状況が、古いIPアドレスで運営していたサイトのコピーだと認識され、ペナルティを受けているように思われます。

手動による対策には何も表示されていない

Search Consoleの「手動による対策」には何も表示されていません。

ということは「自動による対策」でしょうか。。

Googleの検索結果に旧IPアドレスのリンクが出現している

f:id:boost-up:20171222210911p:plain

上から2つ目にある「聖橋監査法人の監査クライアント一覧 | 上場企業サーチ」は当然、上場企業サーチのページなのですが、 リンクURLを見るとIPアドレス、それも旧IPアドレスになってしまっています。

前のサーバは既に解約しているので、当たり前ですがクリックしてもアクセスできません。

Google Analyticsで起きていること

これがもう一つ謎なのですが、実はこの1週間のアクセスユーザ数自体は前週比-10%程度に留まっており、 Search Consoleに出ているような極端な減少にはなっていません。

ページビューの方は30~50%程度落ちており、アクセスするユーザの質が大きく変わってきているようにも考えられます。

参照元/メディアで見ると、bing経由のアクセスはむしろ増えており、やはりGoogle経由での流入が10%程度落ちています。 ただ、Yahoo!とsearch.smt.docomo経由のアクセスが30~50%も減っており、Googleよりもこちらが大きな影響を受けているようです。

原因の推測

旧IPアドレスからの大量の被リンクに、Googleの検索結果にIPアドレスのサイトが残っていることを見ると、 おそらくIPアドレスの切り替えが関係している可能性は非常に高いと思っています。

実際思い当たる節がないわけではなく、実は諸般の事情から、旧IPアドレスで運営していたサーバを切り替え直前に約1週間程ですが、完全にサービスを止めていました。

そのため、新旧IPアドレスをライブで切り替えたわけではなく、旧IPアドレスのサイトを落とした状態から、 新IPアドレスでサイトを復活させ、DNSを切り替えてサービスを再開するという、確かにコピーサイトと判断される要素がありそうな移行を行ってしまいました。

ただ、サーバを切り替えたのは約1か月前で、アクセスに異常が起き始めたのはこの1週間ですので、それだけが原因かどうかはわかりません。 他の記事にも書いているように、この1か月の間にSSL化対応や性能改善など、いくつかの変更を行っていますので、 もしかしたらそれらと複合的に今回の事象が起きている可能性もあります。

とりあえずやってみたこと

旧IPアドレスからの被リンクを否認してみた

Googleの被リンク否認ツールを使い、「153.122.0.51」からの非リンクを拒否するように登録してみました。 まずはこれで様子を見たいと思います。

Search Consoleにhttps://上場企業サーチ.comを追加しました。 httpの方を直ぐに削除すると暫く情報がみれなくなるので、当面は両方をチェックします。

今回の事象はネット上に類似事象が見当たらず、興味のある方もいらっしゃると思いますので、継続的にウォッチして経過報告します。

お願い

どなたか気になる点、アドバイス等ありましたらコメント頂戴できますと助かります。

仮想通貨をMAX否定的に考えてみた

f:id:boost-up:20171222203243j:plain

この記事を信じた結果何が起こっても一切の責任を負えませんので悪しからずご了承ください。

年末にポートフォリオを組み替えるのは危険!?

前回、仮想通貨の取引にかかる税金について書きましたが、税務上は仮想通貨間の売買(交換)も日本円を間に挟んで交換したものとみなされます。

blog.boost-up.net

そのため、売却する仮想通貨について取得価額との差額が利益として課税所得に加算されてしまうので注意しましょう。 たとえ仮想通貨全体で利益確定する意思がなくても税務上は交換の都度、利益または損失が確定しているように計算されます。

これだけでも人によっては問題なのでしょうが、 危ないのは仮想通貨の売買による利益は原則として雑所得ですので、損益通算も損失の繰越控除もできないことです。

意図せざるかどうかは別にして、12月31日に利益が出て、1月1日にそのすべてを失った場合、税金は年末の利益の満額に対して課税され、年明けの損失については一切考慮してくれません。

所得税の計算期間は1月1日~12月31日ですので、12月末に発生した利益は翌年の2月16日~3月15日の間に確定申告をして納税を済ませる必要があります。

仮に利益確定が1日ずれて1月1日の利益であれば納税はその翌年になります。

最長で考えると、12月31日の利益は約75日(3月15日までの約2ヶ月半)後が納税期限、1月1日の利益は約440日(1年と約2ヶ月半)後が納税期限となります。

資金繰りを考えても、年末中に利益確定しなければならない確信がある場合を除くと、ポートフォリオの組み換えなど年内の利益確定行為には慎重になるべきでしょう。

租税債務(納税義務)は自己破産では免責されません!

意外と知らない人が多いのですが、租税債務は自己破産しても帳消しにはなりません。

年末に利益を出し、年明けにすべてを失って已む無く自己破産したとしても、年末に出した利益に対する納税義務はなくなりませんのでご注意を!!

本当は仮想通貨に価値はない

仮想通貨の税金について、その計算構造だけで言えば、株式や外貨預金の投資と同じと言えば同じなのでしょうが、 仮想通貨は兌換紙幣でも信用紙幣でもないので、そこに財産の裏付けや信用保証はありません。

仮想通貨そのものの本質的な価値はゼロであって、ただ需給の期待値によって値段が付いているに過ぎません。

今は値上がり期待が非常に高まっている状況ですので高値を更新・維持していますが、 その期待が幻だという意識が多数を占めた瞬間からその価値は下がり始め、究極的にはその価値はゼロまで落ちる可能性があります。

今は黎明期で、仮想通貨を欲しい人がたくさんいるので供給を需要が上回っている状況ですが、 安定期に入ったときに仮想通貨の当初の狙いである決済を担うインフラが整っていない場合、多くの人が仮想通貨を手放す誘因の方が強くなるはずで、仮想通貨は暴落するでしょう。

別の記事でも書いたように、新規の仮想通貨の発行自体に規制がない以上、仮想通貨全体でのインフレリスクは非常に大きく、 理屈上は、仮想通貨を生み出して+1円を狙う発行者側の動きが限界利益がゼロになるまで続くと思います。 仮想通貨に本質的価値がないということは、ここでの均衡価格はゼロ円です。

blog.boost-up.net

仮想通貨に期待される決済インフラは、税制のせいで実現しないかも

仮想通貨には安価な決済インフラとしての期待がありましたが、 先般の国税庁が公表した扱いがなされるとなると、少なくとも日本では、税制がそのストッパーになる可能性があります。

仮想通貨が奇跡のソフトランディングを遂げ、安定した決済手段となった未来のことを想像しましょう。

毎月10万円分の現金を仮想通貨に換金し、その仮想通貨で毎月10万円程度を仮想通貨で支払うとします。

仮想通貨は取引市場がありますので、ある程度ボラティリティは低いとしても価格は変動するでしょう。

年間で120万円の売買になるわけですが、もし、取得価額(原価)を移動平均法で計算して利益が20万円を超えてしまっていた場合には、雑所得として確定申告が必要になるのが今の日本の税制です。 先に書いたように損益通算も損失の繰越控除もできません。

確定申告は自己申告です。うっかりでも申告しなければ無申告加算税が課される場合もあります。 日本では殆どの給与所得者は年末調整で所得税計算を完結させており、自分で税金を計算することに慣れていないので、その時が来たら社会問題になるかもしれませんね。

仮想通貨による新しい決済インフラが実現されるためには、税制の見直しが求められるのではないでしょうか。

葛藤

絶対に暴落すると確信ができる仮想通貨ですが、足元を見ると日々値上がりを続けているのが今の現状です。 短期的に流れに乗るべきか、でもその日がピークかも知れない。。

やっぱり自分に投資は向いていないと思う今日この頃です。 あ、でも仮想通貨は投資じゃなくて投機(博打)か!?

仮想通貨は買っても使っても税金がかかるときがある!?

f:id:boost-up:20171222014036j:plain

もうすぐ今年も終わりですね。 毎年のことながら、ついこのまえ年が明けたと思ったらあっという間に3ヶ月が過ぎ、半年が過ぎ、いよいよ12月も後半になってしまいました。

さて、今年はビットコインを筆頭に仮想通貨バブルで盛り上がった年でした。 思いがけず大儲けした人もいれば、私のように完全に置いていかれた人もいると思いますが、今日は仮想通貨に関する税金のお話をしたいと思います。

国税庁が仮想通貨の課税に関するFAQを公表

平成29年12月1日に国税庁が個人課税課情報第4号「仮想通貨に関する所得の計算方法等について(情報)」を公表しました。

https://www.nta.go.jp/shiraberu/zeiho-kaishaku/joho-zeikaishaku/shotoku/shinkoku/171127/01.pdf

これをみると、仮想通貨に関するどういった行為が課税対象になるのかが、設例とともに解説されています。

仮想通貨に関する利益は雑所得とみなされ、給与所得者は年間20万円を超えると確定申告が必要になりますが、 今回の国税庁の公表したFAQでは、何をもって「利益」とするかが明らかになっています。

1. 仮想通貨の売却

日本円で仮想通貨を買って、値上がりした仮想通貨を売って日本円に戻したシンプルなパターンです。

この場合は売却した仮想通貨から、その仮想通貨の取得価額を引いたものが利益となります。 仮想通貨の一部だけを売却した場合は、取得価額総額を仮想通貨の数量で按分して、売却額に対応する取得価額を計算します。

外貨預金と同じ扱いです。

2. 仮想通貨での商品の購入

元々、仮想通貨は通貨としての役割を期待されて誕生したはずですが、仮想通貨にいわゆる含み益がある状態で商品の購入に使用した場合、なんと買った時点で課税されてしまうようです。

上の1.と同じ考え方で購入に使用した仮想通貨の取得価額を計算し、その取得価額で商品を手に入れたとみなしてその差額が利益となります。

法人税などの為替差損益と同じ扱いといえばそれまでかも知れませんが、雑所得は損益通算も損失の繰越控除も認められていませんので、なかなか厳しいルールだと思います。

3. 仮想通貨と仮想通貨の交換

これも背景にあるのは2.と同じ考え方です。

交換するタイミングで交換元の仮想通貨を売却して利益が実現した後に、交換先の仮想通貨を買ったのと同じ扱いとなります。

迂闊にポートフォリオを組み直すと思わぬ税金が発生してしまうかも知れません。

これも株式とは異なり、雑所得には損益通算や損失の繰越控除が認められていないことからすると、納税者に不利な扱いだと思います。

4. 仮想通貨の取得価額

仮想通貨の売買が複数あった場合の取得価額は原則として移動平均法によることとされています。

これも株式などと同じ扱いですね。

5. 仮想通貨の分裂(分岐)

分裂で取得した仮想通貨は取得価額ゼロとされ、売却時に売却額=利益として課税されます。

6. 仮想通貨に関する所得の所得区分

冒頭でも触れたように、仮想通貨の売買に関する利益は原則として雑所得として課税されます。

ただし、事業に付随して仮想通貨を使用したことによって発生した利益や、仮想通貨の売買で生計を立てている場合の利益は事業所得として扱われるそうです。

個人的にはここは結構重要なポイントだと思います。 事業所得であれば損益通算や繰越控除が認められていますので、雑所得よりも圧倒的に有利です。

7. 損失の取り扱い

雑所得は損益通算不可、事業所得は損益通算可能と、ここにも明記されています。

8. 仮想通貨の証拠金

FXと異なり、仮想通貨の証拠金取引は総合課税です。 儲かったら漏れなく超過累進課税が待っています。

9. 仮想通貨のマイニング等

マイニングによって得た所得は事業所得または雑所得となります。

勘繰り過ぎかも知れませんが、仮想通貨の売買は雑所得または事業所得、マイニングは事業所得または雑所得と、順序が逆になっているように見えます。

仮想通貨取引が事業所得と判定してもらうための一つのポイントかも知れませんね。

仮想通貨取引で利益が出たら確定申告を忘れずに!

以上、つらつらと書き綴りましたが、 基本的にはサラリーマンが副業としてやっているように見えるうちは、給与と儲けのどちらが多いかに関わらず、仮想通貨の利益は雑所得とみなされると考えるべきです。

事業としての実態を備えるためには、相当の客観性が必要となりますので、安易に考えないようご注意ください。

利益が出たらキチンと確定申告して、堂々と道を歩きましょう!

Coincheckからビットコインを送金しようとしたら手数料が高かった!

f:id:boost-up:20171219214555j:plain

ビットコイン、今年は高騰しましたね。

歯ぎしりしたいくらい残念ですが、私はビットコインには殆ど手を出していないので恩恵には与っていません。 今から乗るのも怖いので、今のボラティリティが続くうちは、多分今後もビットコイン自体には投資(投機?)しないと思います。

さて、先日保持していたアルトコインを別のウォレットに送金しようとしたときのことですが、 送金方法を確認しようと開いた画面でドキッとしてしまいました。

f:id:boost-up:20171219213511p:plain

画面一番下の送金手数料をみると、「0.001BTC」とあります。 桁が小さいので一瞬スルーしてしまいそうになりましたが、画面上にあるように、このときのビットコインの価格は1BTC=2,142,133円です。

ということは、0.001BTCは、なんと2,142円にもなります!!

元々仮想通貨は、安価な国際送金手段としての期待もあったはずですが、2,142円はもはや安いとは言えません。 現在の仮想通貨市場の熱狂ぶりがいつまで続くかわかりませんが、ビットコインに限らず、今の仮想通貨には通貨としての安定性は期待できませんね。

結局送金はやめたのか?

送金しました(笑)

すぐに使える手段が他になかったのと、ちょっと気になる仮想通貨がありそれなりに急いでもいたので、ごく少額ですが、全損覚悟で投資してみました。

投資したら気になってしまう性分なのですが、今回こそは3年くらい忘れてしまいたいと思います。