kharukaのブログ~お金と技術とキャリア~

Edu Fin~金融×教育~若いうちからお金について学ぶってだいじ!自分が学んだテクノロジーはみんなの財産!過去、今、将来の人生!についてのブログ

はじめてのスマートコントラクト言語 Scilla for Zilliqa Part 2(2018年11月3日執筆)

ビットコインとブロックチェーン

ビットコインとブロックチェーン

▼前回の記事はこちらです。

kharuka2016.hatenablog.com

1. demo1

名前を登録したり、削除するContractを作ってみましょう。

1.1. 新規ファイル作成

NEW CONTRACTをクリックします。

ファイル名(任意)はdemo1.scillaとします。

1.2. libraryとの関連付け

library Infoteria

1.3. contractの定義

contract Infoteria
(owner : ByStr20)
1.4. field(可変な変数)の型宣言と初期化
field participants : Map ByStr20 String = Emp ByStr20 String

1.5. 名前登録・削除transaction作成

自力でtransaction作成に挑戦してみたい方は頑張ってください!

例は、後述のGitHubソースコードをあげているのでご参考までに。

transition registerName(inputFirstName : String)
(* 略 *)
end

transition deleteName(participantAddress : ByStr20)
(* 略 *)
end

1.6. Check

コードチェックしましょう。

エラーがあれば適宜修正です。

コードチェックは無事に通りましたか?

1.7. Save

コードチェックに問題がなければファイルを保存します。

1.8. Deploy and Call

後は、Part 1と同様にDeploy and Callです。

動くかワクワクしますね。

2. GitHub

▼demo1.scillaのソースコードはこちらです。

github.com

ビットコインとブロックチェーン

ビットコインとブロックチェーン

次回は苗字と名前で分けて入力できる様にしてみましょう。

▼記事の続きは以下へ。

執筆中です。

参考

ビットコインとか勉強会#23に参加してみた Part 1

ビットコインとブロックチェーン

ビットコインとブロックチェーン

1. bitcoin オフチェーン入門

発表者 惠上 裕介 氏

オフチェーンとは?

オフチェーンとはスケーラビリティ問題を解決するための技術の一つです。

ビットコインブロックチェーン(オンチェーン)とは別のチェーン(オフチェーン)で

送受金を行うことで処理速度を速めています。

オフチェーン学習ロードマップ

以下、執筆中です。

単方向ペイメントチャネル
双方向ペイメントチャネル
HTLC
LightningNetwork

疑問?

サイドチェーンとは異なるの?

2. BITBOXによるBitcoin Scriptアプリ開発

発表者 Avocado 氏

BITBOXとは?

BITBOXとはBitcoin.comが提供するjavascriptフレームワークをベースとしたBitcoin Cash上の開発プラットフォームです。

BITBOX 使えばBitcoin Script アプリが簡単に作れる

以下、執筆中です。

ハンズオン

Bitcoin Script アプリの特徴と課題

Ethereum スマコンとの違い

疑問?

Keokenってどうなの?

参加賞

こんなシールを頂きましたー!

▼記事の続きは以下へ。

執筆中です。

ビットコインとブロックチェーン

ビットコインとブロックチェーン

参考

はじめてのスマートコントラクト言語 Scilla for Zilliqa Part 1(2018年11月3日更新)

ビットコインとブロックチェーン

ビットコインとブロックチェーン

1. Zilliqaとは?

Zilliqaとは拡張可能で安全な分散型アプリケーション(Dapps)を提供するためのブロックチェーンプラットホームです。

2. Scillaとは?

ScillaとはSmart Contract Intermediate-Level Languageの頭文字とったもので、

Zilliqa用に開発されている中間レベルのスマートコントラクト言語です。

3. スマートコントラクトとは?

スマートコントラクトとはひとことで言うと自動契約です。

自動販売などの例が良く挙げられますね。

なぜなら、

  1. 自動販売機にお金を支払う

  2. 欲しい商品を選択する

  3. 自動販売機から商品を受け取る

プロセスに商品提供者側の人の手が介入していない(プロセスが自動化されている)

取引(契約)が成立しているからです。

3.1. Ethereumにおけるスマートコントラクト

スマートコントラクトを実行するためのプラットフォーム

分散型アプリケーションを実行するためのプラットフォーム

4. Scilla IDEでScillaコードを実行してみよう

4.1. 以下のURLからScilla IDEにアクセス

https://savant-ide.zilliqa.com/

4.2. HelloWorld.scillaファイルをクリック

Scillaコードが書かれていますね。

難しそう?

詳細については、参考にリンクを貼っていますので

オフィシャルドキュメントを読みましょう!

f:id:kharuka2016:20181024015851p:plain

4.3. DEPLOYをクリック

f:id:kharuka2016:20181024015854p:plain

4.4. Select accountで一番上にあるowner account以外で使用されていなさそうなアカウント(Nonce:0など)を選択

この時、選択したアカウントやowner accountをメモしておくと後々の作業が楽です。

アカウントの右側にコピーアイコンがあるので、クリックするとアカウントがコピー出来ます。

f:id:kharuka2016:20181024015858p:plain

f:id:kharuka2016:20181024015901p:plain

4.5. Choose a scilla source fileでHelloWorld.scillaを選択します

f:id:kharuka2016:20181024015904p:plain

f:id:kharuka2016:20181024015907p:plain

4.6. Initialisation Parameters:にowner accountをペースト

f:id:kharuka2016:20181024015910p:plain

4.7. DEPLOYをクリック

f:id:kharuka2016:20181024015915p:plain

4.8. 以下の様に表示されることを確認

Your contract was successfully deplyed to
<contract>
Gas used: xxx
Gas price: xxx
Transaction cost: xxx ZIL

表示されたcontractをメモしておきましょう。

f:id:kharuka2016:20181024015921p:plain

4.9. DEPLOYを選択して、先ほど選択したaccountとdeployしたcontractを選択

f:id:kharuka2016:20181024015926p:plain

4.10. Select a transition for HelloWorldでset Helloを選択

HelloWorld.scillaでtransition(functionの方が馴染み深い?)が定義されています。

ご興味がある方はHelloWorld.scillaのコードを読んでみてください。

f:id:kharuka2016:20181024015929p:plain

4.11. Transition parameters:に任意のメッセージを入力し、CALL TRANSITIONをクリック

f:id:kharuka2016:20181024030142p:plain

f:id:kharuka2016:20181024030146p:plain

f:id:kharuka2016:20181024030150p:plain

4.12. set Hello transitionのcallに成功したか、また入力したメッセージがセットされたか確認

あれれー?

welcome_msgが""ですね?

f:id:kharuka2016:20181024030154p:plain

f:id:kharuka2016:20181024030159p:plain

CALLする時のaccountをowner accountにして再度試してみましょう。

今度はうまくいったみたいですね。

f:id:kharuka2016:20181024030203p:plain

setHello transitionのmatch is_owner withあたりのコードを読むと理由が分かると思いますよー。

Scilla IDEの使い方に慣れましたかね?

次回からは実際にScillaでコーディングをして行きましょう!

▼記事の続きは以下へ。

kharuka2016.hatenablog.com

ZIL募金受付中

この記事が少しでも皆様のお役に立てた様であれば、

ZIL募金よろしくお願いします!

Zilliqaアドレス

0x266713bF30F23bD2dd00d2EA107FBac103B76142

Zilliqa QRコード

f:id:kharuka2016:20181024004004j:plain

ビットコインとブロックチェーン

ビットコインとブロックチェーン

参考

【サイバーセキュリティ】GDPR ガイドブック 第2章(2018年10月6日更新)

GDPRガイドブック EU一般データ保護規則 活用法

GDPRガイドブック EU一般データ保護規則 活用法

▼前回の記事はこちらです。

kharuka2016.hatenablog.com

bitFlyer ビットコインを始めるなら安心・安全な取引所で

第2章 GDPRの概要

GDPRとは「規則」である

GDPRとは、「General Data Protection Regulation」の頭文字であり、日本語では「EU一般データ保護規則」と訳される。

GDPRと言われると??ですが、EU一般データ保護規則ならば耳にしたことがあるのではないでしょうか?

しかし、「Regulation (規則)」となると、EU加盟国において国内での立法を必要とせずに直接的な法的拘束力を及ぼすもっとも強力なもののひとつとなる。

GDPREU加盟国において、かなり強力なものであることが分かります。

GDPRは何の規則?

個人データの処理移転に関する規則です。

データ活用の基本ルールである

「個人データを保護する取り組みが適切になされており、問い合わせがあった際にはそのことを証明できること」。

そして、「万が一、データ侵害が発生した際には、その事実を検知して適切な対応が出来ること」である。

当たり前のことが書いてありますよね?

これが出来ていない企業を信頼出来ますか?

フェイスブックから多くの個人情報が英政治コンサルティング会社へ不正に流出した問題で、英国のデータ保護当局が罰金を科す方針を発表しましたね。

GDPRには該当しませんでしたが、フェイスブックの信頼はガタ落ちであったことは自明ですね。

主な登場人物は「データ主体・管理者・処理者」

  • データ主体

これは、情報に紐づく個人のことである。個人データそのもではなく、その個人データが指し示す個人そのもののことである。

氏名 年齢 住所 電話番号 e-mail ...
テスト一郎 10 xxx xxx-xxxx-xxxx test1@test.test ...
テスト二郎 20 xxx xxx-xxxx-xxxx test2@test.test ...
テスト三郎 30 xxx xxx-xxxx-xxxx test3@test.test ...

以上の様なデータではなく、データ主体とはテスト一郎さん本人を指します。

  • 管理者

GDPRとは「個人データの処理と移転に関する規則」であるとし、データ主体にとっては「自分が同意した以外のデータ処理を制限する権利」だと前述した。

この処理する「目的」と「手段」を決定する者のことを管理者と呼ぶ。

分かりやすく言えば、企業であったり社長です。

  • 処理者

管理者の決定した個人データ処理の目的と手段に則って、個人データの処理を行う者のことである。

分かりやすく言えば、情報管理者である企業であったり外部委託の業者、A○SやMS A○ureなどのクラウドサービスの事業者、情報管理者である企業の運用チームです。

以下、執筆中です。

多くの国で認めていない「移転」

そして、個人データを国際間で「移転」するということを、多くの国において原則として認めていない。

ただし、この「原則として」というところがポイントではある。

まずひとつは、「本人からの同意」を得ていること。

企業としては、なんとかなりそうですね。

そしてもうひとつが、個人データ移転元となる国から見て、十分なレベルの保護措置が確保された規則を適用している国や地域に移転する場合である。

国として、本書執筆時点で規則(改正個人情報保護法)整備の対応が遅れています。

企業としてはどうしようもないので、日本頑張ってください!

GDPRの施行によって何が変わるのか?

莫大な金額の制裁金制度が導入されることは今回の大きなポイントだ。

企業はGDPRに遵守した個人データの取り扱いを行わなければ、

多額の制裁金を支払うだけではなく信用も失います。

ルールを守らない企業は、淘汰されていくでしょう。

企業にとっては良くも悪くも他社との差別化を図れます。

個人に対しては、これまでの権利を一層強化する。

個人のデータがより一層守られます。

これは良いことですね。

個人情報を含むビックデータを取り扱う大企業が

無秩序に横暴な行為をすることも減っていくでしょう。

▼記事の続きは以下へ。

執筆中です。

参考

  • GDPR ガイドブック

GDPRガイドブック EU一般データ保護規則 活用法

GDPRガイドブック EU一般データ保護規則 活用法

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin

はじめてのBitcoinCash(0.18.2)ノード構築Part2(2018年10月6日更新)

ビットコインとブロックチェーン

ビットコインとブロックチェーン

▼前回の記事はこちらです。

kharuka2016.hatenablog.com

1. bitcoin-cliの使い方

./work/bitcoin-abc-0.18.2/bin/bitcoin-cli help

以上のコマンドをたたいてあげると、bitcoin-cliの使い方が分かります。

== Blockchain ==
getbestblockhash
getblock "blockhash" ( verbose )
getblockchaininfo
getblockcount
getblockhash height
getblockheader "hash" ( verbose )
getchaintips
getchaintxstats ( nblocks blockhash )
getdifficulty
getmempoolancestors txid (verbose)
getmempooldescendants txid (verbose)
getmempoolentry txid
getmempoolinfo
getrawmempool ( verbose )
gettxout "txid" n ( include_mempool )
gettxoutproof ["txid",...] ( blockhash )
gettxoutsetinfo
preciousblock "blockhash"
pruneblockchain
verifychain ( checklevel nblocks )
verifytxoutproof "proof"

== Control ==
getinfo
getmemoryinfo
help ( "command" )
stop
uptime

== Generating ==
generate nblocks ( maxtries )
generatetoaddress nblocks address (maxtries)

== Mining ==
getblocktemplate ( TemplateRequest )
getmininginfo
getnetworkhashps ( nblocks height )
prioritisetransaction <txid> <priority delta> <fee delta>
submitblock "hexdata" ( "jsonparametersobject" )

== Network ==
addnode "node" "add|remove|onetry"
clearbanned
disconnectnode "[address]" [nodeid]
getaddednodeinfo ( "node" )
getconnectioncount
getexcessiveblock
getnettotals
getnetworkinfo
getpeerinfo
listbanned
ping
setban "subnet" "add|remove" (bantime) (absolute)
setexcessiveblock blockSize
setnetworkactive true|false

== Rawtransactions ==
createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,"data":"hex",...} ( locktime )
decoderawtransaction "hexstring"
decodescript "hexstring"
fundrawtransaction "hexstring" ( options )
getrawtransaction "txid" ( verbose )
sendrawtransaction "hexstring" ( allowhighfees )
signrawtransaction "hexstring" ( [{"txid":"id","vout":n,"scriptPubKey":"hex","redeemScript":"hex"},...] ["privatekey1",...] sighashtype )

== Util ==
createmultisig nrequired ["key",...]
estimatefee nblocks
signmessagewithprivkey "privkey" "message"
validateaddress "address"
verifymessage "address" "signature" "message"

== Wallet ==
abandontransaction "txid"
abortrescan
addmultisigaddress nrequired ["key",...] ( "account" )
backupwallet "destination"
dumpprivkey "address"
dumpwallet "filename"
encryptwallet "passphrase"
getaccount "address"
getaccountaddress "account"
getaddressesbyaccount "account"
getbalance ( "account" minconf include_watchonly )
getnewaddress ( "account" )
getrawchangeaddress
getreceivedbyaccount "account" ( minconf )
getreceivedbyaddress "address" ( minconf )
gettransaction "txid" ( include_watchonly )
getunconfirmedbalance
getwalletinfo
importaddress "address" ( "label" rescan p2sh )
importmulti "requests" "options"
importprivkey "bitcoinprivkey" ( "label" ) ( rescan )
importprunedfunds
importpubkey "pubkey" ( "label" rescan )
importwallet "filename"
keypoolrefill ( newsize )
listaccounts ( minconf include_watchonly)
listaddressgroupings
listlockunspent
listreceivedbyaccount ( minconf include_empty include_watchonly)
listreceivedbyaddress ( minconf include_empty include_watchonly)
listsinceblock ( "blockhash" target_confirmations include_watchonly)
listtransactions ( "account" count skip include_watchonly)
listunspent ( minconf maxconf  ["addresses",...] [include_unsafe] )
listwallets
lockunspent unlock ([{"txid":"txid","vout":n},...])
move "fromaccount" "toaccount" amount ( minconf "comment" )
removeprunedfunds "txid"
rescanblockchain ("start_height") ("stop_height")
sendfrom "fromaccount" "toaddress" amount ( minconf "comment" "comment_to" )
sendmany "fromaccount" {"address":amount,...} ( minconf "comment" ["address",...] )
sendtoaddress "address" amount ( "comment" "comment_to" subtractfeefromamount )
setaccount "address" "account"
settxfee amount
signmessage "address" "message"

2. アドレス作成

今回はお財布の中にお金を送る場所を作成したいので

Walletにあるgetnewaddress ( "account" )を使います。

./work/bitcoin-abc-0.18.2/bin/bitcoin-cli getnewaddress test1

こんな感じでアドレスが作成されます。

bchtest:qzx3g8nu0rs66akpuadk4kmqpxg260m32ueuwzayjm

3. 送金と残高確認

では早速お金を送ってみましょう。

faucetやウォレット(Copay)などから送金します。

最近はfaucetサイトがどこも使えなくて困っています。

仮想通貨(testnet)金欠です。笑

開発者向けのテスト用仮想通貨のはずなのに。

そして、fee(送金手数料)も高い。

テスト送金額よりもfeeの方が高くなることもしばしば。泣

【募金】はこちらまで↓

bchtest:qzx3g8nu0rs66akpuadk4kmqpxg260m32ueuwzayjm

開発ブログ執筆にご協力ください!

Hard Fork Testnet Faucetのbugが修正されて正常にBCHを受け取れる様になりましたー!

getbalanceで確認してみましょう。

./work/bitcoin-abc-0.18.2/bin/bitcoin-cli getbalance test1

おぉー、無事着金!

0.10000000

getwalletinfoでも確認してみましょう。

./work/bitcoin-abc-0.18.2/bin/bitcoin-cli getwalletinfo

こちらでも残高(balance)が0.10000000となっていることが確認できますね。

また、トランザクションカウント(txcount)が1、今回の送金分のトランザクション、となっていることも分かりますね。

{
  "walletname": "wallet.dat",
  "walletversion": 160300,
  "balance": 0.10000000,
  "unconfirmed_balance": 0.00000000,
  "immature_balance": 0.00000000,
  "txcount": 1,
  "keypoololdest": 1538225306,
  "keypoolsize": 1000,
  "keypoolsize_hd_internal": 1000,
  "paytxfee": 0.00000000,
  "hdmasterkeyid": "54f1d6ecea7efe18ca11d191a5fdf9baa69316bf"
}

トランザクションが未承認の場合は以下コマンドも試してみましょう。

./work/bitcoin-abc-0.18.2/bin/bitcoin-cli getunconfirmedbalance

送金はしたけれども、「まだちゃんと正式には送金を認めてないよ!」

という場合は以下の様になっています。

0.10000000

トランザクションが承認されるまでしばらく待ちましょう。

4. エラーと対処法

4.1. エラー

./work/bitcoin-abc-0.18.2/bin/bitcoin-cli getbalance test1

残高確認しようとしたら、こんなエラーが出た。

error code: -2
error message:
Safe mode: Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.

4.2. 対処法

bitcoindデーモンの再起動で問題は一時的に解決しました。

debug.logを見る限り、bitcoin-cliをたたくたびに異なるrpcportでノードに接続しに行っている様ですね。

根本的な問題解決は調査中です。

しかし、どうしてもうまくいかない場合は

あまりオススメは出来ません-disablesafemodeオプションをつけて

bitcoindデーモンを起動してみるとうまく動作する様です。

詳細は参考をご覧ください。

セーフティーモードを外すのはなんだかなー?

ビットコインとブロックチェーン

ビットコインとブロックチェーン

参考

はじめてのBitcoinCash(0.18.2)ノード構築Part1(2018年9月30日更新)

ビットコインとブロックチェーン

ビットコインとブロックチェーン

1. BitcoinCashとは?

ビットコインキャッシュは、その単位が「BCH」と表記される仮想通貨です。実は、ビットコインキャッシュは、2017年8月1日にビットコインから分裂して誕生したという経緯があります。

個人的にはCrypto Currencyなので暗号通貨の方がしっくりきます。

仮想通貨だとVirtual Currencyになっちゃいますかね?

Bitcoinとは?

執筆中です。

2. 環境情報

OS バージョン 備考
macOS High Sierra 10.13.6 ホストOS
Oracle VM VirtualBox 5.2.18
Ubuntu 18.04.1LTS ゲストOS

3. 環境構築

▼環境構築の仕方はこちらなどをご参考に。

kharuka2016.hatenablog.com

4. BitcoinCashノード構築

1. ユーザー作成

sudo adduser <user name>

UNIX パスワード以外は適当に入力してください。

[sudo] kharuka のパスワード: 
ユーザー `<user name>' を追加しています...
新しいグループ `<user name>' (1001) を追加しています...
新しいユーザー `<user name>' (1001) をグループ `<user name>' に追加しています...
ホームディレクトリ `/home/<user name>' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しい UNIX パスワードを入力してください: 
新しい UNIX パスワードを再入力してください: 
passwd: パスワードは正しく更新されました
<user name> のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
   フルネーム []: 
   部屋番号 []: 
   職場電話番号 []: 
   自宅電話番号 []: 
   その他 []: 
以上で正しいですか? [Y/n] y

作成したユーザーをsudoグループに追加します。

sudo gpasswd -a <user name> sudo

ちゃんと作成したユーザーがsudoグループに追加されたか

getent group sudo

などで確認しましょう。

2. BitcoinCashのバイナリーファイルをダウンロード

sudo su - <user name>
mkdir work
cd work
wget https://download.bitcoinabc.org/0.18.2/linux/bitcoin-abc-0.18.2-x86_64-linux-gnu.tar.gz

今回はBitcoinABCのノードをダウンロードしました。

BitcoinABCのサイトからはBitcoinCashファイルをBINARIES,SOURCE CODE, UBUNTU PACKAGESの3形式でダウンロードすることができます。

SOURCE CODE(GitHub)形式でダウンロードして、

色々頑張って(笑)

./autogen.sh
./configure
make
sudo make install

するのも楽しいので興味がある方は是非!

3. BitcoinCashのバイナリーファイルを解凍

tar -zxvf bitcoin-abc-0.18.2-x86_64-linux-gnu.tar.gz

4. BitcoinCashインストール確認

cd bitcoin-abc-0.18.2/
cd bin/
./bitcoind --version

Bitcoin ABC Daemon version v0.18.2.0-6a51d4fと表示されればOKです。

6a51d4fはcommitのversion先頭7桁です。

GitHubのcommitなどで確認してみましょう。

Bitcoin ABC Daemon version v0.18.2.0-6a51d4f
Copyright (C) 2009-2018 The Bitcoin developers

Please contribute if you find Bitcoin ABC useful. Visit
<https://www.bitcoinabc.org> for further information about the software.
The source code is available from <https://github.com/Bitcoin-ABC/bitcoin-abc>.

This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>

This product includes software developed by the OpenSSL Project for use in the
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
Eric Young and UPnP software written by Thomas Bernard.

5. bitcoin.confファイル作成

./bitcoind -daemon

うまく?プロセス起動に失敗しない場合は、ctrl + cなどで強制終了します。

次に、homeディレクトリに直下に.bitcoinディレクトリが作成されていることを確認します。

cd
ls -a

bitcoin.confファイルを作成します。

cd .bitcoin/
touch bitcoin.conf
chmod -v 600 bitcoin.conf
vi bitcoin.conf

bitcoin.confファイルをviで次の様に編集します。

server=1
txindex=1
rpcuser=<rpcuser>
rpcpassword=<rpcpassword>
rpcport=18332
rpcallowip=127.0.0.1
debug=1
testnet=1
magneticanomalyactivationtime=1535500000
addnode=144.217.126.201

6. bitcoind起動と確認

ホームディレクトリに移動します。

cd

bitcoindの起動とプロセス起動・debug.log確認をします。

./work/bitcoin-abc-0.18.2/bin/bitcoind -daemon
ps aux | grep bitcoind
less .bitcoin/testnet3/debug.log

debug.logにERRORや以下の様なログが出ていなければ同期がスタートしているはずです。

Shutdown: In progress...

気長に同期完了を待ちましょう。

環境にもよりますが、Testnetでも数時間はかかります。

ワクワクしますねー。

7. bitcoind停止と確認

./work/bitcoin-abc-0.18.2/bin/bitcoin-cli stop
ps aux | grep bitcoind
less .bitcoin/testnet3/debug.log

debug.logに以下のログがはかれているので確認してみましょう。

Shutdown: done

8. ブロック同期確認

less .bitcoin/testnet3/debug.log

debug.logにprogress=1.000000と出ていれば

2018-09-30 04:57:12 UpdateTip: new best=000000008caa505c01d48d032f5ece35988f5e6e1c91dfe6a6c607c619987cf1 height=1258943 version=0x20000000 log2_work=69.672154 tx=16315100 date='2018-09-30 04:56:36' progress=1.000000 cache=240.0MiB(1411911txo)

同期完了です!

8. bitcoin-cliでwalletの中身を確認

./work/bitcoin-abc-0.18.2/bin/bitcoin-cli getwalletinfo

当然ですが、まだお財布の残高(balance)は0BCHです。

{
  "walletname": "wallet.dat",
  "walletversion": 160300,
  "balance": 0.00000000,
  "unconfirmed_balance": 0.00000000,
  "immature_balance": 0.00000000,
  "txcount": 0,
  "keypoololdest": 1538225306,
  "keypoolsize": 1000,
  "keypoolsize_hd_internal": 1000,
  "paytxfee": 0.00000000,
  "hdmasterkeyid": "54f1d6ecea7efe18ca11d191a5fdf9baa69316bf"
}

次回はお財布に送金をしてみましょう。

▼記事の続きは以下へ。

kharuka2016.hatenablog.com

ビットコインとブロックチェーン

ビットコインとブロックチェーン

参考

【サイバーセキュリティ】GDPR ガイドブック 第1章(2018年10月6日更新)

GDPRガイドブック EU一般データ保護規則 活用法

GDPRガイドブック EU一般データ保護規則 活用法

bitFlyer ビットコインを始めるなら安心・安全な取引所で

第1章 GDPRの背景にあるビジネス環境の変化

悪意あるものは境界を狙う

そして、このITシステムに影響を与えようとする悪意ある者は、まずこの境界から狙ってくることが多い。いや、むしろ悪意ある者なら境界から狙うべきなのだ。

ハッカー脆弱性という穴(境界)を狙ってきます。

セキュリティに関するソフトウェアアップデートなどは必ず行いましょう。

また、macOSだからセキュリティソフトは必要ないなんて都市伝説レベルの話ですよ。笑

私がハッカーならスタバなどの Free Wi-Fi を利用しているmacユーザーをまず標的にします。

データ自体に価値がある時代

いまや、データ自体に価値があるのだ。

ポ◯モンGOのキャラクターコンプリートアカウントが、メ◯カリで出品されていたなんて話聞いたことありませんかね?

サプライチェーンリスク

悪意ある者は、より容易に侵入できる入り口を探すだけ。

サプライチェーンを構成している中に、容易に侵入できる会社が一社でもあれば、それはサプライチェーン全体にとっての脅威と同等である。そして、このことを「サプライチェーンリスク」と呼ぶ。

例え自社のセキュリティレベルが最高ランクであっても、外部委託業者のセキュリティ対策が不十分だと、そこから情報漏洩します。

外部委託業者の選別も慎重に行わなければなりませんね。

外部に委託する、これも境界になるということです。

SIerに頼るのではなく、自社開発した方が境界を減らせる(セキュアな)上に委託の際に発生する無駄な大量のドキュメント(時間と費用と人的リソースのコスト)も減らせます。

ビジネス上のモチベーション

サイバーセキュリティ経営ガイドラインの改訂に合わせたかの様に

日本年金機構の委託先業者から情報漏洩があり話題となりましたね。

茶番ですね。でも、私たちは被害者に当たるので笑えない。

このガイドラインでは、適切な開示を行なわなかった場合、社会的責任の観点から「信頼の失墜」や「企業価値が大きく低下」する恐れがあるとしており、取り組みを情報セキュリティ報告書、CSR報告書、サステナビリティレポートや有価証券報告書等への記載を通じて開示を検討すること対策例として揚げている。

当然ですよね?

国民の大切な個人情報を漏洩した日本年金機構を信用出来ますか?

お金預けられますか?

株式上場企業も同様です。その企業がガイドラインに沿った対策をしないのであれば、投資対象としてリスクが高すぎます。

企業は顧客の信頼を得るため、株価の適切な水準維持または上昇を図るため、つまりは株主に還元出来る経営をしなければならないのです。

GDPRに則って企業価値を高めましょう!

▼記事の続きは以下へ。

kharuka2016.hatenablog.com

参考

  • GDPR ガイドブック

GDPRガイドブック EU一般データ保護規則 活用法

GDPRガイドブック EU一般データ保護規則 活用法

  • Information Commissioner's Office

https://www.ppc.go.jp/files/pdf/260318siryo3-1.pdf

  • Belgian Privacy Protection Commission

https://iapp.org/news/a/belgian-privacy-commission-becomes-dpa/

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin