Yearly Archive 2023-12-10

Nix-Bitcoin

Bitcoin,Lightningノード は下記で動かしたことがありますが、いろいろと面倒でした。

http://bitlife.me/bc/2022/01/04/

http://bitlife.me/bc/2022/01/15/

下記動画で、簡単に立ち上げているのを見て試してみました。

NixOSとは何か、はまた別の機会・場所で取り上げるとして、ノードが簡単に立ち上がるかどうか、まずは動かしてみました。

https://nixos.org/download#

NixOSは上記を、VirtualBox7.0でうごかしました。(私の環境は画面とはちがい v23.05)

https://github.com/fort-nix/nix-bitcoin/blob/master/examples/README.md

上記サイトにならってコマンドを実行します。(画面は実行中・・)

. . .

これでVMがたちあがりました。プロンプトが緑から赤に変わっていますが、これでプロセスもネットワークも別のマシンが立ち上がったことがわかります。表示されたコマンドを実行して、ノードが立ち上がっていることを確認してみます。

上記のような結果となりました。具体的な動作は確認していませんが、なによりNixOSに好奇心がわきました。

デフォルトではsshdがインストールされていないので、スクリーンショット(VirtualBoxではとれなかった。ScreenCopyキーでNixOSのスクリーンショット機能がたちあがる。) を別のVirtualBoxのLinuxにScpでコピーして転送しました。(インストールは以下が参考になるかも)

NixOS、もっと掘り下げていきたいです。

BitcoinNFT Inscriptions

BitcoinでNFTが使えるという、とても興味深いニュースを見たので情報を整理してみました。
NFTはEthereumのスマートコントラクトの規格ERC-721で有名ですが、ついにBitcoinでもBRC-20という新しい規格で実装されました。(トークンの規格でスマートコントラクトではない。Ordinalsという仕組みの上で動作)


NFTで一番の不安は、画像などのデータがブロックチェーンに保存されるのではなくIPFSやホスティングサービスを利用することでした。IPFSが安定してアクセスできなかったり、ホスティングサービスが停止したりすると、いくらブロックチェーンが永続的であっても肝心のデータを紛失することになります。それゆえ一番分散がされていて安定しているBitcoinブロックチェーンにデータを刻むことができるInscriptionは、とても理に適っていると思います。

(画像がないものも多い)

下記「BRC-20とは?ビットコインのトークン規格がもたらす可能性と課題」https://coinpost.jp/?p=459652 より引用。

Inscriptionとは
刻印(Inscription)は、OrdinalsとBRC-20で使用される方法で、ビットコインのトランザクションのウィットネスフィールドにJSON(JavaScript Object Notation)形式のテキストファイルを記述するプロセスを指します。これにより、各サトシにトークンデータを関連付けて記述することが可能になります。

「刻印」されたサトシは、通常のビットコインと同じように扱うことができます。つまり、トランザクションで送受信したり、ビットコインのアドレスに保管したりすることが可能です。

ただし、これら特別なサトシを送信する際には、特定のルール、すなわちOrdinalsプロトコルに従う必要があります。これにより、特別なサトシがどのトランザクションで使用され、どの順序で移動されたかを追跡できるようになります。これは、そのサトシの持つ独特な情報を維持しつつ、ビットコインのブロックチェーン上でのその動きを確認するためのものです。

ウィットネスフィールドとは
Segregated Witness(SegWit)と呼ばれる技術の一部として導入された概念。トランザクションに関連する追加のデータを含む特定のフィールドです。

このようにビットコインの新しいアップデートで可能になった機能を使って実装しているため、複雑なことはできず、トークンの送受信などは専用のツールを使って行われるようです。(スマートコントラクトによるものではないという意味)

下記「ビットコインNFTとは?「Ordinals」が実現するNFTの特徴と仕組みについて解説」https://coincheck.com/ja/article/557  より引用

Segwit方式では、Legacy領域と比較して書き込むデータコストが4分の1で済み、さらに1ブロックに詰め込むことができる最大データの容量が4倍(4MB相当)になるというメリットがあります。

ビットコインNFTの具体的な発行コストは、画像データ100KBの書き込みにつき、通常「約7.5〜15ドル」です。

ビットコインNFTの発行コストは手数料相場に大きく左右され、2satoshi/vBで試算すると上記のコストとなります。高い手数料(およそ20satoshi/vB以上)を払えばすぐに発行できる一方で、発行までに時間がかかっても問題ないのであれば、安い手数料でイーサリアムNFTよりも安価に発行することができます。また、最安の手数料水準である1satoshi/vBの場合は、さらに半額である7.5ドルで100KBのビットコインNFT(Inscriptions)を発行できます。

注意点としては、ビットコインの価格が上がれば15ドル以上の手数料がかかってしまう可能性もあります。そのため、必ずMempool(メンプール)の取引手数料水準を確認した上で、適切な手数料レートを設定するようにしましょう。

詰め込むことのできるファイルの最大サイズは4MBということでしょうか。NFTでの活用がすすむとネットワークが重くなるのではという心配もありますが、通信インフラの性能向上もされていくのでチェーンも維持されていくのでしょう。(機能の増加と性能の向上はともに進む。Windows OSがいつまでたっても重いように・・)

下記動画では、実際にNFTを書き込むまでの手順が紹介されています。

bitcoinデーモンを起動させて、ブロックチェーンの同期、インデックス作成、ord walletにbitcoinの送金などの説明があります。

https://github.com/casey/ord

このブログでもbitcoinフルノードの構築をやったことがあります。

Lightning Network」http://bitlife.me/bc/2022/01/15/

Bitcoin Core」http://bitlife.me/bc/2022/01/04/

最初の動画でテキストファイルを’inscribe’していますが、テキストなのになぜ画像が表示されているのだろうと思い実際に確認したところ、絵文字と特殊フォントの文字でした。

https://ordinals.com/inscription/801beb5fd41d3aba56baebcc2b6aadf591d1f526789c148e7ae4273ba11c6cbbi0

下記サイトの画像がないJsonオブジェクトが表示されるだけのものは、NFTではなくコインのものなのでしょう。

https://ordinals.com/

また下記の動画では、BRC -20コインの購入の仕方が詳しく説明されています。

Etheriumでいうガス代、NFTを買うような感覚がOrdinalsではどうかとか、またフリーミントなどトークンの仕組みについて理解が深まります。

Core Blockchain

通常のブロックチェーンはインターネットの通信インフラを前提に構築されますが、このCore Blockchainというのは、通信インフラの構築もカバーするというとても野心的なプロジェクトです。スマホや独自デバイスを使ったP2Pのメッシュネットワークも開発されており、たとえインターネットがなくても機能するというシステムになっています。このあたり豪華な創業メンバーのインタビュー、オフィスの訪問、そのしくみなど、下記の動画のシリーズで意欲的に説明されています。

省電力で動作するデバイスに魅力を感じますが、これが実現できれば素晴らしいと思います。また下記の動画で、実際にマイニングをしたものがあります。マイニングというとProof of Workのビットコインをイメージしますが、ノードをたてて同期させ、されにマイニングとなるととてもコストがかかります。ところがこれが簡単にできるようなので、私も実際にためしてみました。

手順)

https://blog.coreblockchain.cc/posts/iot/mining.html

ウォレットの作り方)

https://github.com/core-coin/wallet-generator

ウォレットジェネレータダウンロード)

https://github.com/core-coin/wallet-generator/releases/download/v1.22.0/wallet-generator-linux-x86_64

マイニングアプリダウンロード)

https://github.com/catchthatrabbit/coreminer/releases/download/v0.19.72/coreminer-linux-x86_64.tar.gz

環境)Ubuntu 22.04

まずウオレットを作ります。

上記バイナリを実行権限を与えて実行するとWebサービスが立ち上がるため、http://(host):8080にアクセスします。

次にダウンロードしたマイニングアプリを解凍して、./mine.sh として実行します。

項目を入力するとマイニングが始まります。

Virtual Boxで動かしていて、上はCPU1つ、下は4つです。(processing unitsで指定)

数時間ほどたって結果を確認しました。

XCBのバランスに変化がありました。(データがないときは下記の画面)

動画では操作しながら説明されていますので、わかりにくい場合はそちらを参考にしてください。しかしこのような動画、日本語のものは珍しいと感じました。あと気になる点としてはビッグプロジェクトのわりには、ここ半年くらいあまり更新がないことです。ということもあり更新が比較的新しいウォレットジェネレータをテストしてみました。

PoWは電力がかかるため環境面からも最近は敬遠されがちですが、ブロックチェーンの分散された特徴を維持するためには、理想の形だと思っています。これまでのブロックチェーンネットワークを維持するための報酬がモチベーション、という形から、メッシュネットワークを(も)維持するための報酬がモチベーションという形になると、通信インフラ自体を新しく構築、維持できることになります。これはとても興味深いです。

Lens Protocol

ソーシャルグラフを使ったサービスをブロックチェーン上で取り扱うプロトコルとして、最近目にしたLens Protocolを調べてみました。(下記参照)

今回、dappをつくるためのプロトコルということで、開発者として気になるところは、どのブロックチェーン上で動くものか、どんな開発環境で実装するのか、実行時のガス代はかかるのか、などです。





















引用ばかりになってしまいましたが、ポリゴンチェーンの環境(EVMのスマートコントラクトを利用)で、GraphQLを使って実装するようです。ガス代はポリゴン自体が負担の少ないチェーンになりますが、それに加えてできるだけ負担が少なくなる仕組みも用意されているようです。API呼び出しもアプリからやる方法とGraphQLのQueryが実行できるサイトが用意されています。

(GraphQLは、Enjinでもでてきました)

http://bitlife.me/bc/2022/03/26/

参照した動画(最下部)にはアプリの実装方法が詳しく説明されています。(上記RecomendedProfilesの実装部分のスクリーンショット)





GraphQLはコピペして利用しています。ドキュメントサイトでは、多数のAPIのQueryが用意されているので、それを編集してすぐに試すことができます。(データの書き込みには認証が必要)

プロファイルIDを指定して、データを取得するQueryを実行してみました。


このブログをはじめてちょうど一年たちましたが、たった一年ですがさまざまな出来事がありました。LUNAの暴落やFTXの経営破綻が暗号通貨市場に多大な影響を与えたせいで、ブロックチェーン業界のイメージに悪影響を与えた部分もあります。しかしながら Lens Protocolのような技術は着々と開発されており、新しい可能性を十分に感じています。まだまだ魅力的な分野にはかわりないでしょう。

参照動画

参考動画