What is GroupHug
Envision GroupHug as a lively bus station, where eager folks gather, waiting for their chance to step onto a journey. Central to this scene is our bus driver, a figure of purpose and clarity.
With a predictable rhythm, the bus driver arrives every 10 minutes. His eyes scan the assembled group, and in a voice that carries a friendly assurance, he addresses them:
"Greetings, everyone! I'm here like clockwork, every 10 minutes, ready to roll. Now, here's the exciting part – I'm hoping to see a lively bunch, 30 or more strong. Once we hit that mark, we're off to the mempool for an adventure."
When the crowd is sparse, the bus driver speaks with an understanding nod:
"It seems we're not quite there yet, but no worries. Patience is key. I've got a 12-hour window, and after that, I'll take whoever's on board, no matter how many. Keep that magic number in mind."
As time unfolds, the crowd swells, meeting the coveted count of 30 or more. The bus driver's voice rises again:
"Well, well, well! Looks like we've got ourselves a fantastic crew now. If you're up for some excitement, hop aboard. Our destination: the mempool. Let's make this journey one to remember!"
A bit more technical explanation
The passengers in this little story represent the partially signed bitcoin transactions (PSBTs) sitting in a queue for the batching.
The bus driver is the GroupHug coordinator.
The rules are strict but simple:
- the maximum waiting time is 12 hours
- the waiting time can be cut short if 30 or more participants join the round
- PSBTs are grouped in fee ranges, this ensures that high fee transactions don't pay for low fee transactions
- each PSBT is a transaction that is paid out in full, i.e. there's no change (which works well for P2P trade scenarios that use an escrow)
The fee storm of 2023 which was caused by the ordinals craze made it clear to us, that we need to implement new ways for our users to save on transaction fees.
Out of this need the idea of batching transactions out of the escrows arose. The biggest nut to crack however was coordination.
We looked at different collaborative transaction protocols such as WabiSabi and Whirlpool. However, they required the user (the seller in this case) to stay online to craft and sign a release transaction with other users.
This can be tricky, especially for mobile applications that can experience spotty internet connection. It is also an incentive problem, once the seller got their money, they have no need to help the buyer save on fees.
So we found this pattern that requires the seller to only do one thing: sign a valid PSBT once and send it to GroupHug. The server will take it from there and the seller can enjoy the fiat money.
How does a GroupHug look like
It's not a coinjoin - it's a batch
Here's an example of a GroupHug transaction. At first glance it seems to be a coinjoin. But indeed, if you dig a bit deeper you'd recognize that each input corresponds to the output at the same position. So unfortunately there are no privacy benefits. You do however save on fees, and that's already a good thing!
How to participate in GroupHug within peach
As of right now GroupHug is only usable when buying bitcoin, to enable it do the following steps:
From now on peach will batch your payout transactions when possible. As this requires cooperation by the seller, your counterparty will also have to be on peach version 0.3.0 or higher. But don't worry, if the seller is not cooperating, you'll still get your sats paid out directly.
If you want to know more about Peach features, or read some of our other articles, you can find them here!
Keep spreading the Peach word, who knows when you'll find the match of your life!
September 1st, 2023