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

in #japanese6 years ago (edited)

もずくです。

前回の記事で、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 さんは何も悪くないです。あれはおしゃれです。

話が逸れまくりましたが、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なんかがお勧めです。

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

Sort:  

記事の修正も原理的には可能にできそうですよね。それをしないのは、やはり処理に負荷がかかるからなのですかね?
@mozk さんは非常にお詳しいので、もし良ければ一緒にSMT(Smart Media Tokens)を深掘りしませんか?
ご興味があればDiscord招待します^^

記事は修正させないという設計思考かもしれませんし、Danが抜けたあと、大きな設計変更を引っ張れるほどのリーダーシップをとれる人がデベロッパーにいないのかもしれませんね。
SMTの深掘り、面白そうですね~ 私は2017年暮れ組なので詳しくはないのですがこういうことを考えるのは好きなので、Discordにご招待いただけると嬉しいです:) ただ、4月から仕事が一気に忙しくなるので、8月まではほとんどロムかもしれませんが… ^^;

内容濃すぎて難しそうでしたがなるほどが多かったです!勉強します!
紹介いただきありがとうございますん!

温泉Tシャツ、disってませんから~!!笑

素晴らしい考察と感じて読ませていただきました。
お書きのような記事の修正が技術的には1週間以上たってもできるだろうという話は他にも聞きますが、そうされていないのはSteemit開発陣にそうしたくないポリシーがあるからなのか、もはやSteemit改善に力を入れていないのか、どちらかなのかなと思っています。

後者だとすると、DanがSteemitやSteemにとってどこまでの存在だったか…ですよね。残されたSteemitの開発陣も、もしかしたらEOS.ioのほうに興味が移行していて、EOS.io上で次の展開を考えていたりするのかもしれません。
SteemとEOS.ioは趣旨が異なるとはいえ、Danを中心にみるとやはりSteemの上位にEOS.ioがあるようにみえますし、事実、EOS.ioがEthereumと同等の機能を提供するのであればSteemを包含するものになるわけで(たぶん)、Steemitの高性能版が実現できてしまいますし。。

そういった絡みもあって、私はALISがEOS.ioでやればいいのに~という夢を描いてはいます(Discordで呟いたように)。Ethereumベースでやるとした場合、現状では処理速度の問題がありますし、Gasの問題もありますし。
まあ、ALISが投稿記事等をオンチェーンにする予定がこの先もないのであればそこは気にすることもないのかもしれませんし、数年のスパンでみればEthereumの処理速度やGasの問題は解決してdApps開発環境の王者になっている可能性は高いとは思いますが…

初心者でもブロックチェーンから始まってわかりやすく比較しやすかったです。
超テキトウがちょうど良かったです(笑)

本当は下手くそな挿絵を入れようとタブレットPCを起動していたのですが、部屋が暑くてやる気でなくて… ^^; 思い立ったら後日、挿絵を追加します。

Coins mentioned in post:

CoinPrice (USD)📉 24h📉 7d
ALISALIS0.258$-6.63%-16.9%
BTCBitcoin6930.340$-0.64%-18.12%
ENGEnigma1.398$-1.97%-27.35%
ETHEthereum381.422$-3.74%-26.7%
STEEMSteem1.429$-6.12%-27.43%

Coin Marketplace

STEEM 0.36
TRX 0.12
JST 0.040
BTC 70846.59
ETH 3567.69
USDT 1.00
SBD 4.79