Can anyone give an idiots guide to this yet ?
firstly you have to understand the concepts of multisig. where not only is it a 2 of 2 but there is an ability of a masterkey that can override both.
next you have to understand confidential payments where the units of measure are replaced with randomlooking number that a commitment of a few kilobytes of data added to the tx can translate, but only by keyholders.
next you have to understand that mimble is where a masterkey holder of many unspent multisigs can move the funds with the cough promise cough that everyone is made whole eventually, but by moving funds from different multisigs at different times and by the funds being non-transparant. blockchain analysts wont be able to know who paid what to you and how much and when. because the masterkey holder is grabbing random unspents to hide the true payments so analysts cant tell whats a true payment and what is just a ruse.
firstly confidential payments
imagine a multisig address is created between bob, alice and fred.. bob and alice are the 2-of-2 and fred is the manager with a masterkey
the multisig is 3bobalicefred
imagine the blockchain sees:
[in: 1bob value=20546590.90909091]
[out: 3bobalicefred value=20546590.90909091]
signed bob
commitment: bcd2b8e028b1d215bb3cb3a9a693d023c4cb906820ba423be1282590eb41bdc9
[in: 1alice value=33409090.90909091]
[out: 3bobalicefred value=33409090.90909091]
signed alice
commitment: bcd2b8e028b1d215bb3cb3a9a693d023c4cb906820ba423be1282590eb41bdc9
above is just bob and alice funding the multisig
now fred moves the funds to another multisig
[in: 3bobalicefred value=20546590.90909091]
[in: 3bobalicefred value=33409090.90909091]
[out: 3fredmultisig value=53955681.81818182]
signed fred
commitment: bcd2b8e028b1d215bb3cb3a9a693d023c4cb906820ba423be1282590eb41bdc9
in my example commitment each satoshi is multiplied by 294 then divided by 176 but the blockchain is not told that its 'multiply 294 divide 176'
only bob, alice and fred know about ''multiply 294 divide 176''
this is what fred alice and bob see
[in: 1bob value=0.123btc]
[out: 3bobalicefred value=0.123btc]
signed bob
[in: 1bob value=0.2btc]
[out: 3bobalicefred value=0.2btc]
signed alice
[in: 3bobalicefred value=0.123btc]
[in: 3bobalicefred value=0.2btc]
[out: 3fredmultisig value=0.323btc]
signed fred
on the face of it blockchain analysts dont know what the hell
20546590.90909091
33409090.90909091
53955681.81818182
is. but the public nodes verifies that simple maths of add and subtraction, that mathematically the numbers cancel eachother out to atleast know the values.. whatever they are, pay in and out correctly
this is the simple bases of confidential payments.
next mimble,
mimble adds to the confidential payment, with the premiss that one manager(fred) has the masterkey of MANY unspent multisigs. so it can grab unspents from many blocks and form a new transaction anytime he pleases, using any/all unspent multisigs he manages
so that analysts can no longer confirm or deny if alice and bob wanted to buy something, how much, when, why... because the funds are moved into a large reserve by one person(fred). and fred is then incharge(cross your fingers he is ethical/honourable) of repaying whomever, whatever amount is owed to them
imagine fred picks another multisig to mix with dave and alices multisig
a multisig address is created between dave, kim and fred.. dave and kim are the 2-of-2 and fred is the manager with a masterkey
the multisig is 3bobalicefred
(for time/laziness sake lets just say dave and kim pay in same amounts as alice and bob did)
and now fred is moving the funds belonging to dave and kim
[in: 3davekimfred value=20546590.90909091]
[in: 3davekimfred value=33409090.90909091]
[out: 3fredmultisig value=53955681.81818182]
signed fred
commitment: bcd2b8e028b1d215bb3cb3a9a693d023c4cb906820ba423be1282590eb41bdc9
[in: 3fredmultisig value=53955681.81818182]
[in: 3fredmultisig value=53955681.81818182]
[out: 1robert value=39088636.3636364]
[out: 1alison value=16704545.4545455]
[out: 1david value=17205681.8181818]
[out: 1kimberly value=33409090.9090909]
[out: 1frederic value=1503409.09090909]
signed fred
commitment: bcd2b8e028b1d215bb3cb3a9a693d023c4cb906820ba423be1282590eb41bdc9
issues.
1) because fred is using the same commitment (math) for everyone to ensure public validation without revealing true value
then analysts will eventually decode the numbers, simply by analysts doing a few transactions with fred and then the commitment math is revealed
2) to do this. each transaction has to include kilobytes of excess data for the commitment
3) it involves allowing a masterkey holder to move funds to mix together multiple peoples funds to try confusing analysts.
which is too much bloat for such a temporary idea of hiding value from the public, and also violates the bitcoin ethos of permissionless peer to peer trustless ideology of bitcoin.