La domanda che però io mi ponevo era quanto stiamo inquinando per questa "moneta"...
Questo è stimabile: http://blockchain.info/statssono circa 423MWh. C'è qualche errore... in quanto tempo si consuma questa energia? In un secondo? In un giorno? In un anno? Da quando è nato il Bitcoin fino ad oggi? Non è specificato, e quindi è un dato che non ha alcuna utilità. A mio avviso si dovrebbe conoscere l'assorbimento di potenza della rete: solo così si possono fare confronti (centrali nucleari, ecc.). Ciao!
|
|
|
Abbiamo risolto tutti i problemi
Bravi. Che mi dite riguardo alle vecchie giocate? Ciao!
|
|
|
Comunque se vuoi partecipare ma non apparire basta che stacchi la cam e lasci solo il mic Non ho né webcam né microfono. Ciao!
|
|
|
A prima vista direi che si fa giovedi! Ok, io vi raggiungerei eventualmente in chat, ma solo dopo le 22. Ciao!
|
|
|
Come ripeto eravamo assolutamente in buona fede
Ne sono convinto. purtroppo non possiamo dimostrarlo come non lo può dimostrare la sisal col superenalotto.
Non è proprio così: le estrazioni avvengono alla presenza di un notaio, usando macchine certificate. Qui l'unica cosa che possa attestare la casualità delle estrazioni è la riproducibilità delle stesse a posteriori, cosa che è venuta a mancare a causa del bug. Ora, anche se noi dessimo un rimborso a tutti quelli che lo chiedono, allo stesso modo farei appello a quelli che hanno vinto, a restituirci i btc vinti perché in realtà avrebbero perso.
Ripeto, la verifica di chi ha intascato più del dovuto la potete fare voi stessi. La cosa migliore a mio avviso sarebbe: 1) censimento di TUTTI gli indirizzi Bitcoin che sono stati usati per scommettere sul vostro sito 2) calcolo CORRETTO di tutte le giocate svolte da ogni indirizzo 3) calcolo della differenza rispetto a quanto avete inviato 4) rimborso agli indirizzi che hanno ricevuto meno del dovuto 5) trattenuta dalle future giocate provenienti da quegli indirizzi che hanno ricevuto più del dovuto, fino all'estinzione del debito nei vostri confronti A proposito del punto 3: a) se i numeri erano veramente casuali, il bilancio dovrebbe essere vicino a 0; quindi non avete molto da temere b) se era a favore dei giocatori... avrete pochissimi ricorsi, e di conseguenza rimborsi da fare; in futuro potrete trattenere delle somme da quegli indirizzi che hanno ricevuto più del dovuto, e quindi per voi è conveniente c) se invece erano a favore vostro, è vostro dovere morale effettuare i rimborsi, in quanto (seppure involontariamente) avete giocato con dei dadi truccati Certo, c'è sempre la possibilità che gli indirizzi che hanno ricevuto più del dovuto non vengano più utilizzati in futuro, ma sono certo che i casi sarebbero ridottissimi (forse anche nulli). Fate questi calcoli e pubblicate i risultati: sarebbe un eccellente indicatore di serietà nei vostri confronti. Direi che non è falsa, perché se punti sul numero inferiore a 64000 hai "Oltre il 98% di probabilità di vincere".
Avevo interpretato diversamente. Comunque è falsa anche seguendo questa interpretazione: 63999/65535=97,66% E' già tutto scritto...ma cercheremo di renderlo ancora più chiaro.
Ottimo. Ciao!
|
|
|
Ecco lo scriptino ben migliorato: #!/usr/bin/env python3
import sys import hashlib import hmac
private_keys = open('private.hash', 'r') public_keys = open('public.hash', 'r')
def is_valid_key(date, private_key, public_key): if hashlib.sha256(private_key).hexdigest().encode('utf-8') == public_key: print('Private key verified') return True else: print('The private key is NOT valid') return False
def get_lucky_number(transaction_hash, private_key): return int(hmac.new(private_key, transaction_hash, hashlib.sha512).hexdigest()[:4], 16)
if __name__ == '__main__': log = open(sys.argv[1])
transaction_hash = bytes(sys.argv[1].split('.')[0].encode('utf-8')) print('Transaction_hash: {}'.format(transaction_hash))
for line in log: if 'Date: ' in line: date = line.split()[1] print('Date: {}'.format(date)) if 'lessthan_game: ' in line: less_than_game = int(line.split()[1]) print('Less than: {}'.format(less_than_game)) print()
if 'Lucky number: ' in line: false_lucky_number = line.split()[2] print('False lucky number: {}'.format(false_lucky_number)) if 'Game Result: ' in line: old_result = line.split()[2] print('Old result: {}'.format(old_result)) print()
for line in private_keys: if date in line: private_key = line.split()[1].encode('utf-8') print('Private key: {}'.format(private_key)) for line in public_keys: if date in line: public_key = line.split()[1].encode('utf-8') print('Public key: {}'.format(public_key))
if is_valid_key(date, private_key, public_key): print()
lucky_number = get_lucky_number(transaction_hash, private_key) print('Lucky number: {}'.format(lucky_number)) if lucky_number < less_than_game: result = 'win' else: result = 'lose' print('Result: {}'.format(result)) print()
if old_result != result: print('DIFFERENT RESULT!!!') else: print('Old result: OK')
Uso: ./luckynumber.py d9c8a227744f5b02f6b794b1460f996414c16b0a19d15b92d804f0b2bf12a3cf.log
Ovviamente dovete aver prima scaricato, nella stessa directory, il log e i file contenenti gli elenchi di chiavi private e pubbliche (private.hash e public.hash). Ciao!
|
|
|
Mi rendo conto che il capitale di cui disponete è una piccola frazione di quello di MtGox; per contro siete appena partiti, il bug è stato individuato quasi subito, e quindi anche gli eventuali rimborsi credo che sarebbero molto limitati. Potreste ad esempio pensare di destinare una parte dei vostri introiti per rimborsare i vostri utenti che ne facciano richiesta entro una data limite (una settimana, un mese, vedete voi); se non disponete oggi dei fondi necessari per soddisfare le richieste, potreste anche inviare i rimborsi fra qualche tempo: sempre meglio di niente.
Aggiungo: le transazioni Bitcoin sono pubbliche, quindi se un utente fa richiesta di rimborso, potete verificare TUTTE le giocate provenienti da quell'indirizzo, e quindi eventualmente anche detrarre le puntate che avete versato erroneamente in caso di sconfitta. In questo modo ci smenereste davvero pochissimo, più che altro il tempo per controllare una per una tutte le giocate (cosa per altro semi-automatizzabile). Ecco ad esempio un grezzissimo script in Python che ho buttato giù al volo, che magari migliorerò per automatizzare ulteriormente il processo di controllo: #!/usr/bin/env python3
import hashlib import hmac
private_keys = open('private.hash', 'r') public_keys = open('public.hash', 'r')
def is_valid_key(date, private_key, public_key): if hashlib.sha256(private_key).hexdigest().encode('utf-8') == public_key: print('Private key verified') return True else: print('The private key is NOT valid') return False
def get_lucky_number(transaction_hash, private_key): return int(hmac.new(private_key, transaction_hash, hashlib.sha512).hexdigest()[:4], 16)
if __name__ == '__main__': date = input('Date (MM.DD.YYYY): ') transaction_hash = bytes(input('Transaction hash: ').encode('utf-8')) print()
for line in private_keys: if date in line: private_key = line.split()[1].encode('utf-8') print('Private key: {}'.format(private_key)) for line in public_keys: if date in line: public_key = line.split()[1].encode('utf-8') print('Public key: {}'.format(public_key))
if is_valid_key(date, private_key, public_key): print() print('Lucky number: {}'.format(get_lucky_number( transaction_hash, private_key)))
|
|
|
Abbiamo scovato il problema.
Bene, son contento. alla fine il numero generato era comunque veramente causale
Cosa che purtroppo non potete dimostrare. tant'è che non ce ne siamo accorti subito nemmeno noi...
È questo che mi lascia basito: il fatto che abbiate attivato un servizio del genere senza verificare che i numeri generati (che sono il cuore del sistema) fossero corretti. Davvero sconcertante... detto questo se dovessimo rimborsare tutte le giocate perse (magari vincenti), allo stesso modo e di sicuro non potremmo riprenderci quelle vinte (magari perdenti).
Questo è chiaro. Però MtGox, quando il sito è stato craccato a causa delle scarse precauzioni che avevano preso, ha rimborsato di tasca propria i clienti danneggiati. Mi rendo conto che il capitale di cui disponete è una piccola frazione di quello di MtGox; per contro siete appena partiti, il bug è stato individuato quasi subito, e quindi anche gli eventuali rimborsi credo che sarebbero molto limitati. Potreste ad esempio pensare di destinare una parte dei vostri introiti per rimborsare i vostri utenti che ne facciano richiesta entro una data limite (una settimana, un mese, vedete voi); se non disponete oggi dei fondi necessari per soddisfare le richieste, potreste anche inviare i rimborsi fra qualche tempo: sempre meglio di niente. Ecco ora qualche mio appunto sulla trasparenza. Riguardo al problema che era stato posto in precedenza, ho visto che avete aggiunto questo paragrafo: SCOMMESSE MIN/MAX: Poichè c'è solo un limitato gruppo di fondi per le scommesse, c'è una puntata massima per ogni opzione di scommessa. La puntata massima cambia periodicamente.
Potreste magari aggiungere l'indicazione di cosa accade se qualcuno invia erroneamente una cifra al di fuori dei limiti imposti, per evitare ogni genere di sorprese. Nella pagina "Verification" va assolutamente aggiunto l'algoritmo preciso che usate per il calcolo del lucky number: manca sostanzialmente solo la combinazione di chiave e hash; meglio ancora se, in aggiunta, proponete un esempio che illustri tutto il processo, ricostruendo passo per passo una giocata. La frase "Oltre il 98% di probabilità di vincere" mi disturba profondamente, in quanto falsa e tendenziosa. Al contrario, c'è la certezza statistica di vedere intaccato il capitale giocato di quasi il 2%. Certo, detto così suona male, vero? Ci sarebbe un'altra cosa, ma la pagina in cui si trova è attualmente fuori servizio, quindi rimando l'osservazione ad un altro momento. Ciao!
|
|
|
Sul web troverai guide in quantità.
Ecco però quella più sintetica: non minare, non ne vale la pena.
Ciao!
|
|
|
Che domanda Ci sono diversi utenti che ne sanno un sacco. Comunque, di sicuro non sono io. Ciao!
|
|
|
Controlla i btc gli sono stati restituiti!
Sì, l'utente di cui sopra me l'aveva appena segnalato, e ringrazia. Vediamo ora di capire dove stava l'errore. Se fossi in voi, per il momento bloccherei il servizio: c'è il rischio che nei prossimi giorni vi arrivino un sacco di contestazioni per giocate vinte che erroneamente siano state considerate dal vostro programma perdenti. Ciao!
|
|
|
Direi che essendo ben scritto il bet max e il bet min quali sono a sbagliare è stato prima lui
Senz'altro. Resta il fatto che si tratta di un errore in cui si può incorrere molto facilmente, per cui ci si aspetta che venga gestito adeguatamente. cmq gli è stata restituita tutta la somma
Non mi sembra proprio: mancano 0,621 BTC. Come noto le transazioni Bitcoin sono pubbliche, e quindi chi mente viene immediatamente smascherato... Ora controllo la prova che hai fatto tu... sicuramente c'è un errore!
Spero anch'io di aver commesso qualche errore. A presto!
|
|
|
Ognuno faccia dei propri Bitcoin ciò che preferisce, ma finché non ci sarà una risposta esauriente da parte degli amministratori del sito, invito tutti alla massima prudenza: c'è il rischio concreto che i dadi siano truccati. Un utente su IRC che vuole restare anonimo rende noto inoltre un fatto imbarazzante: avrebbe fatto una puntata al di sopra del limite previsto (a suo dire era 5 BTC, ora è 7 BTC), e per questo inizialmente l'importo è rimasto bloccato. Segnalato il fatto agli amministratori via e-mail, dopo qualche ora gli è arrivata una transazione di rimborso. Ecco qui i movimenti sul suo conto: http://blockchain.info/address/1PKGhrRmTuxMyrh4iH68R5V7rheVvAaWQNProblema: lui aveva puntato 6,4 BTC, mentre gli sono stati rimborsati 5,779 BTC. Alla richiesta di spiegazioni, sempre via e-mail, gli è stato risposto che si erano tenuti un 10% di commissioni Ditemi voi se vi sembra un comportamento onesto, considerando che una transazione Bitcoin ha costo sostanzialmente nullo... Mi ha fatto notare, tra l'altro, che sul sito queste casistiche (transazioni al di fuori dei limiti previsti) non sono documentate. Riguardo la trasparenza personalmente avrei altre osservazioni da fare, ma prima spero che qualcuno degli amministratori del sito voglia rispondere punto per punto a quanto finora riportato. Grazie!
|
|
|
Grazie mille per la spiegazione, ma purtroppo c'è qualcosa che non quadra. Proviamo a ricostruire questa scommessa, presa a caso: Start GAME log
Date: 11.16.2012 Timestamp: Friday 16 - 21:14:48 hash: d9c8a227744f5b02f6b794b1460f996414c16b0a19d15b92d804f0b2bf12a3cf lessthan_game: 60000 Lucky number: 50467 Game Result: win Player address: 1K9h8NeLkCV4df8nQtGjhrFmpfY8GFV67B Game address: 1LuckyPnzCDiY5MbCotfzqr3yRb6GreAkX Wallet Balance: 785640664 Bet in satoshi: 100000000 Bet in BTC: 1 Win amount in satoshi: 108000000 Win in btc: 1.08 End GAME log
Start PAYOUT STATUS log
Status: Pending Message: tx_hash: Notice: End PAYOUT STATUS log
Il tizio ha scommesso 1 BTC di fare meno di 60000; probabilità di successo: 59999/65535=91,5526055%; in caso di vittoria, otterrà la sua puntata moltiplicata per 1,08, come documentato anche in questa pagina, ovvero 1*1,08=1,08 BTC. Quindi ha mandato 1 BTC all'indirizzo Bitcoin corrispondente a questa probabilità di successo (1LuckyPnzCDiY5MbCotfzqr3yRb6GreAkX); ecco qui la transazione. La chiave privata per ieri, ormai pubblicata qui, è 9cOwLNivF5BeKNgVuVDYqk6QTFCHnoFq9lt8TYYVBPH1jitPVFmtKD7xSEP2Vb3B; la chiave pubblica è dunque: $ echo -n 9cOwLNivF5BeKNgVuVDYqk6QTFCHnoFq9lt8TYYVBPH1jitPVFmtKD7xSEP2Vb3B | sha256sum 3596ee4f1244463f1d436c96c3366b043abb4bbfe1b28dc31bd936c7d1c9b431 -
Risulta coerente con quella pubblicata qui. A questo punto provo a combinare hash della transazione e chiave come da voi documentato: $ echo -n d9c8a227744f5b02f6b794b1460f996414c16b0a19d15b92d804f0b2bf12a3cf | openssl sha512 -hmac 9cOwLNivF5BeKNgVuVDYqk6QTFCHnoFq9lt8TYYVBPH1jitPVFmtKD7xSEP2Vb3B (stdin)= 41ab8e92e4608cec04f51c4d7e5d74bccaf4e3af5655591a4525816f423c3d004ebb98f2504da7c01061d1d18ee0f3eaa3acea20c555cc81312c8b53f90c7f18
Convertendo i primi quattro caratteri in un numero decimale, dovrei ottenere il lucky number: $ printf '%d\n' 0x41ab 16811
Come si può notare non è così, dato che 16811 != 50467. Spero di sbagliare io qualcosa, ma non capisco dove: anche provando con i tool online suggeriti il risultato è il medesimo. Grazie!
|
|
|
Ok, grazie, adesso inizia ad essere tutto più chiaro.
Mi resta da capire solo una cosa, ovvero come vengano combinate le 2 chiavi per ottenere il "lucky number".
Ciao!
|
|
|
Esiste la possibilità invece di aderire a pool con il proprio programma che gira ad esempio su un hosting? Magari uno script php con il quale mi unisco ai pool e in questo modo, anche se la generazione potrà essere bassa perchè si utilizza la CPU del server, sarebbe comunque senza spese di corrente elettrica. Si può fare un discorso del genere?
Con la CPU non ci tiri fuori assolutamente più niente. Credo che sia più probabile che ti caschi un fulmine in testa, piuttosto che tu riesca ad estrarre un blocco con la CPU. (se qualcuno ama il calcolo delle probabilità, potrebbe dilettarsi a tirar fuori qualche numero indicativo...) Con la difficoltà attuale, e sempre più nel prossimo futuro, l'unica strada per minare è quella di usare schede dedicate. Ciao!
|
|
|
Ciao, ti ringrazio per la risposta, ma non hai aggiunto molto rispetto a quanto presente sul sito... Ti assicuro che qualche base per capire ce l'ho, ed è per questo che ti chiedevo un esempio in forma algoritmica. L'uso chiave privata/chiave pubblica mi è chiaro, e lo trovo molto bello. appena invia 0.001 bitcoin a quell' indirizzo viene generata (come per qualsiasi transazione) un hash.
Come, esattamente? Il sistema così ha due variabili una fissa che la private key (cambia ogni giorno e il giorno dopo la puoi verificare) e una che cambia ogni volta cioè l'hash della transazione.
Mi interessa capire come viene generata la seconda. Ritornando all'esempio se il luckynumber è superiore a 64000 Pierino vince (cosa molto probabile 97.6563% che esca superiore) !
È il contrario, no? È molto più facile che esca casualmente un numero tra 0 e 64000 piuttostro che tra 64001 e 65535. Ciao!
|
|
|
Ho letto tutto quel che c'è sul sito, ma non mi è per niente chiaro l'algoritmo che utilizzate: potresti esplicitarlo?
Sarebbe anche utile un esempio di puntata vincente e perdente, sempre espressa in forma algoritmica.
Ciao!
|
|
|
|