SlideShare a Scribd company logo
1 of 19
Download to read offline
2021.09.22
A I シ ス テ ム 開 発 学 科
A I テ ク ノ ロ ジ ー コ ー ス ( 1 年 )
外園涼馬
前期期末発表会
Bitcoin
ウォレットアプリの制作
1
1. 課題制作の意図
• 話題性のある技術
• 仮想通貨を管理したい
• 興味のある分野だった
• 評価を得られやすいもの
この課題にした理由
2
2. 制作時点でのスキル
ü LINEにおけるチャットボットの制作 (Python)
ü LINE Bug Bountyへの参加(Python)
ü 競技プログラミングへの参加 (C++)
ü 簡易的なスマホアプリの制作 (Swift)
ü ITパスポート試験合格
これまでの主な実績や活動など
3
3. 環境構築
Ø MacBook Air M1 (Big Sur 11.2.3)
Ø Python3.8.5 (conda 4.9.2)
Ø Heroku (Server)
Ø PostgreSQL (13.2)
私の制作環境
4
4. 仮想通貨の操作方法
仮想通貨を操作する手段
①PyPIで提供されているモジュールを使用
②取引所から提供されているAPIを使用
③直接リクエストを送る
5
5. 動作図
6
6-1. Bitcoinlibのエラー
実行してみる…
from
bitcoinlib.wallets import Wallet
x86_64版のライブラリをビルド
Homebrew ARMだとエラーが発生
7
6-2. データの暗号化
8
6-3. Heroku Dynoの再起動
Heroku Dynoは24時間毎に自動再起動
データ管理にPostgreSQL を使用
JSON管理のデータベースは全て初期化
9
6-4. Bitcoinlibの返り値
・Bitcoinlibの関数の返り値が扱いにくい
10
Bitcoinlibをforkし、コードを変更
6-5. 送受金のテスト
11
・送受金のテストを行いたい
Testnetという開発用の仮想通貨
6-6. データベースの暗号化
・pgcryptoの導入
12
透過的暗号化ではなく、
SQL文自体に暗号化関数を組み込む
6-6. データベースの暗号化
暗号化の手法
13
CREATE EXTENSION pgcrypto;
CREATE Table member (id int, address bytea);
(1) pgcryptoをPostgreSQLに導入
(2) 暗号化対象のテーブルを作成
暗号化対象は bytea 型となる
6-6. データベースの暗号化
暗号化の手法
14
INSERT INTO data VALUES (
1, pgp_sym_encrypto(‘address’, ‘暗号化pass’));
SELECT id, address FROM data);
(3) 暗号化を指定しINSERT
(4) 暗号化対象のデータをSELECTしてみる
id address
1
¥xc30d0407030271dd3f52e8cac05e68d23701df040194148ccd4
04b117b348b0e7baa83f89b49bb743e03b413376652a90db1158
2cf01b4af29c7cfd283216165d0c729f1254ef3aa
6-6. コードのリファクタリング
コードの可読性向上
15
前回発表時点 今回発表時点
7. 機能一覧
・ウォレットの作成
・アドレスの生成
・送金機能
・残高確認機能(受金機能)
・お問い合わせリンク
機能リスト
16
8. 実演動画
17
9. 今後の課題
・WebAPIでの実装
・UI・UXの向上
・対応する通貨の種類を増やす
・AIに関連した機能を実装
18
ご清聴ありがとうございました
私のTwitter
アカウント
ID: @s_1see
今回制作した
LINEアカウント
ID: @628uohog
19
今回の
プロジェクトの
リポジトリ

More Related Content

Similar to Bitcoin ウォレットアプリの制作

.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術KLab Inc. / Tech
 
2.プログラミングの基礎
2.プログラミングの基礎2.プログラミングの基礎
2.プログラミングの基礎openrtm
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
Develop Windows 11 drivers with GitHub Copilot's AI capabilitiesDevelop Windows 11 drivers with GitHub Copilot's AI capabilities
Develop Windows 11 drivers with GitHub Copilot's AI capabilitiesAtomu Hidaka
 
201110 02 Polytech center 2
201110 02 Polytech center 2201110 02 Polytech center 2
201110 02 Polytech center 2openrtm
 
RICOH THETA x IoT デベロッパーズ コンテスト クラウドAPIセミナー
RICOH THETA x IoT  デベロッパーズ  コンテスト クラウドAPIセミナーRICOH THETA x IoT  デベロッパーズ  コンテスト クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト クラウドAPIセミナーcontest-theta360
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Atsushi Nakamura
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLINE Corporation
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~Saki Homma
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返るYuta Matsumura
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project TyeYuta Matsumura
 
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptxCCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptxTomoaki Tada
 
WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0ShinichiAoyagi
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Atomu Hidaka
 
.NET Conf 2019 のデスクトップアプリに関するセッションについて
.NET Conf 2019 のデスクトップアプリに関するセッションについて.NET Conf 2019 のデスクトップアプリに関するセッションについて
.NET Conf 2019 のデスクトップアプリに関するセッションについてTakuhiro Fukumori
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏Yuta Matsumura
 

Similar to Bitcoin ウォレットアプリの制作 (20)

.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
 
2.プログラミングの基礎
2.プログラミングの基礎2.プログラミングの基礎
2.プログラミングの基礎
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
Develop Windows 11 drivers with GitHub Copilot's AI capabilitiesDevelop Windows 11 drivers with GitHub Copilot's AI capabilities
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
 
201110 02 Polytech center 2
201110 02 Polytech center 2201110 02 Polytech center 2
201110 02 Polytech center 2
 
Unity/CSharp 3
Unity/CSharp 3Unity/CSharp 3
Unity/CSharp 3
 
RICOH THETA x IoT デベロッパーズ コンテスト クラウドAPIセミナー
RICOH THETA x IoT  デベロッパーズ  コンテスト クラウドAPIセミナーRICOH THETA x IoT  デベロッパーズ  コンテスト クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト クラウドAPIセミナー
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
 
XAML のこれまでとこれから、今「やる」べき意義
XAML のこれまでとこれから、今「やる」べき意義XAML のこれまでとこれから、今「やる」べき意義
XAML のこれまでとこれから、今「やる」べき意義
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返る
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
 
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptxCCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
 
WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1
 
.NET Conf 2019 のデスクトップアプリに関するセッションについて
.NET Conf 2019 のデスクトップアプリに関するセッションについて.NET Conf 2019 のデスクトップアプリに関するセッションについて
.NET Conf 2019 のデスクトップアプリに関するセッションについて
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
 

Recently uploaded

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (9)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

Bitcoin ウォレットアプリの制作