43
Nietypowe zastosowania Blockchain: Cyfrowa Identyfikacja

Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Embed Size (px)

Citation preview

Page 1: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Nietypowe zastosowania Blockchain: Cyfrowa Identyfikacja

Page 2: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Niezaprzeczalności identyfikacji i transakcji

Niezmienności danych

Decentralizacji przetwarzania danych

Obniżenia kosztów elementarnych transakcji

Przejrzystości wewnątrz- i zewnątrz- organizacyjnej

Odporności na awarie systemowe

Digital Identity needs trust

Page 3: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2
Page 4: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Blockchain jest technologiczną podstawą dla Bitcoin i innych

cyfrowych walut.

Blockchain jest de-facto technologią bazodanową oferującą

rozproszoną, odporną na manipulacje architekturę i jest

typowo używana jako publiczny rejestr zapisów transakcji

znaczonych czasem.

Blockchain dostarcza metody weryfikacji zaistnienia

transakcji w określonym czasie. Taka weryfikacja może być

przeprowadzona niezależnie przez dowolnego innego

uczestnika systemu – bez potrzeby żadnego centralnego

autorytetu (np. banku lub izb rozrachunkowych)

Page 5: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Blockchain został stworzony w roku 2008 i po raz

pierwszy zaimplementowany w roku 2009 jako

fundament technologiczny cyfrowej waluty BITCOIN.

BlockChain pozwala na stworzenie struktur danych

które są absolutnie nienaruszalne mimo, że są

całkowicie i publicznie dostępne dla każdego

chętnego.

Blockchain zawdzięcza tę niezwykłą cechę

zaawansowanym teoriom matematycznym będącym

podstawą technologii kryptograficznych oraz

całkowicie opartej na technologii internetowej

metodzie dystrybucji danych (wcześniej używanej

przez usługi takie jak BitTorrent).

Page 6: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

SHA - Secure Hash Algorithm:

SHA-256

RIPEMD - RACE Integrity Primitives

Evaluation Message Digest:

RIPEMD-160

Page 7: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

ECDSA – Elliptic Curve Digital Signature Algorithm

The elliptic curve C is the secp256k1 curve

Y2=X3+7

The point location on the curve is determined by

the private key, but it’s nearly impossible to find

the private key from the point coordinates.

Page 8: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

https://anders.com/blockchain/blockchain.html

Page 9: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Data Carved in Stone

Page 10: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

https://btctheory.com/tag/denationalization-of-money/

Page 11: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Całkowicie

ZDECENTRALIZOWANE

Medium wymiany

WARTOŚCI pomiędzy

uczestnikami

Nowy, w pełni ZAUFANY sposób zawierania

kontraktów nie wymagający pośrednictwa

(np. notariuszy lub instytucji nadrzędnych)

Masywnie

rozproszona,

praktycznie

nienaruszalna baza

danych.Technologia Biznes

Prawo

Page 12: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Technologia Biznes

PrawoBitcoin i inne monety cyfrowe“Praktyczne wdrożenie walut cyfrowych – zmiany w bankowości”

Quotations from: “Blockchain” by Melanie Swan, O'Reilly Media, Inc.

Kontrakty i identyfikacja„Zastosowania biznesowe, finansowe i prawne zmieniające nieodwołalnie sposób

funkcjonowania biznesu elektronicznego”

Aplikacje“Powyżej walut i rynków – np. DAO – Zdecentralizowane Autonomiczne Organizacje”

BLOCKCHAIN 3.0

BLOCKCHAIN 2.0

BLOCKCHAIN 1.0

Page 13: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Identyfikacja cyfrowa

Page 14: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

• Cyfrowa Identyfikacja jest procesem pozyskiwania informacji o pewnym bycie

jednostkowym używanym w systemach komputerowych do reprezentacji agentów świata

zewnętrznego (osób, organizacji, aplikacji czy też urządzenia)

• Formalna definicja Identyfikacji Cyfrowego (DI – Digital Identity) zawarta jest w

standardzie ISO/IEC 24760-1 mówi iż dotyczy ona „zbioru atrybutów odnoszących się do

jednostkowego bytu”

• Informacja pozyskiwana w Identyfikacji Cyfrowej pozwala na odpowiedź na najważniejsze

pytania dotyczące zewnętrznego agenta – bez udziału człowieka.

• Identyfikacja Cyfrowa wymaga Cyfrowych Identyfikatorów: TOKENów lub STRINGów

które byłyby unikalne w obszarze (globalnym lub lokalnym) ich działania

• Identyfikatory Cyfrowe są kluczami używanymi przez partnerów relacji identyfikującej w

celu uzgodnienia tożsamości reprezentowanych przez nie bytów

https://en.wikipedia.org/wiki/Digital_identity

Page 15: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Legal Entity Identifiers (GLEIF)LEI

International Securities Identification Number (ANNA)ISIN

Financial Instrument Global Identifier (Bloomberg)FIGI

Unique Product/Transaction Identifiers (CMPI – BIS)UPI, UTI

Companies Registration Numbers/VAT (Various National Agencies, Registrars)(w Polsce: REGON, KRS)

CRN, VAT

Electronic Product Codes, European Article Numbering (GS1 - EAN UCC)EPC, EAN

Vehicle Identification Number (Automotive Manufacturers)VIN

Page 16: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

UnikalnośćOtwartośćDecentrali-

zacja

Nie-zaprzeczal-

ność

OdpornośćAutentycz-

nośćNeutral-

nośćTrwałość

Zaufanie

Page 17: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2
Page 18: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Zaufanie

Otwartość danych

Unikalność

Decentralization

Nie zaprzeczalność

Autentyczność

Odporność i trwałość

Neutralność Zapewniona przez praktyczną niezależność od szczegółów technologii,

dostawców sprzętu czy też oprogramowania

Gwarantowane przez zasady matematyki i konsensus algorytmiczny

Wspierana przez mechanizmy replikacji i architekturę BCK

Zapewniona na poziomie algorytmów kryptograficznych BCK (hash)

Gwarantowana przez fundamentalną architekturę systemu

Gwarantowana przez algorytmy kryptograficzne (PK)

Gwarantowana przez „consensus algorithms” (PoW, PoS,PoA)

Zapewniona przez całkowicie rozproszoną architekturę

Page 19: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Rekord opisujący dany byt oraz identyfikujący

go KLUCZ stanowią „atom” danych i są zarządzane* jako

unikalna jednostka danych

Reprezentacja pojedynczego

„atomowego” rekordujest zdefiniowana jako

stan pojedynczego smart contract’u

* Przez „authority” jakie przydziela klucze

Page 20: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Kontrakty oferują metody dostępu do reprezentacji

rekordu oraz struktury danych, które

przedstawiają jego „rewizje”

Jeśli w rekordzie zachodzą zmiany, jego

nowa reprezentacja będzie dołączona do

stanu kontraktu.

Page 21: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Sugerowana przez nas architektura systemu to „Consortium blockchains”Znana też czasami pod nazwą

„Permissioned blockchains”

Vitalik Buterin - https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/

Monax (być może lider „permissioned”)- https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/

Page 22: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Najbardziej właściwy dla Cyfrowych

Identyfikatorów:

PoA - Proof of Authority.

Łańcuchy Proof-of-Authority używają

pewnej liczby specjalnych kluczy

(authorities) do kolaboracji i kreacji

najdłuższego łańcucha – zamiast schematu

Proof-of-Work.

TurboEthereum supports PoA private chains through the Fluidity Core Ethereum client.

Ethcore Parity is building PoA into its High-performance & low-footprint Ethereum client.

Ethereum POA (Proof-of-Authority):

https://ethereum.stackexchange.com/questions/15565/ethereum-poa-proof-of-authority-for-

private-network

Page 23: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

The Legal Entity Identifier (LEI) jest

alfanumerycznym kodem opisanym normą

ISO 17442.

LEI wskazuje na kluczowe informacje referencyjne

umożliwiające pełną identyfikację podmiotów

prawnych partycypujących w transakcjach

finansowych (w tym obowiązkowo: banki)

Publicznie dostępne zasoby danych LEI tworzą

globalną kartotekę podmiotów transakcji

finansowych co zwiększa transparentność

globalnego systemu finansowego.

Jednostki rejestrujące: LOU (Local Operating Unit) www.gleif.org

Page 24: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

LEI RESOLVER stworzony przez MakoLab: http://lei.info

5493001KJTIIGC8Y1R12 http://lei.info/5493001KJTIIGC8Y1R12

Visual for Human

Web Media (HTML)

Data for Machine

consumption (RDF)

Picture for Paper Media

(QR-Code)

1 Create URI

LEI.INFO LEI.INFO

2 http://lei.info/5493001KJTIIGC8Y1R12

Page 25: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

LEI RESOLVER stworzony przez MakoLab: http://lei.info

Visual for Human Web Media (HTML)2 http://lei.info/5493001KJTIIGC8Y1R12

Page 26: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

LEI RESOLVER stworzony przez MakoLab: http://lei.info

Data for Machine consumption

The data can be returned

in multiple formats:

rdf+xml

x-turtle

n-triples

Trig

rdf+n3

n-quads

ld+json

owl+xml

turtle

trix

n3

text/plain

x-nquads

3 http://lei.info/5493001KJTIIGC8Y1R12

Page 27: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Private Ethereum nodes (run as GETH processes) are interfaced using WEB3.js library

node.js is used as a primary layer on top of GETH and as a web server to access the Blockchain

Additional logic is delivered by a layer of Python scripts

LEI data is represented as JSON-LDobjects

Web application Front-End JS code allows for retrieval, entry and update of data

Single node is: 8GB/4 cores/ 3,2 GHz/Intel i7

Page 28: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Fast index service used for searches (SOLR)

Individual web interfaces are enabledfor each LOU

POC functionality: Search, Creation of contracts for LEIs records, registration in the master, creation of the new revisions …

Used PoW: Estimated mining time for a single LEI: mining of 1 block itself, with low difficulty PoW (0x4000), typically less than 10 secs 1 LEI = 3 blocks = ~30 sec.

Page 29: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Basic contracts defined: Mortal, Record, Master

Two calling methods (from node.js code using web3.js): dry/local call (no new blocks created) transaction call (new blocks created)

Typical sequence: node.js gets LEI record (in JSON) index data passed to SOLR zip-ing b64-ing binary blob passed to the Blockchain

Page 31: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2
Page 32: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Reprezentacja pełnego dataset

LEI w prywatnym Blockchain

Ethereum (pół miliona firm)

Pierwsze użycie Ontologii GLEIO

do semantyki

Nowy UI – podobny do LEI.INFO

Nowy, mocny backoffice

(z użyciem .NET technology)

Nowe, bezpiczne (blockchain-

based) metody do ochrony cache

http://wisem.makolab.pl/leibc/

Page 33: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Since Blockchain is a state machine …

… Ontology can not be an external object to the Blockchain

It must be embedded into the Blockchain - We have invented a method how to do it.

contract Class {

address public subClassOf;

string public label;

string public comment;

function Class(address _subClassOf,

string _label, string _comment) {

subClassOf = _subClassOf;

label = _label;

comment = _comment;

}

}

contract Instance {

address public isA; //address of

Class contract describing entity }

contract LeiRecord is Instance {

struct Revision {

bytes data;

Solidity contracts

OWL Ontology

Page 34: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

GLEIFBody responsible for

application of global

uniform standardsLOU

LOU

LOU

LOU

LOU

LOULOU

LOU

LOU

LOU

Legal Entities

registrars

LOU Local Operating Units

LOU

Page 35: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Ethereum jest bardzo dobrą platformą dla budowy systemów Identyfikacji

Cyfrowej

Pomimo to, istniejące systemy Blockchain nie wystarczają do zbudowania

w pełni funkcjonalnego systemu identyfikacji cyfrowej

Muszą zostać uzupełnione przez:

Indeksowanie

Cache’owanie

Warstwę semantyczną

Byłoby też wskazane aby Blockchain miał:

Nowocześniejsze struktury danych

Page 36: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2
Page 37: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Aplikacje systemu:

VIN – niedługo rozpoczniemy PoC dotyczący tego systemu

Rejestr Podmiotów Wykonujących Działalność Leczniczą

(https://rpwdl.csioz.gov.pl/) – rozmawiamy z dużym podmiotem z

sektora farmaceutycznego na temat rozpoczęcia PoC

Prace badawczo-rozwojowe:

Page 38: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

No.

Nonce

Prev

Hash

No.

Nonce

Prev

Hash

No.

Nonce

Prev

Hash

No.

Nonce

Prev

Hash

No.

Nonce

Prev

Hash

Page 39: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2
Page 40: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2
Page 41: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Struktury Danych Fundamentalna rola Ontologii OWL w BCK

Page 42: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2

Zapraszamy, szczególnie developerów, chcących

uczestniczyć w nietypowych projektach BlockChain

do współpracy

Wszelkie formy współpracy dozwolone ( )

Osoby z zacięciem biznesowym (nowe zastosowania

BCK) – równie mile widziane !!!

Page 43: Nietypowe Aplikacje Blockchain - dla Lodz Blockchain Meetup #2