堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門
サポートページ
この記事を読むのに必要な時間:およそ 0.5 分
ダウンロード
(2018年2月28日更新)
本書のサンプルソースがダウンロードできます。
解凍してファイル名を参考にしてご利用ください。
2018年2月28日より前に公開していた「samplesrc_20171218.zip」に
「genesis.json」を追加しました。
お詫びと訂正(正誤表)
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
(2022年7月28日最終更新)
P.12 本文 2行目
誤 | 分散型(Decentrized) |
---|---|
正 | 分散型(Decentralized) |
(以下2021年11月4日更新)
P.23:本文 下から7行目
誤 | secp256k1は位相がとてつもなく大きな素数pの有限体上で |
---|---|
正 | secp256k1は位数がとてつもなく大きな素数pの有限体上で |
(以下2019年9月19日更新)
P.190 本文下から3行目
誤 | gasPriceを全社のgssPriceよりも高くすれば |
---|---|
正 | gasPriceを全社のgasPriceよりも高くすれば |
P.212 本文下から5行目(コマンド「getUsed確認」の直前)
誤 | gasUsedからもthrowされていないことがわかります。 |
---|---|
正 | gasUsedからもthrowされていることがわかります。 |
(以下2018年7月17日更新)
P.50 図4-9の説明文の4行目
誤 | ビットコインワーク |
---|---|
正 | ビットコインネットワーク |
P.134 図9-17のキャプション
誤 | 運用イメージ |
---|---|
正 | 利用イメージ |
P.162 本文上から7~8行目
誤 | 想定していたいのですが、 |
---|---|
正 | 想定していたのですが、 |
P.172 本文下から3行目
誤 | を読んだ場合 |
---|---|
正 | を呼んだ場合 |
(以下2018年7月5日更新)
P.51 図4-10の上部の網掛け内
誤 | TxAもTxCも同じアウトプットを参照 |
---|---|
正 | TxAもTxBも同じアウトプットを参照 |
(以下2018年5月9日更新)
P.28 「公開鍵で署名データを検証する」項
Opensslで署名する際に「dgst -SHA256」を指定しており,署名時にOpensslがSHA-256化してくれるため,署名対象のmessageをsha256sumでハッシュ化する必要なく,「hashed_message.txt」と「hashed_message.sig」ファイルを生成する必要はありません。代わりに「message.txt」を署名してください。各コマンドは次のように訂正いたします。
- メッセージのハッシュ値を生成する
このコマンドは不要です。 - 署名データを作成する
$ openssl dgst -SHA256 -sign secp256k1-private.pem message.txt > message.sig
- 公開鍵で署名データを検証する
$ openssl dgst -SHA256 -verify secp256k1-public.pem -signature message.sig message.txt
P.29 「メッセージが改ざんされた場合を検証する」項
Opensslで署名する際に「dgst -SHA256」を指定しており,署名時にOpensslがSHA-256化してくれるため,署名対象のmessageをsha256sumでハッシュ化する必要なく,「hashed_message_kaizan.txt」と「hashed_message_kaizan.sig」ファイルを生成する必要はありません。代わりに「message_kaizan.txt」を署名してください。各コマンドは次のように訂正いたします。
- 攻撃者のメッセージのハッシュ値を生成する
2行目と3行目にある次のコマンドが不要です。
$ sha256sum message_kaizan.txt
$ cat hashed_message_kaizan.txt - 攻撃者の秘密鍵で署名する
$ openssl dgst -SHA256 -sign secp256k1-private-evil.pem message_kaizan.txt >
message_kaizan.sig - 公開鍵で署名データを検証する
$ openssl dgst -SHA256 -verify secp256k1-public.pem -signature message_kaizan.sig message_kaizan.txt
P.53 本文の末行
誤 | まずは、Locking Script ⇒ Unlocking Scriptの順で |
---|---|
正 | まずは、Unlocking Script ⇒ Locking Scriptの順で |
P.59 表5-2の3行目
誤 | Markle Root |
---|---|
正 | Merkle Root |
P.60 本文下から10行目
誤 | markle tree |
---|---|
正 | merkle tree |
P.60 本文下から3行目
誤 | Markle Root |
---|---|
正 | Merkle Root |
P.65 表6-1の3行目
誤 | Markle Root |
---|---|
正 | Merkle Root |
(以下2018年4月16日更新)
P.97 本文下から3行目
誤 | オブジェクトに含まれもので、 |
---|---|
正 | オブジェクトに含まれるもので、 |
(以下2017年12月18日更新)
P.52 「4.4:UTXOと残高」の上から1行目
誤 | ここままで |
---|---|
正 | ここまでで |
P.60 「5.1:ブロックの構造と識別子」の最後の行
誤 | 「6.5:チェーンの分岐(フォーク)」(P.60)で |
---|---|
正 | 「6.5:チェーンの分岐(フォーク)」(P.69)で |
P.107 上から3行目
誤 | ここままで |
---|---|
正 | ここまでで |
P.107 下から2行目
誤 | falback関数 |
---|---|
正 | fallback関数 |
P.133 下から10行目
誤 | Neme Registry |
---|---|
正 | Name Registry |
P.139 SmartSwitch.solの下から15行目
誤 | 処理を更新する |
---|---|
正 | statusを更新する |
P.147 Auction.solの上から3行目
誤 | // 最高提示額 |
---|---|
正 | // 最高額提示アドレス |
P.147 Auction.solの上から4行目
誤 | // 最高額提示アドレス |
---|---|
正 | // 最高提示額 |
P.156 AuctionWithdraw.solの上から3行目
誤 | // 最高提示額 |
---|---|
正 | // 最高額提示アドレス |
P.156 AuctionWithdraw.solの上から4行目
誤 | // 最高額提示アドレス |
---|---|
正 | // 最高提示額 |
P.162 本文下から2行目
誤 | etherを改修できるように |
---|---|
正 | etherを回収できるように |
P.165 上から1行目
誤 | Send Funds画面(図10-6)に |
---|---|
正 | Send funds画面(図10-6)に |
P.169 上から3行目
誤 | etherを一旦改修する必要が |
---|---|
正 | etherを一旦回収する必要が |
P.170 CircuitBreaker.solの下から4行目
誤 | setMassage |
---|---|
正 | setMessage |
P.170 setMessage呼び出しの1行目
誤 | cb.setMassage.sendTransaction |
---|---|
正 | cb.setMessage.sendTransaction |
P.171 setMessage呼び出しの1行目
誤 | cb.setMassage.sendTransaction |
---|---|
正 | cb.setMessage.sendTransaction |
P.179 箇条書きの1行目
誤 | VicimBalance |
---|---|
正 | VictimBalance |
P.179 箇条書きの2行目
誤 | VimctimBalance |
---|---|
正 | VictimBalance |
P.228 図12-12
異なる画面図が掲載されていました。次の画面に差し替えます。
(以下2017年11月6日更新)
P.9 目次(P.129)
誤 | コンスラクトを生成する |
---|---|
正 | コントラクトを生成する |
P.15 下から2行目
誤 | 各ノートは |
---|---|
正 | 各ノードは |
P.21 上から3行目
誤 | VirturlBox上に |
---|---|
正 | VirtualBox上に |
P.111 下から3行目(見出し)
誤 | ソースコードを記述してコンストラクタを指定する |
---|---|
正 | ソースコードを記述してコントラクトを指定する |