自分(サービス)への利益をいただきつつ、当事者にブロックチェーンを使わせる

変なタイトルですが、無償ではなくて、有償でブロックチェーンサービスを使用していただきつつ、こちらとしてはカスタマーへウォレット管理はしませんよという形態をとる方法。

カスタマーはブロックチェーンに登録する際にかかる費用に手数料としてこちらにお布施をくれる。お布施というかサービスを繋ぐ場の手数料ですかね。

前回の続きで、簡単にオプション追加で行える。

document.addEventListener("DOMContentLoaded", function(e) {
	databutton.build({
		data: ["0x6d0c", "テストなので短いテキスト"],
		button: {
			$el: "#button",
			$pay: {
				to: [{
					address: "支払うアドレス",
					value: サトシ
				}]
			},
			onPayment: function(msg) {
				console.log(msg)
				document.querySelector("a#tx").innerHTML = "View on B (" + msg.txid + ")"
				document.querySelector("a#tx").setAttribute("href", "https://b.bitdb.network#" + msg.txid)
			},
			onError: function(err) { console.log(err) }
		}
	})
})

これで、OP_RETURNに登録しつつ、payも行う。OP_RETURNは自身のmoneybuttonアドレスへ自分に向かって行う。なので2通信。といってもあっという間に行われる。

当たり前のこと言うけど重いファイルはネットワーク上にあげる分待つ。それはネットと同じ。これで皆さんは顧客のウォレットを管理せず感知せずにサービスを提供し、利益を得られる。難点としてはfiatでできない事ですね。今後気軽に法貨トークンを交換できたとしても、いちいち交換しないといけない。suica, paypayやlinepayにいちいち入金しないといけないのと同じ。これは電子マネーみな敷居として苦労している。

ちなみにfeebを0.4にしようとよこしまなテストをしたがきっちり0.5sat取られた。

github.com
github.com

次の課題はこれだと暗号化できない。jsで暗号化、復号化できると幸い。それとtxをちゃんとこちらのサーバで出来れば受け取りたい。ajaxだと不確実なのが恐い。実際は登録の仕方で、こちらでブロックチェーンを参照すれば取れそうだが、これも確実ではない。例えばイタズラで似たようなデータ形式を登録されたりとか...まぁメリットないけどビジネス化が進めばないこともないよね。
jsの暗号復号はふつうにopensslの形式である模様。
techacademy.jp
こちらのサーバで用意したキーを入れたりできれば良さそう。まだちゃんと読んでないけど。