もずく avatar

ブロックチェーンSNSの投稿は原理的に後から修正できないのか考えてみた

mozk

Published: 30 Mar 2018 › Updated: 30 Mar 2018ブロックチェーンSNSの投稿は原理的に後から修正できないのか考えてみた

ブロックチェーンSNSの投稿は原理的に後から修正できないのか考えてみた

もずくです。

前回の記事で、Steemitでは(1週間経った)記事は修正・削除できないとか、一度作成したアカウントが削除できないといった記事を書きました。
それ自体はもう覆ることのない事実なのですが、その記事へのコメントやALIS(steemit-jpだったかな…?)のDiscordなどで「ブロックチェーンなので仕方ないですね~」といったコメントが散見されたので、私の見解をまとめてみることにしました。

1週間経ったら修正が効かないので、間違いに気づいた方はご指摘よろしくお願いします!(>_<)

ブロックチェーンの概要

まず、ブロックチェーンについておさらいです。

ブロックチェーンとは、データが記録されたブロックがチェーン状に繋がっている感じの巨大な台帳です(超テキトウ)。例えば、Bitcoinの場合、ブロックに記録されるデータとは「誰から誰にいくら支払われた」というような取引データになります。

で、各ブロックには、そのブロックのデータの他に、一つ前のブロックの内容もハッシュ値という文字列の形で記録されています。一つ前のブロックのデータを次のブロックが持っているので、ブロック同士の前後関係が決まり、チェーンで繋がれたような状態になります。

このハッシュ値という文字列は、ブロックの内容がわずかでも改ざんされたら変わってしまいます。ブロックはチェーンで繋がっているので、どこかのブロックの内容(=次のブロックが持っているハッシュ値)が改ざんされるとバレてしまいます。
ブロックチェーンでは、ハッシュ値の変化をみんなで監視しているので、データの改ざんが非常にしづらくなっています(超テキトウ)。

Steemitのデータはオンチェーン

Steemitのデータ(投稿記事・Vote・Replyなど)は、1週間を過ぎると、Steemブロックチェーンのブロックに書き込まれます。前述したように、ブロックチェーンに記録されたデータは改ざんできなくなるので、Steemitで書いた記事なども修正・削除ができなくなるわけです。

ちなみに、Steemブロックチェーンというのは、ビットコインとイーサリアムが違うみたいな感じで、ビットコインなどとはまた違ったブロックチェーンです(超テキトウ)。時々、SteemitとSteemを混同している人がいますが、例えば、ALISと直接比較できるのはSteemではなくてSteemitです。

ちなみに(2回目)、STEEMとすべて大文字で書いたときは、Steemブロックチェーン上で流通するトークンを表します。このように、ブロックチェーンとトークンが同じ名前を持つこともあるのでややこしいです。

ちなみに(3回目)、青っぽい温泉マークみたいなのがありますが、あれはSteemのロゴです。Steemitのロゴは緑と白の陰陽魚☯みたいなやつです。でもSteemitの温泉Tシャツをデザインされたace69@ace69 さんは何も悪くないです。あれはおしゃれです。

話が逸れまくりましたが、Steemitのように投稿記事などのデータをブロックに書き込む処理を「オンチェーン(の処理)」と呼んだりします。

オフチェーンのSNSもある

本日の話題に進む前に、オンチェーンのSNSがあるならオフチェーンのSNSもあるのか…という話ですが、当然ありえます。ブロックチェーンを利用したSNSといっても、サービスのどこでブロックチェーンを利用するかはサービス毎に決められます。

例えば、solaは、2018年3月現在、投稿やコメントなどはオフチェーンです。solaで獲得することのできるSOLというトークンのやりとりのみ、ブロックチェーンのに記録されています(たぶん)。また、ALISも投稿の部分については当面はオフチェーンでいくという話を耳にしています。

一方、peepethというブロックチェーン版Twitterは、呟きまでオンチェーンで処理します。イーサリアムブロックチェーン上で動いているので、呟くためには定期的にETHを支払う必要があります。

どこまでのデータをオンチェーンにするか…というのは、各プロジェクトが「何を改ざんさせたくない(=保証したい)」のか…という部分に帰着すると思います。
Steemitはすべてのデータを改ざん不可とすることで、Steemit全体の信頼性を担保しようとしていると考えられます。(ALISではユーザの利便性を優先して当面オフチェーンで…ということですが、信頼性という意味ではALISこそオンチェーンにすべきな気もしますがそれはまた別の機会に…)

オンチェーン=書き換えられないブログ…ではない?

またまた本題までが長くなってしまいました。。

さて、本題です。
私が問題提起したかったのは、Steemitは原理的に書き換えられないブログなのか…?ということです。で、私の考えはNO、つまりオンチェーンでも書き換え可能なブログにできると思っています。

そもそも、ブロックチェーンの処理と、それをブログの形で表示したり処理したりすること(ブログサービス)は別の話です。すべてがオンチェーンのSteemitの場合、ブロックチェーンはデータベースとして機能していて、「ブロックチェーン ←《データ》→ ブログサービス」という感じでデータのやりとりをしています(たぶん)。

それならば、記事Aがブロックチェーンに記録されて変更不可になっても、その後、記事AをA'に修正した…という差分情報をブロックチェーンに記録し、ブログサービスのほうでそれら二つのデータを組み合わせることで(表面上の)記事の修正ができるはずです。
ブロックに記録された個々のデータは改ざんできませんが、それらのデータを外部に読み出すことは自由だし、サービス側でそれらを加工して使うことは自由だということです。

最後のおまけに書きますが、投稿記事のデータはそのままテキスト情報として記録されています。なので、プログラミングの世界では太古の昔から使われているpatchコマンドとかをサービス側で動かせば、更新後の記事を表示することなんて簡単だと思います。

な ぜ や ら な い の で し ょ う ね ?

ITに馴染みのない人にはちょっとややこしい話になりましたが、ブロガーにとってはこれまでのSteemitと同じ感覚で使えて、且つ、期限なく記事を修正・削除することが可能ということです。
ただし、修正前の記事はいつでも参照可能ですし、いつどこをどう修正したかもマルっと筒抜けではあります。そこは記事の信頼性を担保するためには必要な部分ですよね:)

おまけ

Steemitの各ブロックに書き込まれているデータは、SteemDBから見ることができます。
リストから一つ選んで、Operationsというタブを眺めると、VoteやReplyの他、フォローしたとかトークン送ったとかいった情報が記録(処理)されています。投稿記事もどうやらReplyという処理名で行われているようです。

Steemの場合、各ブロックの容量は64MBのようなのですが(2018/3/30現在)、ユーザ毎にブロックを分けて記録するのではなく、64MBが満たされるまでいろんなユーザに関するデータがごちゃごちゃに詰め込まれていく感じですね。
画像はデータが大きいので、IPFSという分散ストレージにデータが置かれています(ので、もしかして差し替え可能?)。IPFSについてはググってくださいね。

ちなみに、ブロックチェーンに記録されたデータは暗号化されていて見えないと思っていた人もいるかもしれませんが、Steemもビットコインもイーサリアムも、ブロックチェーンに記録されたデータは丸見えです。
いやそこは見えないようにすべきじゃない??っていう人にはEnigmaなんかがお勧めです。

画像ゼロでホントすみません。終わります。

Leave ブロックチェーンSNSの投稿は原理的に後から修正できないのか考えてみた to:

Written by

すべて根拠のない自論(=妄想)です

Read more #japanese posts


Best Posts From もずく

We have not curated any of mozk's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From もずく