CoinBlesk: Web Front-End and Payment Terminal Integration

Master Thesis: Intermediate Presentation

by Sebastian Schrepfer

live slides

Overview

  1. Introduction

    • Bitcoin & CoinBlesk

  2. ​VISA integration

    • ​​Usage of Bitcoins in Terminals (Point-of-Sale)

  3. Web Interface

    • Framework Evaluation & Architecture

    • Basic Functionality & Server Administration

    • Demonstration

  4. Further Work

    • Web Interface

    • Crypto-Payment Protocol

  5. 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

Made with Slides.com