モナコインのBlockChainにデータを埋め込む!

科学・IT

78 Res. 15049.41545638 MONA 25 Fav.

1 :くまりんこ七段:2016/05/08 17:44:14 (1年前)  10.90393028MONA/10人

OP_RETURNを使ってブロックチェーンにメッセージを埋め込む実験をしました.

https://mona.chainsight.info/tx/c1238c45567707ffa0a75ea9ff5e44d75084194bfb20240a062f0c6459b2c446

OP_RETURNを使ったビットコインのサービスをモナに移植してもいいし,独自で新たなサービスを作るのも面白そうで夢が広がりそう!

参考:
Bitcoin: OP_RETURN と応用例の技術的説明 - Qiita http://qiita.com/hshimo/items/9506931790dfc2d424d8
具体的なやり方(英語) http://bitcoin.stackexchange.com/questions/25224/what-is-a-step-by-step-way-to-insert-data-in-op-return

2 :名無し四段:2016/05/08 19:43:49 (1年前)  0MONA/0人

標準のクライアントではtestnet以外では規定されたフォーマットのscriptしか送出できないようになってた気がしますが、
カスタマイズしたクライアントで送出して、それを含むブロックも自力で採掘したりしたんですか?

3 :くまりんこ七段:2016/05/08 20:20:20 (1年前)  0MONA/0人

>>2
クライアントは標準のものを使いました。
また、採掘したのは自分ではないです。

トランザクションをクライアントとは別のプログラムで作成した後、monacoindのsendrawtransactionでそれをブロードキャストしました。

もしかして採掘プールによってはリジェクトされることがあるのかな。

4 :名無し五段:2016/05/08 21:27:49 (1年前)  0MONA/0人

それ失敗したらなんかばぐるんじゃねえの?
それで0.1円張り付きとかになりそう

5 :名無し四段:2016/05/08 22:26:59 (1年前)  0.00114114MONA/1人

>>4
大丈夫だと思う
書き換え元のbitcoinでもこのやり方つかってcounterpartyとか実現したりしてるし

そもそもブロックチェインに取り込めるトランザクションがどんなのだったとしても問題ないようになってないと
P2P分散ネットワークで通貨が作れるってこと自体が成り立たない

6 :名無し四段:2016/05/08 22:32:34 (1年前)  0.00114114MONA/1人

>>3
https://github.com/monacoinproject/monacoin/blob/master-0.10/src/script/standard.cpp

ソース見てたら、OP_RETURNのあとにデータだけのトランザクションは
普通にstandardの一つに入ってた (57行目あたり)

7 :名無し四段:2016/05/08 22:33:37 (1年前)  0MONA/0人

にしても定期的にMonacoinのブロックチェインをparseしてみてるけど

それやるコードに解釈するトランザクション追加しないとな

8 :くまりんこ七段:2016/05/08 23:13:01 (1年前)  1.114114MONA/2人

>>6
ありがとうございます.問題なさそうですね.


ちなみに現行のMonacoin-0.10.2.2では,OP_RETURNの後につけることができるデータ量が40バイトとなっています.
これはBitcoin-0.11.0の80バイトと比べて少なくなっていますので,Bitcoinのサービスを移植する時は注意が必要です.
(アップデートで80バイトに増やしてほしいなぁ~)

9 :名無し四段:2016/05/09 09:49:10 (1年前)  0MONA/0人

>>1
このトランザクションは "Hello!" って文字列を送ってる感じですか

OP_RETURN いろいろ遊べそうだな
Monacoinなら手数料安いし

10 :makit五段錬士:2016/05/09 09:50:57 (1年前)  0MONA/0人

>>8
データ突っ込めるんだ カウンターパーティスレでできないみたいなの見て諦めてたけど カウンターパーティのソース読んで見ようかなぁ~
MONAならトランザクションはガラガラでFeeも安いし承認早いから面白いことできそう

ただ80バイト→40バイトってのはかなりきつい制約になりそう
同じくアップデートで80バイトに増やしてくれないかなぁ~
というかMONAの特色出すためにもっと大幅に増やしてくれたらもっと面白いことできそうなんだけどなぁ

11 :名無し四段:2016/05/09 10:21:04 (1年前)  0MONA/0人

>>10
カウンターパーティスレで今のバージョンのMonacoinで無理そうって書いたの自分かも
それ書いたときに参照したコードがMonacoin 0.8.7.1とかで
たしかにそのバージョンではOP_RETURN+データがstandardになってないけど
今のmasterのバージョンの0.10だとstandardになってるみたい
(そのレスを書いたときも既に0.10はgitに載ってたみたいだけどなぜか古い方を見てたっぽい)

ごめん

12 :名無し四段:2016/05/09 10:27:43 (1年前)  0MONA/0人

Monacoin版counterpartyができたらProof of burnでXCP相当のを作る過程で
流通しなくなるMONAができてMONAの価格が少しは上がりそう

(XCPの初期配布は 誰も(作者も)秘密鍵がわからない公開鍵で作ったアドレスに送金して、送金した分に応じてXCPがもらえるって感じだったはず)

13 :makit五段錬士:2016/05/09 11:03:44 (1年前)  0MONA/0人

>>11
いえいえ 自分もろくに調べないで鵜呑みにしちゃってたので気にせずに^^

14 :名無し四段:2016/05/23 16:49:47 (1年前)  1.11525514MONA/3人

Monacoinの新バージョンでOP_RETURNのサイズ80バイトに増えたみたいですよ!!

https://monacoin.org/ja/download.html

15 :名無し四段:2016/05/23 17:02:55 (1年前)  0MONA/0人

新バージョンのビルドの日付が 5月9日になってるけど
ワタナベさんはここのスレのやり取りを見てバージョンアップを決めたのでは・・・(考えすぎ)

16 :名無し四段:2016/05/23 17:14:03 (1年前)  0MONA/0人

そして5月9日にコードを書き換えたのにすぐリリースしなかったのは
Monacoin版counterpartyを作るために色々準備していたからに違いない
(もっと考えすぎ)

17 :名無し四段:2016/05/23 17:28:41 (1年前)  0MONA/0人

Monacoin版counterpartyの通貨がXCPに対して何になるか考えてみたら
XMPとかいうのを思いついたけど、これってingressに出てくる単位だな

びりあるさんのTwitterで新バージョンのことをつぶやく前に ingress最近やってないなって言ってたのは
ワタナベさんとXCP相当の名前を何にするか話してた時 「XMPってのどうだろ」「それingressじゃん」って出てきたからに違いない!

(考えすぎでもはや病気)

18 :なむやん七段教士:2016/05/23 17:49:21 (1年前)  0MONA/0人

indieSquereみたいのが作られるなら大歓迎
パンツ脱いで期待してる!

19 :名無し名誉名人教士:2016/05/23 18:07:48 (1年前)  0MONA/0人

>>14
新バージョンでソロマイニングできなくなった…

20 :名無し四段:2016/05/23 18:26:18 (1年前)  0MONA/0人

(正確には OP_RETURN + データ の標準トランザクションの データの部分の上限が80バイトに増えた)

21 :くまりんこ七段:2016/05/23 18:27:34 (1年前)  1MONA/1人

新バージョンですでに80バイト対応していたとは気づきませんでした。
モナコイン版CounterPartyが現実味を帯びてきましたね!

最新版のノード数
http://seed.sighash.info

22 :名無し七段錬士:2016/05/25 14:36:28 (1年前)  0MONA/0人

counterpartyをdogeに移植したdogepartyというのがあったけど
ぜんぜんはやらないまま、開発もほぼ停止してしまったという

23 :裏技君七段錬士:2016/05/28 17:48:27 (1年前)  0MONA/0人

別トークン使うんじゃなくて、モナーコインで別トークンと交換出来るよくらいやらないと流行らなさそう

24 :名無し四段:2016/06/09 10:11:50 (1年前)  0.00114114MONA/1人

https://mona.chainsight.info/tx/0a8dac99f91006031502d8f753a744a95fda5ca84067307009f1e7c30513301d

こっちでも75バイトのOP_RETURNのトランザクション作ってみました

80バイトちょうどもいけるのかな? OP_PUSHDATA1 を使えば

25 :くまりんこ七段:2017/05/30 00:12:17  10001.14114114MONA/3人

技術的な話題メモ
SegwitのP2WPKH形式の送金スクリプトを利用してモナコインの送受信をしてみました。

・送信
https://mona.chainsight.info/tx/3d01cc6f940bfe9ced5cdb1450bacf95f3cba3943ed783d4123725bd6f169108
・受信
https://mona.chainsight.info/tx/175e4c11a537499f01ba11e6e47e5b634926c14526dc412276c807ce44618edc

資料リンク
・Segwitのスクリプト形式
https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki
・Segwitのハッシュ計算&署名方法
https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki

26 :くまりんこ七段:2017/05/30 21:08:35  0MONA/0人

P2WPKHだとアドレスが表示されないのでP2SH-P2WPKHで送信します。

・送信
https://mona.chainsight.info/tx/7c0efeb45348721399d13ba8a4681e84f133cb045c5028912acd8055d0f10a63/>/0
・受信
https://mona.chainsight.info/tx/ae8a19842ed8a44be7feaba47f6268f72b6b69f9a5a33afb299a0f634811068d/</0

>>25では「Unparsed address [0]」となっていましたが、「3JTncDwGy6eno78E7aWFqKipTmHmmMJZmd」と表示されるようになります。

ちなみに、insightで使われてるmonacoindのバージョンが古いのでアドレスの頭が”3”になっていますが、最新バージョンだと”P”になります。
(PRMwqeqgU7pbgn6ZLZAC5bL9vzAwPyRYA2)

27 :もなむーる名無し八段:2017/05/30 21:16:23  0MONA/0人

mona.chainsight.info が使っている insight は、びりある氏がパッチ当てたのをそのまま流用しているのかな?

28 :くまりんこ七段:2017/05/30 22:08:50  0MONA/0人

>>27
http://chainsight.info/
管理してる人がびりある氏本人です。
以前誰かがmonacoindのバージョンアップの依頼をして、忙しいので難しいと断られていたはず...

29 :なむやん七段教士:2017/05/31 00:19:46  5005.11628228MONA/5人

>>26,27,28
Slackで聞いたら「忙しいのでムリ」と率直に断られました。
このままだとマルチシグアドレス検索で難が出るのと、日本産嫉妬コインが息をしていないのと、とある目的の為に勉強としてBlockExplorerを自作しました。
http://namuyan.dip.jp/MultiLightBlockExplorer/address.php?coin=mona&address=PRMwqeqgU7pbgn6ZLZAC5bL9vzAwPyRYA2
是非使ってください!!(宣伝

30 :もなむーる名無し八段:2017/05/31 07:34:32  0MONA/0人

>>28 なるほど
>>29 TXブロードキャストもAPIでサポートしているのですね すごい

31 :なむやん七段教士:2017/05/31 19:38:59  0.00000114MONA/1人

最近は変なTX投げられて消化不良が溜まって見苦しいけどね
一番苦労したのはCSSだったね、デザイン系はまだ不慣れだが勉強になった

32 :くまりんこ七段:2017/05/31 20:18:32  0MONA/0人

>>29
お疲れ様です!利用させて頂きます!

33 :くまりんこ七段:2017/05/31 20:18:32  0MONA/0人

>>29
お疲れ様です!利用させて頂きます!

34 :くまりんこ七段:2017/06/03 00:23:38  0MONA/0人

>>31
APIでtxinwitnessも見れるのはいいですね!
http://namuyan.dip.jp/MultiLightBlockExplorer/apis.php?data=mona/api/tx/f8802bae6b46c59a3248c75b831b242846948e02ba9f2e2fbc125da0932e1528

35 :くまりんこ七段:2017/06/03 17:27:34  14.39368628MONA/3人

ブロックチェーンに画像を埋め込んでみました。
実際に画像を取り出すデモがこちらです。ぜひ試してみてください。
http://www.stardust.tk/

IE11とChromeでは動作確認してあります。
iOSのSafariだとうまく動かないので調整中です。

内部でなむやんさんのBlockExplorer>>29を使ってます。

36 :なむやん七段教士:2017/06/03 17:39:49  0MONA/0人

>>35
これは面白いですね、ご利用ありがとうございます!
6KBもどのように組み込んだのか気になりますね!

37 :なちゃっと八段錬士:2017/06/03 17:43:27  0MONA/0人

scriptに画像のバイナリ埋め込んだってこと?
面白い!

38 :なむやん七段教士:2017/06/03 17:49:57  0MONA/0人

txinwitnessがものすごく長いのに235bytesしかない(実際は5kB)
これがうわさの署名分離なのですね、実感したのは初めてですわ

39 :くまりんこ七段:2017/06/03 22:28:21  1.24114114MONA/2人

データ埋め込みの仕組みですが、
OP_RETURNだと一つのトランザクションに80byteしか埋め込めないのでP2WSHを使っています。


データを取り出すときは、txinwitnessから分割データを取り出し、1つに結合するだけです。

40 :ピーマン 七段:2017/06/03 23:10:23  0MONA/0人

面白いです。興味を持ちました。
これはブロックが生成されたときの報酬のように送信もできるんですかね?

41 :くまりんこ七段:2017/06/03 23:37:09  0MONA/0人

>>40
>ブロックが生成されたときの報酬のように
何かのタイミングで自動的に送信するということでしょうか?
そういうサーバーを立てれば可能だと思います。

「受信した人だけデータを見ることができるようにしたい」という意味であれば、データを暗号化すれば実現できると思います。

42 :もなこいにすた★六段教士:2017/06/04 01:33:28  0MONA/0人

いろいろ楽しそうな内容だね

43 :名無し六段範士:2017/06/04 02:54:01  0MONA/0人

画像以外のデータも埋め込めますか?

44 :たいこ四段錬士:2017/06/04 06:03:46  0MONA/0人

おみくじクッキーみたい

45 :ピーマン 七段:2017/06/04 07:31:05  0MONA/0人

>>41

要するに、
https://mona.chainsight.info/tx/42b140d865210f337458b5802504a0555233dfa595f21cd2a927572944197106
のようにしたい訳です。

色々試してみます

46 :名無し四段:2017/06/04 13:29:15  0MONA/0人

ブロックチェーン外でコインの移動ができるから、同じ仕組みでNEMがやってるアポスティーユもモナでできるはず
単に存在証明だけならOP_RETURNでOKだけど

47 :くまりんこ七段:2017/06/04 19:17:35  0MONA/0人

>>43
画像以外でも可能です。

ブロックチェーンにデータを書き込むサービスを作れないか草案中

48 :もなこいにすた★六段教士:2017/06/07 07:17:14  0MONA/0人

一度ブロックチェーンに載せたらなど消えないデータを、ブロック再生間隔ごとに作れるってと?

49 :Monaparty名無し八段錬士:2017/06/07 12:17:39  0MONA/0人

>>47 このアイデアのままサービスインしたら
フルノードのストレージサイズが爆発しませんか?

50 :くまりんこ七段:2017/06/07 22:13:41  0MONA/0人

>>48
そんな感じです

>>49
確かにストレージサイズは増えると思います。
ただ、Segwitのルールに沿ったStandardなトランザクションではあるので問題はないはずです。

51 :Monaparty名無し八段錬士:2017/06/08 05:57:30  0MONA/0人

>>49 仕様上の問題が無いのは同意ですが
フルノードのストレージサイズが爆発するようなら
txinwitness に対し厳しめのサイズ制限を
わたなべ氏が monacoin-core に入れかねないかなと

コンテントストレージ用の P2P KVS を別に置き
メタデータを Monacoin ブロックチェーンに置く
など一工夫あるとフルノードにも優しいのではと
Storj っぽい構造になりますが

52 :くまりんこ七段:2017/06/08 21:16:32  1MONA/1人

>>51
おっしゃる通り、無制限で取り込みができてしまうとストレージサイズが爆発するかもしれません。想定している利用用途は、
・トークンなどのアイコン画像
・PoEなどの署名
で、かつモナコインのBlockChainで完結させたいと考えてます。

草案中のサービスは一般人にも興味を持ってもらえるように画像以外も保存できるようにしたいと考えていますが、クラウドストレージのようにデータをガンガン入れられるとご指摘の問題に発展しかねないので、以下の制限を設けます。

・書き込むデータの最大サイズを7,920byteに制限する
・手数料を多めに設定する

あとはモナのコミュニティと相談しつつ決めていければと思います。

53 :もなこいにすた★六段教士:2017/06/09 15:22:11  0MONA/0人

消せないデータというのが懸念。
個人情報とか、書き込まれたら消せないのは問題。

54 :なむやん七段教士:2017/06/09 17:10:46  0MONA/0人

本来、BlockChainに記録されるデータは消せない、改変できないことがウリだから用途としては適切かな?という思いはある。そして分離された署名データは手数料に考慮されているのか?が気になる。
>>35 では0.00113 MONA per kBのようです。最低手数料の0.001Monaを超えているのでたぶん考慮されていると思いますが。

55 :Monaparty名無し八段錬士:2017/06/09 17:28:15  0MONA/0人

>>52 手数料の多め設定は
マイナーにとっては嬉しいことだろうと思いますけれども
フルノードのストレージを負担する側への報酬としては還元されませんね

とはいってもフルノードの側に報酬が行くような
仕組みにはなっていませんものね Monacoin って…

仮にくまりんこさんが思いとどまっても誰かがやるでしょうし
そのときには誰も止められもしないのですが


>>53 懸念といえばそのとおりですが
SegWit で容量が増えただけで以前からそういうものでした…

56 :Monaparty名無し八段錬士:2017/06/09 17:31:07  0MONA/0人

ブロックチェーンのサイズを心配しつつ
「ストレージなんかどんどん安くなるんだしケチ臭いこというなよ野暮だな」
っていう思いも同時に持っています

57 :NKT細胞三段:2017/06/09 17:58:53  0MONA/0人

アポスティーユ。タイムと事象をリンクする単なる登記のシステムなんだから、書き加えることは出来ないけど、リンクを切れる様にしておけば十分条件なんだろうけど無理なの?

58 :もなこいにすた★六段教士:2017/06/09 17:59:44  0MONA/0人

有限な資源だから、ルールは必要だね。
コアのアップデートを必要になるかもしれないけど。

59 :くまりんこ七段:2017/07/08 23:40:30  11.14305814MONA/4人

形になってきたのでテスト公開
ファイルアップロード後、モナコインを送金することでブロックチェーンにファイルを書き込めます。
バグなどあれば教えて頂けると助かります。

https://monacoin-explorer.appspot.com/

60 :なちゃっと八段錬士:2017/07/09 00:05:50  0MONA/0人

>>59
すごい興味深いサービスです!

何回か試してみたところ、Submitした時に下記のようなエラーが表示され、今のところ一度も成功できていない状態です。(もしかしてメンテ中なのかもしれませんが)

Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.

61 :くまりんこ七段:2017/07/09 00:27:13  0MONA/0人

>>60
ありがとうございます。
バックグラウンドサーバが死んでいたので再起動しましました。

もし送金しても反映されないことがありましたら、ステータスページのURLを貼ってもらえれば返金対応できます。

62 :もなこいにすた★六段教士:2017/07/09 00:41:36  0MONA/0人

これさ、契約書や登記的な情報をブロックチェーンに刻めますよってことだよね。

63 :くまりんこ七段:2017/07/09 00:51:26  0MONA/0人

>>62
データサイズが7,920byte以下であれば可能です。

64 :ミツコア七段錬士:2017/07/09 00:54:47  0.01114114MONA/1人

>>59すごい!

://monacoin-explorer.appspot.com/d/bbc513584eb50231cf937057b3b6d0d248605a5d9eab4d708a0ad61cc313ba7e
さっそくモメ神社護符を刻んでみました。

65 :なむやん七段教士:2017/07/09 00:56:19  0.01114114MONA/1人

さっそく刻んできたゾ
://monacoin-explorer.appspot.com/d/28949ac4ed0f7a35f512a5cad3675b887e0fd1106d91917675c14dde31d8eb73

66 :もなこいにすた★六段教士:2017/07/09 01:06:42  0.01MONA/1人

永遠に刻まれるのだ…。
http://monacoin-explorer.appspot.com/d/MTA0MzkzMjoy

67 :なちゃっと八段錬士:2017/07/09 01:25:50  0.01MONA/1人

できました!
http://monacoin-explorer.appspot.com/d/MTA0Mzk1MTo3

urlをtwitterとかに載せてもいいですかね?(サイト負荷など的に)

68 :もなこいにすた★六段教士:2017/07/09 01:31:48  0MONA/0人

これって、悪用されたときに困るのはフルノードの人?

69 :Monaparty名無し八段錬士:2017/07/09 06:52:44  0MONA/0人

>>68 悪用のされ方によって困る人が違ってきます

70 :もなこいにすた★六段教士:2017/07/09 07:18:53  0MONA/0人

>>69
場合によっては、フルノードに負担がくるという回答だね?

71 :Monaparty名無し八段錬士:2017/07/09 08:23:26  0.1MONA/1人

>>70 そういう困り方もありえますけれども

加えて別の困り方として
著作権をはじめとする
権利を侵害するコンテンツがブロックチェーンに含まれる
というケースが考えられます (つづく

72 :Monaparty名無し八段錬士:2017/07/09 08:23:39  0MONA/0人

つづき)

著作権に限ると
権利侵害物を送信可能にすること自体は幇助に当たらない
という判例があります
(Winny で47氏が被告になった事件)
ただし無罪判決の根拠として「金銭の授受がなかった」があります

>>59 の送金先がどなたのアドレスなのか判りませんが
仮にサイト主宰者と同一と判断されたとき
摘発リスクは高まるかもしれません

司法警察と検察がどう考えるか次第ですけれども

73 :くまりんこ七段:2017/07/09 21:37:21  0.1MONA/1人

おかげさまで正常動作を確認できました。ありがとうございます。
今後ブロックチェーンから自前でデータを取り出すためのドキュメントを追加する予定です。

>>67
たぶん大丈夫だと思います。

>>68-72
著作権関連についてはMonaparty氏のおっしゃる通りです。

もしブロックチェーンのサイズ増大を気にするのであれば、
・monacoin.confにpruneオプションを設定する
・Segwit対応前のmonacoindを使う
等で自衛できます。

74 :mona金貨作るよ三段:2017/07/10 02:23:22  0MONA/0人

技術的なことは全くわからんですけど凄いっす

75 :Monaparty名無し八段錬士:2017/07/10 10:09:23  0MONA/0人

日本では盛り上がっていませんが「忘れられる権利」等など
思うとパンドラの箱っぽい感はありますが…

本件に限らず
ブロックチェーンに関われば
至るところパンドラの箱ですからね…

Counterparty のノードも
資金決済法や賭博法に対して合法なのかは
グレーゾーンというか
判例が出てみないと決まらないですし

76 :とらんす三段:2017/09/14 17:23:05  1MONA/1人

面白そうですね。
仮想通貨の匿名性を考えると著作権違反や個人情報の書き込みがあっても犯人を特定するのは難しいでしょうね。
まあ落書きやグラフィティの類に近いでしょうか。
一般に普及させるにはクライアントソフト側にOP_RETURNをASCIIで記入できるようにするとかがいいんじゃないでしょうか。あと、そのメッセージを表示するブロックエクスプローラーがあると面白そうですよね。

77 :はまな四段錬士:2017/09/25 02:34:16  0.00114114MONA/1人

あげ

78 :みかん二級:2017/12/12 21:25:49  0MONA/0人

ここの住人てほんとスキル高すぎてびっくりします・・・。

お気に入り

新規登録してMONAをもらおう

登録すると、投稿したり、MONAをもらったりすることができます。質問したり、答えたりしてMONAを手に入れてください。

新規登録ログイン