CoinBlesk: Web Front-End and Payment Terminal Integration
Master Thesis: Intermediate Presentation
by Sebastian Schrepfer


live slides
Overview
-
Introduction
-
Bitcoin & CoinBlesk
-
-
VISA integration
-
Usage of Bitcoins in Terminals (Point-of-Sale)
-
-
Web Interface
-
Framework Evaluation & Architecture
-
Basic Functionality & Server Administration
-
Demonstration
-
-
Further Work
-
Web Interface
-
Crypto-Payment Protocol
-
-
Discussion
goo.gl/AcQvCT
Introduction
1
Bitcoin & Coinblesk
1


VISA Integration
2
Current Situation
Customer
2






Merchant



The Concept
Customer






Merchant





Bitcoin Exchange

Bank account

Virtual Credit Card issuer
Virtual Credit
Card number

2
The Concept ...and why it does not work
Customer
Virtual Credit
Card number
Merchant
Conversion between Virtual Credit Card Number & NFC Data not possible. Credit card issuer uses encryption, which only licensed issuers do receive.

2
Concept
Customer
Merchant
2
Concept
-
Implementation of a Bitcoin protocol behind Terminals
-
Drawbacks:
-
Relying on proprietary terminals
-
Very high hurdles to get the protocol included into vendor products (if a vendor does not like the idea, it would not be included)
-
The future of terminals is questionable (replaced by smartphones)
-
2
→ Why not using a protocol for smartphones?
Concept
-
Using the smartphone as terminal
-
Benefits:
-
CoinBlesk: Existing infrastructure/app can be used
-
Merchant:
-
No maintenance costs for terminal (e.g. replacement every 2y)
-
Using existing devices (everybody has a smartphone)
-
-
-
Drawbacks:
-
Merchant relies on smartphone application (connection between app ⇄ checkout)
-
2

Web Front-End
3
Framework Evaluation
3
| Solution A | Solution B | Solution C | |
|---|---|---|---|
| JavaScript Framework | jQuery | Angular 2.0 | Vue.js |
| Build process | – | System.js | Webpack |
| Languages | JavaScript (ES5), CSS | TypeScript, Sass | JavaScript (ES6), Sass |
| Complexity | low | high | medium |
| Pro | - no overhead - shallow learning curve |
- integrated solution - component-based - CSS components - for complex applications - two-way bindings between components - industry standard: many libraries provided |
- add-on based solution (sleek core) - component-based - CSS components - for simple and complex applications - two-way bindings - virtual DOM - computed variables instead of watchers - simple architecture - build architecture provided |
| Contra | - DOM-based - low-level - inefficient for complex applications |
- opinionated architecture - steep learning curve |
- newer library, not that many add-ons |
Framework Evaluation
3




vue-i18n
Vuex


Basic functionality
3
-
Token-based authentication (Local Storage)
-
User State handling with Vuex
-
Routing with Vue.js → Automatic error handling on wrong link or missing permissions/authentication
-
Login, Registration, Password forgotten, Activation
-
HTTP interceptors for unexpected error handling
-
Global Message Handling (Toasts)
-
i18n, English/German with global & local translations
Architecture: User Roles
3




SERVER
CLIENT
No-Login
User



Admin
boot

Business logic (1/2)
3
-
Unauthenticated
-
Forex rate integration (cached request) with charts
-
-
Administraton
-
User Account management (deletion, user-role switch)
-
Account management (request current state of an account, independent of the user account)
-
Retrieve channel transaction
-
All time locked addresses
-
Current balances (virtual & actual)
-
-
Business logic (2/2)
3
-
Administraton
-
Event handling
-
Gather log events and send administration e-mail if threshold of critical events is exceeded
-
-
-
-
Server Balance
-
Determines, if the server is in a critical state, where the micro payments are not in balance
-
∑ all virtual payments ≠ ∑ all transactions → ☠ bad state
-
Creates a critical event which leads to an automatic e-mail notification (admin)
-
-
Demonstration
3
Further Work
4
Web Front-End User Area
- Linking of user account & account → a newly created user account has automatically an account (bitcoin address)
- A user should be able to see their balance (from their account)
-
Sending Bitcoins from user account to another user account (concept of Paymit → improve convenience by preventing the user to copy-paste a bitcoin address)
- requires the server to provide input transactions of the user's account for him to sign
- requires storing the private key of the client encrypted on the server (client-side decryption)
- Implement progressive web app functionality and improve responsive designs to let iOS participate in CoinBlesk (over web application)
4
Crypto-Payment Protocol
-
Extending the CoinBlesk Bitcoin protocol for alternative crypto currencies
-
Extension makes the protocol more flexible
-
Bitcoins market dominance is shrinking:
-
4

Discussion
5
Master Thesis: Intermediate
By S.S.
Master Thesis: Intermediate
Intermediate presentation Master Thesis
- 254