understanding the software development practices of...

16
Partha ChakrabortyRifat ShahriyarAnindya IqbalAmiangshu Bosu Understanding the Software Development Practices of Blockchain Projects 発表者: 和歌山大学 加藤寛瑛 ウィンターワークショップ2019 1

Upload: others

Post on 16-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Partha Chakraborty,Rifat Shahriyar,Anindya Iqbal,Amiangshu Bosu

Understanding the Software

Development Practices of

Blockchain Projects

発表者: 和歌山大学 加藤寛瑛

ウィンターワークショップ2019 1

Page 2: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 2

• Githubは現在3,000以上のBCSプロジェクトをホストしている

• ブロックチェーン技術の特性により,デプロイ後に脆弱性が検出された場合,回復を極端に困難にする

⇒ソフトウェア工学手法をブロックチェーンの潜在的な脅威

を軽減するために,より深刻な脆弱性に適合させる必要が

ある

背景

Page 3: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 3

ブロックチェーンの改変不可能性

ブロックのデータやタイムスタンプに基づいて計算されたハッシュ値

親ブロックと呼ばれる前のブロックのハッシュ値

Page 4: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 4

ブロックチェーンの改変不可能性

データの変更があると他のすべてのメンバーノードで明らかになる

⇒51%攻撃で同時に起こると改ざんが可能

1.変更

2.変更

Page 5: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 5

ブロックチェーンソフトウェア(以下BCS)プロジェクトの要件分析,タスク割り当て,テストなどのソフトウェア開発プラクティスを探求する最初の調査を実施する

目的

Page 6: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 6

1. BCS開発者が従うソフトウェア開発プラクティスは何か

2. BCS開発者はどのようにしてソフトウェアの正当性を検証するか

3. BCS開発者はセキュリティとスケーラビリティについて自社のソフトウェアをどのようにテストするか

リサーチクエスチョン 1/2

Page 7: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 7

4. BCS開発者はどのようにしてプロジェクトの要件を特定し選択するか

5. BCSプロジェクトメンバー間のタスク割り当て手順は何か

6. BCS開発者のためのコミュニケーションチャンネルは何か

リサーチクエスチョン 2/2

Page 8: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 8

• 145のBCSプロジェクトのGithubリポジトリをマイニングして集めた1,604人のBCS開発者にオンライン調査を送信

⇒156件の回答を得た

調査方法

Page 9: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 9

RQ1:結果

BCS開発者が従うソフトウェア開発プラクティスは何か

⇒コードレビュー,単体テストおよび

継続的インテグレーションが広く使用されている

Page 10: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 10

RQ2:結果

BCS開発者はどのようにしてソフトウェアの正当性を検証するか

⇒単体テストとコードレビューが最もよく使用されている

Page 11: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 11

RQ3:結果

BCS開発者はセキュリティとスケーラビリティについて自社のソフトウェアをどのようにテストするか

⇒単体テスト、ストレステスト、およびコードレビューが最もよく使用されている

Page 12: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 12

RQ4:結果

BCS開発者はどのようにしてプロジェクトの要件を特定し選択するか

⇒コミュニティの議論とプロジェクトリーダーによってほぼ特定され選択されている

Page 13: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 13

RQ5:結果

BCSプロジェクトメンバー間のタスク割り当て手順は何か

⇒開発タスクは主に自主的に割り振る

Page 14: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 14

RQ6:結果

BCS開発者のためのコミュニケーションチャンネルは何か

⇒GithubとSlackがBCS開発者によって最も使用されている

Page 15: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 15

• 要件の識別がBCSとOSSプロジェクトで異なる

• スケーラビリティテスト,セキュリティテストに関して,統合テストや回帰テストの反応が低い

⇒BCSに対する品質の高いツールがない

まとめ

Page 16: Understanding the Software Development Practices of ...se.cite.ehime-u.ac.jp/wws2019/pdf/p16.pdfウィンターワークショップ2019 Understanding the Software Development Practices

Understanding the Software Development Practices of Blockchain Projects: A Surveyウィンターワークショップ2019 16

• BCSの調査結果と従来のOSSとの比較が書かれていて相違点がわかりやすかった

所感