Skip to content

Instantly share code, notes, and snippets.

@lucayepa
Last active March 12, 2024 21:45
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lucayepa/3bec3ba83fcc9a576aa79a7f16326be3 to your computer and use it in GitHub Desktop.
Save lucayepa/3bec3ba83fcc9a576aa79a7f16326be3 to your computer and use it in GitHub Desktop.
Regole del mercato di @bitcoinIta

Regolamento del market

Coppie trattate

Dal lato Bitcoin (sound money) avremo:

  • Bitcoin onchain (default per tutti i tier maggiori del tier 0)
  • Bitcoin LN (default per il tier 0)
  • Liquid bitcoin

Dal lato fiat in euro avremo:

  • Bonifico SEPA (default per gli euro)
  • Ricariche telefoniche
  • Postepay
  • Codici Amazon.it
  • Pagamenti interni ai seguenti circuiti (Moneybeam di N26, Satispay, Revolut, Hype, Bancomat Pay, Paysafecard)
  • Di persona

Probabilmente non serve, e lo elimineremo in futuro, ma aggiungiamo i seguenti basati sul dollaro americano:

  • Swift wire transfer (default per i dollari)
  • Zelle
  • Codici Amazon.com

Proviamo a vedere se funziona anche con oro ed argento, che di solito saranno scambiati in moneta o in lingotto:

  • Spedizione con imballo particolare
  • Di persona

Inoltre e' possibile scambiare ogni forma di sound money elencata qui sopra, con le altre forme.

Viste le ultime restrizioni relative all'approvvigionamento di gas, dal giorno primo aprile 2022, sara' possibile scambiare rubli dal lato sound money.

Glossario

  • Gruppo: gruppo Telegram dove sono presenti tutti.
  • Tier: insiemi di utenti del gruppo con caratteristiche omogenee.
  • Secondi: utenti che sponsorizzano altri utenti, assumendo dei rischi.
  • Sound money: soldi che hanno una di queste tre forme: bitcoin onchain, bitcoin su Lightning Network, L-bitcoin su Liquid network.
  • Transazione: accordo tra due parti, che avviene in presenza di una terza persona e che contiene due transazioni, almeno una delle quali e' sempre in sound money.
  • Arbitro: terza persona che sovraintende ad una transazione.
  • Gruppo dedicato (o privato): gruppo Telegram creato dall'arbitro, dove si incontrano le parti di una transazione.
  • Ospite: utente che non fa parte di un tier, ma che effettua una transazione particolare con un utente del tier

Visione

Il gruppo nasce per dare la possibilita' a tutti di comprare o vendere qualche satoshi in un ambiente amichevole, in modo semplice, e senza dover dare in giro i propri dati ad operatori che richiedono KYC. L'idea e' di creare una specie di club.

Probabilmente comprare e vendere sul gruppo non sara' il modo piu' conveniente dal punto di vista del costo di intermediazione. Il gruppo non nasce per speculazione, ma solo per dare modo a chiunque di provare, oppure per esigenze estemporanee di chi non ha account sugli exchange, o non gradisce il KYC. Per questo motivo non ci occuperemo del prezzo di cambio e delle sue variazioni. Il prezzo di riferimento verra' preso da un oracolo esterno, e non deciso dalla domanda ed offerta.

Visto che gli arbitri non saranno professionisti, ma persone che danno una mano a fluidificare il mercato, le fee di intermediazione, che vengono corrisposte all'arbitro di ogni transazione, saranno inizialmente alte, perche' e' probabile che qualcosa non funzioni come deve. Qualora ci trovassimo ad avere sovrabbondanza di arbitri, abbasseremo le fee.

In futuro il mercato potrebbe essere completamente automatico, o magari funzionare con dei bot. Quando possibile potremo usare atomic swap (es.: L-bitcoin to L-Tether). In questo caso la fee di intermediazione, che oggi viene versata agli arbitri, potra' diminuire progressivamente fino a diventare nulla.

Il club diventera' un Web Of Trust semplificato, utile come piattaforma per altre iniziative aventi rischio di controparte. Infatti il sistema di rating basato sui tier permette di quantificare fino a che cifra gli utenti possono fidarsi gli uni degli altri. In questo modo il gruppo puo' diventare una piattaforma per altre applicazioni.

In futuro, per transazioni grandi, potremo introdurre il concetto di arbitro che agisce in modo anonimo dalle parti, o l'arbitro sorteggiato. Potremo anche decidere di avere diversi gruppi Telegram per diversi tier.

KISS

Eliminiamo molto del "grasso" contenuto in un tipico contratto di scambio di un exchange. Quindi:

  • Le transazioni avranno un prezzo predeterminato, e non ci sara' la possibilita' di modificare il prezzo di acquisto o vendita.
  • La fee di intermediazione sara' predeterminata e non modificabile.
  • Non ci sara' feedback sulla controparte.

Tiers

Ci sono tre livelli, che garantiscono la possibilita' di comprare o vendere entro certi limiti.

  • Tier 0 fino a 100 euro
  • Tier 1 fino a 1000 euro
  • Tier 2 fino a 10000 euro

Scritto piu' compatto: il limite massimo del tier N si trova facendo 10^(N+2).

Per determinare il limite, in caso di altri asset, si considera l'equivalente in euro.

Attivita' sul gruppo Telegram

Chiunque puo' entrare nel gruppo Telegram. Chi entra nel gruppo e' uno spettatore e non fa parte di alcun tier, quindi non puo' transare con nessuno, ne' essere arbitro.

Nel gruppo si parla solo di:

  • richieste di acquisto/vendita
  • segnalazione di chiusura di transazioni
  • informazioni sui passaggi di tier dei vari utenti, che sono valide solo se forwardate sul gruppo da parte di un admin
  • pubblicazione di sanzioni

Importanza del forward.

Le accettazioni degli utenti in un tier, vengono inviate o forwardate da un admin, in modo che l'informazione non possa essere cancellata in seguito da un utente malevolo.

Come si entra in un tier

Per entrare in un tier, bisogna avere uno username Telegram ed essere sponsorizzati da due o piu' persone, di cui almeno una appartenente al tier in cui si vuole entrare o ad un tier superiore. Al momento della sponsorizzazione, ognuno dei secondi dira' per che cifra e' disposto a sponsorizzare l'utente, con un minimo di 50 euro ed un massimo pari al minimo tra il 50% del limite del tier in cui entra l'utente ed il 50% del limite del tier a cui appartiene il secondo.

I secondi coprono eventuali perdite dovute all'utente che hanno sponsorizzato.

Se si decide di sponsorizzare qualcuno, si rischia soltanto di perdere fondi: non c'e' alcuna remunerazione.

E' possibile revocare la propria sponsorizzazione in ogni momento, ma le transazioni in corso avranno ancora effetto per i secondi che sponsorizzavano l'utente al momento dell'inizio della transazione.

Sponsorizzazioni in "mempool"

Se un utente ha gia' le sponsorizzazioni necessarie a far parte di un tier, le successive sponsorizzazioni vengono messe in attesa. Queste sponsorizzazioni diventeranno effettive se si verifica uno dei seguenti casi:

  • Uno dei secondi che sponsorizzava l'utente si tira indietro: in questo caso le sponsorizzazioni in attesa diventano operative fino a riportare l'utente in piena operativita' per il tier di cui faceva parte (questo non ha effetto su eventuali transazioni gia' aperte).
  • Le sponsorizzazioni sono sufficienti per un tier superiore: in questo caso diventano operative e l'utente entra nel tier superiore.

Vengono lasciate in attesa anche le sponsorizzazioni da parte di secondi che non abbiano i necessari requisiti. In questo caso le sponsorizzazioni entrano nella mempool quando il secondo acquisisce i requisiti.

Richiesta di acquisto/vendita

Le richieste vengono denominate nella valuta opposta a bitcoin, ed indicano quale siano le forme di pagamento richiesto, sia dal lato sound money, che dal lato opposto. Quindi saranno del tipo "Vendo 100 euro per carte Amazon. Onchain.". Oppure "Compro 10 euro con bonifico. LN.". E' sempre possibile aggiungere "per un amico", indipendentemente dal fatto che sia vero o no.

Alla richiesta rispondera' una controparte interessata con un messaggio di "ok" o "Ack". Poi interverra' un arbitro con "ok per fare da arbitro". Quando il messaggio avra' un ok di una controparte ed un ok di un arbitro, l'arbitro continuera' come spiegato nel paragrafo seguente.

Attivita' sui gruppi privati

Tutte le transazioni avvengono ad un prezzo fisso. Il prezzo e' quello che compare su Google digitando "1 btc to eur" (non possiamo usare l'inverso, perche' Google approssima ai 10000 satoshi). Il robot @bitcoinIta_MarketBot puo' essere invitato nel gruppo e fornisce informazioni sul tasso di cambio ed altre informazioni utili.

Arbitro

L'arbitro non fa da escrow e non mette seconde firme alle transazioni. Si limita a creare il canale, a gestire il rapporto tra le parti, a chiedere prove quando necessario, ed ad aiutare l'eventuale parte che non sappia cosa fare.

All'arbitro viene riconosciuta una fee di intermediazione per il servizio prestato. Tipicamente questo avviene con una transazione LN da parte di entrambe le parti separatamente. In alternativa, la parte che manda bitcoin puo' mandare la fee di intermediazione all'arbitro, e poi scalarla da quanto richiesto alla controparte.

Inizio

  • L'arbitro crea un gruppo Telegram privato e manda il link del gruppo privato sul canale generale, in modo che i due che vogliono fare l'operazione possano entrarci. E' consigliabile creare un link che permetta solo due ingressi, in modo che nessun altro possa entrare in seguito. In alternativa, si puo' includere uno degli utenti, e mandare un link monouso all'altro, sempre mandando il link sul canale generale. L'arbitro puo' invitare anche il bot @bitcoinIta_MarketBot che puo' dare alcune informazioni utili.
  • Possono entrare nel gruppo privato: le due parti, l'arbitro, il bot @bitcoinIta_MarketBot e, nei primi tempi, un admin per avere feedback su come sta funzionando il tutto. Se qualcosa va male, verranno invitati nel gruppo anche i secondi. Nessun altro puo' entrare nel gruppo privato.
  • Le due parti non possono parlarsi in privato riguardo alla transazione. Se lo fanno, qualunque cosa si dicano non ha alcun valore per l'arbitro, per il gruppo o per ogni altro aspetto di questo regolamento.
  • Non e' previsto che l'arbitro, o altri, contattino tramite messaggio privato una delle parti: ogni cosa verra' discussa nel canale privato dedicato alla transazione.
  • Un utente che ha transazioni in corso, puo' iniziarne altre fino al raggiungimento del limite del tier di cui fa parte. Poi deve aspettare di completare quelle che ha in corso. In questo modo nessun utente ha mai transazioni in corso per una cifra superiore al limite del tier. Per questo motivo e' importante che l'arbitro scriva sul gruppo pubblico quando una transazione e' completata.

Transazione

  • Sul gruppo dedicato, le due parti si scambiano le informazioni sensibili necessarie alla transazione: IBAN, indirizzo Bitcoin, invoice LN, codici Amazon, numeri di telefono da caricare, e tutto quanto necessario a portare a termine la transazione.
  • Il costo della transazione Bitcoin e' a carico di chi spedisce i bitcoin.
  • Il costo del bonifico, o ogni altro costo che riguarda il passaggio opposto, e' a carico di chi spedisce.
  • Probabilmente introdurremo delle best practices su come scegliere le fee onchain, ma, per il momento, vengono scelte dalla parte che invia bitcoin onchain.
  • Tipicamente l'invio dei bitcoin avviene successivamente all'invio opposto, ma le parti possono concordare diversamente.

Se tutto va bene

  • Se tutto va bene, le due parti si salutano e, se vogliono, abbandonano il gruppo privato.
  • Non sono previste altre transazioni sullo stesso gruppo, ma se gli utenti e l'arbitro vogliono continuare, allora l'arbitro scrivera' sul gruppo generale che i due utenti vanno avanti con un'altra transazione.
  • A fine transazione l'arbitro comunica sul gruppo generale che la transazione e' finita (possibilmente con una risposta al messaggio in cui ne comunicava l'apertura). Questo libera gli utenti per un'altra transazione. La parte che manda bitcoin puo' dimostrare all'arbitro di aver pagato e chiedere all'arbitro di scrivere sul gruppo generale che ha completato la sua parte di transazione.
  • Se la transazione non e' stata completata, ad esempio perche' una delle parti si tira indietro, l'arbitro informa sul gruppo generale che si puo' considerare chiusa la transazione, ma che non e' stata fatta.
  • A fine transazione l'arbitro si segna che dopo un mese dovrebbe cancellare il gruppo dedicato. Non e' obbligatorio.

Se qualcosa va male

  • L'arbitro cerca di ricomporre bonariamente il problema.
  • Se l'arbitro ritiene che uno dei due abbia imbrogliato l'altro, allora l'arbitro chiede all'utente di onorare l'accordo e di pagare il dovuto. Se ci sono problemi a pagare tramite il mezzo previsto, allora l'arbitro puo' chiedere di pagare con un qualunque altro mezzo di pagamento, e cercare cosi' di ricomporre la cosa pacificamente.

Intervengono i secondi

Se l'arbitro ritiene che non sia piu' possibile ricevere soldi da un utente malevolo, allora deve:

  • Invitare sul gruppo dedicato i secondi della parte che non ha onorato l'accordo, insieme ad un admin.
  • Se necessario, condividere sul gruppo dedicato eventuali messaggi cancellati o editati da qualcuno, prendendoli dalla history del gruppo privato.
  • Chiedere ai secondi di pagare il maltolto, pro quota, nella misura massima prevista da ognuno al momento della sponsarizzazione dell'utente.

Sanzioni in caso di mancato pagamento

  • Utenti malevoli vengono estromessi dal gruppo generale, dalla chat Bitcoin Italia e da ogni altra chat gestita dagli stessi admin.
  • I secondi che pagano il dovuto, a seguito di una mancanza da parte di una persona che avevano sponsorizzato, non subiscono ulteriori sanzioni.
  • I secondi che non pagano cio' che si sono impegnati a pagare per una persona che avevano sponsorizzato, vengono estromessi dal gruppo generale, dalla chat Bitcoin Italia e da ogni altra chat gestita dagli stessi admin. In questo caso, i secondi dei secondi non subiscono alcuna sanzione, ma vengono informati di cosa e' successo.
  • Le sanzioni vengono comunicate sul canale generale, specificando chi viene sanzionato e quale e' la cifra che ha causato il problema.

Fee di intermediazione da versare all'arbitro

  • Transazioni minori o uguali a 100 euro avranno un premio fisso di 5 euro.
  • Transazioni minori o uguali a 1000 euro avranno un premio percentuale del 4%.
  • Transazioni minori o uguali a 10000 euro avranno un premio percentuale del 2%.

Gli arbitri possono chiedere di inviare a terzi la fee di intermediazione destinata a loro, ad esempio in beneficenza.

Ospite

Un utente fuori dal sistema dei tier, o un utente che vuole transare con limiti superiori al tier di cui fa parte, puo' essere temporaneamente ospitato in un tier e fare una o piu' transazioni purche' siano rispettate le seguenti condizioni:

  • l'ospite ha uno username Telegram
  • l'ospite compra fiat e cede sound money
  • nel fare la transazione, l'ospite invia sound money per primo, la controparte verifica di aver ricevuto e successivamente invia la sua parte della transazione
  • la transazione deve rispettare i limiti del tier di cui fa parte la controparte dell'ospite

Mezzi di pagamento di default

Salvo diversamente specificato nell'annuncio, o richiesto dall'arbitro quando prende l'incarico, assumiamo che:

  • La parte che invia sound money spedisce usando Lightning Network fino a 100 euro equivalenti e bitcoin onchain negli altri casi
  • La controparte manda bonifico bancario in area SEPA in caso di euro e bonifico internazionale via SWIFT in caso di dollari
  • La parte che invia fiat, spedisce alla controparte anche la meta' della fee per l'arbitro.
  • L'arbitro viene interamente pagato dalla parte che invia sound money usando LN fino ad una fee di 100 euro (transazione da 5000 euro), bitcoin onchain negli altri casi.

Esempi

  • "Compro 100 euro" vuol dire che mandero' l'equivalente di 100 euro alla controparte via LN, mandero' 5 euro via LN all'arbitro e ricevero' 102.50 euro via bonifico SEPA.
  • "Vendo 500 euro" vuol dire che ricevero' l'equivalente di 500 euro in bitcoin onchain, che dovro' mandare un bonifico in area SEPA di 510 euro e che l'altra parte inviera' all'arbitro l'equivalente di 20 euro su LN.

Bootstrap

Limitatamente ai tier 0 ed 1, le persone presenti nella chat di brainstorming al 9 aprile 2021 possono fare circle sponsorship (presentarsi insieme in un tier facendo gli uni da secondi degli altri) fino al Pizza Day 2021.

Gli admin della chat Bitcoin Italia (che saranno anche gli admin del market) possono fare circle sponsorship per ogni tier.

Prima del Pizza Day 2021 non sara' possibile fare transazioni in tier 2.

Bug noti

  • Teoricamente il prezzo e' prefissato e preso da un oracolo, ma e' stato definito solo l'oracolo per fiat, e non per oro ed argento.
  • Quando l'arbitro crea il gruppo privato, e' costretto ad inserire uno dei due utenti da subito. Qui sopra si parlava di link a cui i due utenti avrebbero dovuto cliccare. Inserire un utente puo' essere vulnerabile al fatto che l'arbitro venga segnalato come spammer dall'utente inserito. E' una vulnerabilita' minore, ma nel dubbio la riportiamo qui. Per evitare questa vulnerabilita', l'arbitro puo' inserire il bot @bitcoinIta_MarketBot e poi mandare il link. In questo modo nessuno puo' segnalare l'arbitro come spammer.
  • Quando un utente fa una transazione e la controparte e' un suo sponsor, la cifra "assicurata" e' minore del totale del tier, come avviene nelle altre transazioni.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment