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?
Thanks