---
# System prepended metadata

title: PIP Biometric
tags: [Pascalcoin, Voting method]

---

PIP Biometric
===
###### tags: `Voting method` `Pascalcoin` 
PIP: reserved for PIP editor
Title: Title for your PIP
Type: Protocol | Backend | Front-End | Informational | Process
Impact: [Hard-Fork|Soft-Fork|None] - [Protcol | API | GUI | Mobile | Other]
Author: Firstname Lastname your@email.com
Comments-URI: reserved for PIP editor
Status: Draft
Created: YYYY-MM-DD

## Summary

Voting in Pascalcoin is favoring big holders and holders of Pasa . This PIP proposes a biometric solution that can regulate voting using Pascalcoin Blockchain to 1 Vote - Person or to a weighted voting solution. What we want to do do is transfer the right for voting for the unique user from something that is unique with him ( [Token](https://en.wikipedia.org/wiki/Security_token) from the users fingerprints ) to a unique Pasa. Also the user keep his anonymity.

## Motivation

It has not earlier been easy to find a solution for fair voting that include anonymity and current method favor big holders. With the latest development in [W3C](https://www.w3.org/Consortium/) and [Fido Alliance breakthrough 4 march 2019](https://fidoalliance.org/fido2/)  where web standards is implemented for webauth  using biometrics give some ideas and the world is moving in direction [beyond passwords](https://nakedsecurity.sophos.com/2018/11/22/the-passwordless-web-explained/). 

Pascalcoin immutable blockchain is an good candidate to make use of fingerprint identification and give organization the possibility to limit voting to 1 person - 1 vote. Or regulate to a secure voting weighing where it is control that each user only can represent them self with one unique ID transferred to a Pasa.  Fingerprint readers are widely available and are also inexpensive to buy as addon for computers.  Users anonymity will not be compromised with this method and at the same time it is possible to regulate that each person don't register several times for voting using several identity's [since the single user only has one set of fingerprints](https://www.reddit.com/r/todayilearned/comments/9vymkv/til_not_even_twins_share_fingerprints_theres_a/).  The fingerprints them self will never leave the users computer only a [token](https://en.wikipedia.org/wiki/Security_token) from it with [salt](https://en.wikipedia.org/wiki/Salt_(cryptography)) added.

![](https://i.imgur.com/oH6999F.png)

Our intention is to use it reversed from what is planned with the [fido2](https://fidoalliance.org/fido2/) solution. We think the other way, to identify unique person without giving up the unique persons anonymity or possibility for compromising the users anonymity. User cases can also be set up with full [KYC](https://en.wikipedia.org/wiki/Know_your_customer) solution, that is not the intention for the Pascalcoin voting but can be very useful in other user cases so we are not excluding it.
![](https://i.imgur.com/GJfSkj9.png)

And this is what happens at the fingerprint scanner converted to a hash.
What is interesting is that your fingerprints look different every time you scan them. But it is hashed as a [perceputal hash](http://bertolami.com/index.php?engine=blog&content=posts&detail=perceptual-hashing) and can then be compared with other tokens in the blockchain for duplicates.  

![](https://i.imgur.com/cZkE3os.png)
This hashes we can salt with a website or pasa provided key and then sent to our blockchain. Token  will be compared with other tokens in the blockchain  to verify that it is a unique user that registered and that the user has not registered several profiles using a [imagehash algorithm search for matches](https://github.com/jenssegers/imagehash). The challenge here is that the creation of tokens of the fingerprints must probably somehow be hardware bound to verify that also the user was present and scanned the tokens of the fingerprints in real time in to Pascalcoin imagehash blockchain. This should be possible to do in a Pascal or C++ app. 

Hashes of a fingerprint to a token can not be reversed engineered and the tokens can be hashed with a pascalcoin public or private key as [salt](https://en.wikipedia.org/wiki/Salt_(cryptography)). If the database ever is compromised a hacker can not use the tokens for anything. 


A FIDO2 authenticator may be used in either single-factor mode or multi-factor mode. In single-factor mode, the authenticator is activated by a test of user presence (TUP), which usually consists of a simple button push. In multi-factor mode, the authenticator is activated by either a PIN (something you know) or a biometric (something you are). This method is good to use for the login to the Pascalcoin website that is the place users scan their fingerprint tokens. 


### It is suggested to write our own program or app similar to ctap2 . Bound to hardware authentication with finger swipe  
The fingerprints will be hashed and the actual fingerprints will never leave the users hardware by using [key-based steganography](https://link.springer.com/article/10.1186/s13635-015-0020-1) All 10 fingerprints should be registered.




## Specification

### *Currently in R/D stage*
The user open the app, pascalcoin developed app that run as [program on users computer bound to scanner hardware.](https://pure.royalholloway.ac.uk/portal/files/26656144/cpss24BindingHardwareAndSoftware_open_access.pdf)

In the app the user [hash](https://en.wikipedia.org/wiki/Hash_function) fingerprint from the Pascalcoin developed app. Each fingerprint hash gives 10% voting right for the users voting weight. 

The fingerprints are scanned directly to a [imagehash](https://github.com/jenssegers/imagehash) using [Perceptual hashing](http://bertolami.com/index.php?engine=blog&content=posts&detail=perceptual-hashing) as ahash, [dhash](https://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html), [Phash](https://www.phash.org/) or [whash](https://fullstackml.com/wavelet-image-hash-in-python-3504fdd282b5) and salt is added ( can be pasa public key ) 
![](https://i.imgur.com/Ae9RzMM.png)
The resulting Hash object, is a hexadecimal image fingerprint that can be stored in our blockchain once calculated. The hamming distance is used to compare two image fingerprints for similarities. Low distance values will indicate that the images are similar or the same, high distance values indicate that the images are different. If duplicate is detected the fingerprint hash will not be allowed for voting before additional manual control is done and communication with the voter to clearify.

Requirement. The user must have access to a Fingerprint scanner that is supported by Pascalcoins developed app. A scanner similar to [Ashata USB fingerprint reader](https://www.amazon.co.uk/dp/B07RKZR7Y8/?coliid=I20UR8ZFZ10HXI&colid=3342WS4IGW1G4&psc=1&ref_=lv_ov_lig_dp_it) that actually create hashes from the scan for registering in the blockchain. 

The user register he's voting pasa that then is linked to the users fingerprinttokens. 

## Rationale

Fingerprints , eye iris , voice is all unique for a person. Fingerprint scanners is now widely available and are inexpensive and we have chosen to explore that for identifying unique person and at the same time let the user keep their anonymity. [Here is a faq for security](https://www.bio-key.com/faqs/)   

## Backwards Compatibility

Any backwards incompatibilities should be described here, as well as work-arounds/solutions for these incompatibilities.

## Reference Implementation

The reference implementation must be provided before PIP is Completed.

## Links
References and links to relevant material
https://www.w3.org/2019/03/pressrelease-webauthn-rec.html.en

<https://fidoalliance.org/fido2/>

http://www.m2sys.com/automated-fingerprint-identification-system-afis-voter-registration/

https://precisebiometrics.com/wp-content/uploads/2014/11/White-Paper-Understanding-Biometric-Performance-Evaluation.pdf

https://pdfs.semanticscholar.org/d6e5/7702367fe8aee5b20d2d3310cc1263e13503.pdf

https://link.springer.com/article/10.1186/s13635-015-0020-1

https://www.bio-key.com/faqs/

https://github.com/jenssegers/imagehash

http://blockhash.io/

http://bertolami.com/index.php?engine=blog&content=posts&detail=perceptual-hashing

https://pure.royalholloway.ac.uk/portal/files/26656144/cpss24BindingHardwareAndSoftware_open_access.pdf
