I was referring to the quote from Vitalik. I don't see the point to implement a complex scheme like that just to allow an auditor to search the blockchain when you could set up a watch only wallet. Doesn't make sense, maybe I'm missing something.
The idea is that if you give the auditor the watch only wallet, he could conspire with one of the holders of the private keys below it to create the master private key and run away with all the money.
M = master public key
m = master private key
m/ = CEO holds it
M/ = Auditor holds it. With it, they can view all company funds, but not spend.
m/m
1 = Department A head holds it, and can generate further chains with it.
m/m
2 = Department B head holds it, and can generate further chains with it.
m/m
3 = Department C head holds it, and can generate further chains with it.
combining M/ with m/m
x would give me m/ ... so an auditor would have to conspire with one corrupt department head to run away with the company's entire finances.
With the solution provided says that the CEO would make
m
1/
m
2/
m
3/
Then
Dept A:
m
1/m
1m
2/m
1m
3/m
1Dept B:
m
1/m
2m
2/m
2m
3/m
2Dept C:
m
1/m
3m
2/m
3m
3/m
3Each dept using the three public keys generated by those chains to generate deterministic 2of3 chains.
The Auditor would ONLY receive:
M
1/
Then they could check the blockchain for redeemscripts that included
M
1/M
1M
1/M
2M
1/M
3Then they would know how much money each department SPENT without being able to collude to get 2 private keys.
Downside: They could only find SPENT funds, as the redeemscript is only revealed on the blockchain when funds are spent from the multi-sig address.
imo, the best way to do an audit for business would be to use a dual-key Stealth Address, and give the scan_privkey to the auditor... but this is a topic slightly unrelated to BIP32.
You could set up so your company's stealth addresses are generate on a per-department basis, but that all scan_keypairs are generated by a separate BIP32 chain.
Give that master private key to the auditor, as that keypair is only used to generate shared secrets to discover funds, not to spend it.