I'm currently implementing a group signature verification on Ethereum and it seems that the Pairing check can only return a boolean.

According to the BBS algorithm, to validate a signature $s$, you need to check $$ e(T_3,g_2)^{s_x}.e(h,w)^{-s_\alpha-s_\beta}.e(h,g_2)^{-s_{\delta_1}-s_{\delta_2}} = (e(g_1,g_2)/e(T_3,w))^c.R_3 $$ Which can also be framed as: $$ R_3 = e(T_3,g_2)^{s_x}.e(h,w)^{-s_\alpha-s_\beta}.e(h,g_2)^{-s_{\delta_1}-s_{\delta_2}}.e(g_1,g_2)^{-c}.e(T_3,w)^c\\ R_3 = e(s_x.T_3-({s_{\delta_1}+s_{\delta_2}}).h-c.g1,g_2).e(c.T_3-({s_\alpha+s_\beta}).h,w) $$ Let's supposed, we provide $R_3$ and $s$. Is there a way to use the precompiled pairing contract for this check? Also, is it interesting to precompute $e(g_1,g_2)$ and other constant pairing and how do you use it efficiently?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.