Constructing constraints for Bulletproof

Need to prove that, for a given vector of Pedersen commitments, each entry is a commitment to 0, except for some i-th entry. (Neither i, nor openings to commitments are unknown to the verifier).

I am working with Bulletproofs and I don’t want to use their gadgets system, because it’ll be very cumbersome and costly to make a verification on-chain.
Instead, I want to come up with a constraint system myself, but I need help.

So far, I came up with something like this:
Vectors are denoted as letters in bold (E.g.: a, 1, 0, etc)

m is a bitmask vector, which represents the index of the non-zero element in the vector a
a is a set where every entry is zero and one number is arbitrary (for example, x)

Step 1
m = [0, 0, 1, 0]
a = [0, 0, x, 0]

Step 2
n = m - 1

(m - 1) - n = 0
m hadamard n = 0
(m inner 1) - 1 = 0
(a inner m) - (a inner 1) = 0