본문 바로가기

Blockchain/ZKP

zokrates library 간단 사용기(template,signal)

들어가기에 앞서, zokrates란? 

zokrates는 Python기반의 ZKP 라이브러리로, privacy 보호와 더불어 컨트랙트의 보안을 강화하는데 사용된다. 

circom이라는 언어를 사용하여 작성된 스마트 컨트랙트를 처리한다. 

 

1) remix에서 zokrates 라이브러리 설치 

ㄴ오늘 remix에서 라이브러리를 처음 설치해보았다. 

 

2) 예제 코드 

python처럼 def 함수를 사용했다. 

zokrates에서는 field를 사용하여 circuit을 설계하고 계산을 수행한다. field는 circuit의 입력 출력 중간값으로 사용될 수 있다. 

def main(field a, field b) -> field { 
	field result = a + b; 
    return result; 
}

a,b가 field값이며 private input으로 private하게 field값을 받을 수 있다. 

 

zokrates용

template Adder() { 
	signal private input a,b; 
    signal output c; 
    
    c <== a + b; 
}

template는 함수처럼 circom 코드에서 재사용한 circuit 블록을 정의하는데 사용한다. 

위의 Adder()은 다른 곳에서도 쉽게 재사용이 가능한 코드이다. 

 

signal은 '신호'를 나타내며 circuit을 시작할 때만 사용된다. 외부에서 값을 입력받을 때 사용된다. 즉, 변수와 유사한 개념이다. 

 

3) compile 후 Compute 해보며 field에 값 대입해보기 

a에 1, b에 2를 넣으니 result는 그대로 3이 나왔다.

 

 

 

오늘 알게 된 개념  

zokrates 

signal 

template 

remix에서 플러그인 설치 

'Blockchain > ZKP' 카테고리의 다른 글

zkSNARKs란? (circom-zkSNARKs의 관계)  (0) 2024.03.24
ZKP에 필요한 라이브러리 설치 (circom)  (0) 2024.03.21