Traceable Anonymous Credential

A privacy-focused blind credential powered
by privacy-preserving smart contract




Privacy Preserving


Anonymity Traceable


User Friendly

How it works Paper Email



Additive group of Elliptic curves

Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC requires smaller keys compared to non-EC cryptography (based on plain Galois fields) to provide equivalent security. Part of the core code in the smart contract is implemented as follows:

function identity_calculating(uint256 zeta1_x, uint256 zeta1_y) public{
	if (IdentityTraceTimes[msg.sender] == 0){
		uint256 nxt = inverseMod(xt, n);
		(i_x,i_y) = multiplyScalar(zeta1_x, zeta1_y, nxt);	
	}
	identity_tracing_log(zeta1_x);
}

Multiplicative group of integers (mod N)

A modulo multiplication group is a finite group Gn of residue classes prime to n under multiplication mod n. Gn is abelian of group order Φ(n), where Φ(n) is the totient function. Part of the core code in the smart contract is implemented as follows:
function identity_calculating(uint zeta1) public{
	if (IdentityTraceTimes[msg.sender] == 0){
		uint nxt = quick_power(xt, q - 2, q);
		IdentityTraceResults[msg.sender] = quick_power(zeta1, nxt, p);
	}
	IdentityTraceTimes[msg.sender] += 1;
	identity_tracing_log(zeta1);
}

Evaluation (Performance)

Version/Operation(Second) Parameter preparation Credential issuing Credential verifying Identity tracing Credential tracing
Elliptic Curves 192 0.00052 0.00454 0.00141 0.00391 0.00216
Elliptic Curves 256 0.00084 0.00740 0.00232 0.00455 0.00306
Integers Group 256 0.02839 0.000245 0.00008 0.00041 0.00038
Integers Group 1024 2.28698 0.006368 0.00296 × ×