見出し画像

高齢者の妄想 ビットコインを自分で作ってみたが失敗


はじめに

勉強会仲間に勉強会のテーマを事前相談してみました。
「ビットコインの仕組み!
 勉強するだけ?
 触ってみることはできないの?
 自分の人生で関われないことを勉強しても面白くない。
 自分が関われるテーマでなければ面白くない。」
なるほど、納得の意見でした。

勉強会の参加者は全員が後期高齢者です。
今後自分が関わることのないと思う話に関心が持てるはずがないですね。
「それよりも今すぐできる何かを提案して欲しい。
 例えば、みんなで10万円ほどを仮想通貨を買ってみようとか、
 そのような提案だったら関心が持てるかも。」
だそうです。

現役時代、銀行や鉄鋼会社などで、さまざまな経験をしてきた人たちです。
引退して何もやることがなくなった。
同じような日々を過ごすより何かやってみたいと思いながら過ごしている。

ビットコインを作る人と買って儲けようと思う人とは情報格差があります。
この格差は金を掘る人と金鉱の所有者との格差より大きいかも知れません。
「作る側になれるんだったら面白いかもしれない」
信頼できる仲間と楽しめるなら、ある程度のお金は使っても良い。

そうだ!自分でビットコインを作ってみよう。

できれば誰かが作ったルールの上で投資なんぞしたくない。
自分たちがそのルールを作るってできないか?
いっそのこと自分たちでビットコインを作ってしまうのはどうだろう!
知らない若者から持ち掛けられても絶対に乗らないが、いつもの仲間なら。
というわけで、調べてみることになった。

では、ビットコインを作ってみようか、と調査開始です。
サトシナカモトが所属していたビットコインフォーラムに「新アルトコインつくりのための完全ガイド」という記事がみつかりました。

結果は挫折でした。
成功を前提に記事を書きながら、ビットコイン作りを試しました。
以下の解説は失敗の記録となりました。

ビットコインの作り方

作り方の解説はいろいろあります。
暗号資産取引所の解説記事は分かり易くて、魅力的です。
しかし、彼らが魅力的な記事を書くのは狙いがあります。
その狙いに協力する結果になりたくないので、中立な記事を捜しました。

サトシナカモトが所属していたオリジナルなフォーラムを見てみました。
すなわち、ビットコインフォーラムです。
ここならわかりやすさはともかく、いい加減な投稿は許されないはずです。

原文と本記事を読みながらビットコインを作ってみて下さい。

具体的な開発の方法

開発に必要な作業はほんのわずかです。
コインの名称を決め、プログラムコードにその名称を書くだけで良い。
ソースコードはパブリックドメインだから自由に使ってよい。
作り方はビットコインフォーラムで公開されています。
いい題名です「新アルトコインつくりのための完全ガイド」。

新たなコインを開発する

1.開発に必要なリソース

公開された資料を読んで、概要を把握してみましょう。
細かいところは英文を読んで確認して下さい。
・You need to have some basic knowledge of C++ programming.
 ソースコードはC++言語で書いてあるようだ。
 C++言語がわからなくてもコイン名称を修正するだけ、何とかなるさ。
・Download the Litecoin full source code, you can find it in github…
 Litecoinのソースコードをgithubからダウンロードするんだね。
 Litecoinといえば、ビットコインから派生した初期のアルトコインだね。
・If you use windows, follow the steps in this thread:
 Windowsの場合はこれを使うのだね。

・set up environment and libs,
 環境とライブラリをセットするんだね。
・and compile the Litecoin
 そして、Litecoinをコンパイルするんだ。
・If you are successful in compiling it, then your environment is good.
 コンパイルがうまく行けば環境はOKだ。

以上が開発の概要です。
細部を見て行きます。

2.コインをデザインする Design your coin

デザインすべきは以下の6項目のようです。
・name of the coin.
 コインのネーミングは最も(技術より)重要です。  
「アルトコイン」は偽っぽい名前なのでだめだ。
「メタビットコイン」、「プレビットコイン」などはどうでしょう。
・block time:
 次のブロックを作るまでの時間ですね。
 普通は15秒~2分だが、ほとんど誰も使わないから10分でもいいかな。
・difficulty retarget time:
 マイニングの難易度再調整時間。
 普通は1 時間~ 1 日の間。 
・what's the initial coin per block.
 ブロックあたりの初期コイン。
 通常は 2 ~ 100。
・How long you want coins per block be halved.
 ブロックあたりのコインを半減させる期間、いわゆる半減期。
 これでマイニング報酬が半分ずつに減っていく。
 初期参入者ほど報酬が大きいことになる。
 通常は 6 か月~ 3 年です。
 マイニングしてもらいたいなら期間は長くしたい。
 価値が上がるのなら短い方が良い。
・Ports, you need two:
 接続ポートと RPC ポートの 2 つが必要です。

3.コードの変更

作成するコインの名称をXXXcoinにするものとします。
Before you begin, copy the whole directory of Litecoin to XXXcoin.
最初に、LitecoinのディレクトリをXXXcoinにコピーします。
これで準備完了、ソースコードの変更の12ステップを開始します。
1.In XXXcoin/src dir, do a search of "litecoin", and change most of them to "XXXcoin", note you may want to do a case-sensitive replace.
 XXXcoin/src ディレクトリで「litecoin」を捜し「XXXcoin」に変更する。
 コインの説明やホームぺージアドレスで使われています。
 ホームページはないので、変更先がありませんでした。
2.In XXXcoin/src dir, do a search on "LTC", and change them to "XXX".
 XXXcoin/src ディレクトリで「LTC」を捜し、「XXX」に変更する。
 コインの単位です。
 適切な3文字を決める必要があります。
3.Change the ports: use the ones you defined in coin design, and change in the following files:
 デザインの項で決めた次のポートを変更する。
 - connection port: protocol.h and init.cpp
 - rpc port: bitcoinrpc.cpp and init.cpp
 protocol.h 、init.cpp 、bitcoinrpc.cpp 、 init.cppが見当たりません。
 bitcoinrpc.cppがソースに見当たらないのです。
 ここで挫折しました。
 Copilotに原因を聞いてみました。
 ・記事の賞味期限切れ
 ・
Litecoinソースのバージョンの違い
 が考えられるとのこと。

以下、参考までにその他のコードの修正箇所を書いておきます。
4.Change parameters, all in main.cpp:
 main.cppにあるパラメーターを変更する。
5.According to your coin design, adjust the value in main.h:
 コインの設計に応じて、main.h の値を調整する。
6.Change transaction confirmation count in transactionrecord.h
 transactionrecord.h でトランザクション確認数を変更する。
7.Create genesis block. Some people get stuck there, it's really easy:
 ジェネシス ブロックを作成する。
8.Set the correct address start letter in base58.h.
 base58.h で正しいアドレス開始文字を設定する。
9.Checkpoint: you want to disable the checkpoint check initially, otherwise you may get stuck.
 最初はチェックポイントを無効にしておく。
 さもないと、行き詰まる可能性があります。
10.Find a nice image for your coin, then make 256x256 icons/images.
 コインに適した画像を見つけて、256 x 256 のアイコン/画像を作成する。
11. Oh also edit those files in qt/forms.
 qt/forms のファイルも編集します。
12. Now for compilations:
 そしてコンパイルします。

開発以外にやること

  1. 仲間づくりがとても大切です。
    最初は仲間内で取引実験をやってみて、実際の取引の経験を積む。   実験がある程度できたらSNSで拡散だ。            

  2. 資金はそれほど問題ありません。
    事前に相談した友人は「面白ければある程度は出す」と言っている。  
    サーバーを使わないPeer to Peerネットワークなのでサーバー費用は0。

  3. 著作権は問題ありません。
    ビットコインのプログラムは誰でも自由に使えるパブリックドメイン。   著作権を主張していないので、無料だ。
    ちょっとの努力で簡単にコインが作れてしまう。
    バリバリのエンジニアでなくても良い。

まとめ

どこで買う?どこで売る?どうやって使う?
これらの仕組みは全て自分で作るのです。
仮想通貨づくりは、自分が思うとおりのシナリオを描いて実行するのです。
誰かが作ったルールの上で投資するなんて、鴨になるってことです。
自分たちでゼロからルールを作れば、失敗しても0に戻るだけです。
面白いことを経験できたと言う記憶だけが残ります。
死ぬ前にひと花咲かせられるかもしれません。
失敗しても「あそこで失敗した」と経験が残ります。
こんなプロジェクトの方が既存仮想通貨に投資するよりずっと面白いです。

家族は理解してくれないかもしれません。
奥様達からはなんてつまらないプロジェクトだと言われるでしょう。
死んだ男は何も残さなかったと言われるでしょう。
世のため、人のため何もしていないじゃないかと言われるでしょう。
後輩からは、あの歳で面白いことやってるなと言われのでしょうか。

こんな妄想ばかり。
今回は失敗。
次は成功させるぞ。
老人だって妄想してもいいじゃないか。


【マガジン】BITCOIN
ビットコインシリーズ序文
ビットコイン誕生前夜 Winny
ビットコイン誕生前夜 Napster
ビットコイン論文の先頭1ページを読むと見えてくること
ビットコイン実現のために解決すべき 二重使用問題
Peer to Peerネットワーク ブロックチェーンの基礎技術 その1
大福帳 ブロックチェーンの基礎技術 その2
ビットコイン マイニングとは
ビットコイン相当の 新たな暗号資産を作る方法
ビットコインとイーサリアム
ブロックチェーン ブロックを覗いてみる、コードを書いてみる
ビットコインで隠れ事件発生 オーバーフロー事件
ビットコインの隠れ事件2 チェーン分岐事件
ビットコインに関連した事件
法定通貨より仮想通貨はと考える人もいる
ビットコインとWeb3.0
週末の勉強会のテーマはビットコイン
デジタル情報の価値が分からない人にビットコインを説明する
高齢者の妄想 ビットコインを自分で作ってみよう(本記事)

ここから先は

0字
ビットコイン関係記事を発行時期によらないで、10本以上の記事を順番にすべてを読むことができます。

ビットコイン誕生前夜からナカモトサトシが姿を現さなくなるまでの出来事をいくつかの記事で紹介しています。

よろしければサポートお願いします! いただいたサポートは全て『「思い出の場所」の記事とGoogle地図を関連付けるWeb地図アプリ』のLancersでのプログラミングの外注に使わせていただきます。 よろしくお願いします。