Deterministische Zufallszahl mit Konsens im Netzwerk

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining


Echter Zufallszahlengenerator ist ein sehr komplexes Thema und scheint in der Blockchain noch herausfordernder zu sein. Einige der populären Glücksspiel-Dapps verwenden entweder eine deterministische Zahl basierend auf Block-Hash oder TRNG, beispielsweise basierend auf atmosphärischem Rauschen. Bei TRNG gibt es jedoch normalerweise einen Single Point of Failure – wie bei random.org

Mit lisk-sdk 2.3.6 gibt es nur eine sehr begrenzte Auswahl, um dieses Problem in der Art einer benutzerdefinierten Transaktion zu lösen, da zum Zeitpunkt der Ausführung von applyAssetgibt es keinen Zugriff auf den Blockspeicher und insbesondere keine Möglichkeit, die aktuelle Blocksignatur zu kennen, da dies vor der Blockgenerierung geschieht. Daher wird die benutzerdefinierte Transaktion nur noch für folgende Zwecke verwendet:
* Grundvalidierung von Transaktionseingaben
* Saldo vom Absenderkonto abziehen
* Geld an die Hauskasse überweisen
https://github.com/thepool-io/ldice/blob/master/dapp-src/actions/bet.js

Die Zeichenlogik wurde in die Standalone-Klasse verschoben
https://github.com/thepool-io/ldice/blob/master/dapp-src/logic/draw.js

Die Zeichnung wurde als Modul zusammengestellt, das das Ereignis abhört chain: blocks: change und verarbeiten Sie das Zeichnen dementsprechend kurz nach der Blockgenerierung, was bedeutet, dass die Zufallszahl auf der neuesten Blocksignatur basieren kann, ohne darauf zu warten, dass die nächsten Blöcke gekoppelt werden, und dass der Angreifer nur sehr wenig Zeit hat, die Zeichnungsergebnisse zu manipulieren. Die einzige Möglichkeit, einen Delegierten zu fälschen, besteht darin, verschiedene Transaktionen in den Block aufzunehmen, um die Blockunterschrift und damit die gewürfelte Nummer zu ändern. Es gibt immer die Option, die gewürfelte Zahl auf Hashes aus mehreren Blöcken zu basieren. Dies hat jedoch den Nachteil, dass sich das Ergebnis des Einsatzes verzögert.

Das Ziehungsmodul schreibt auch die Wettergebnisse auf die Absenderkonten, aktualisiert den Kassenbestand entsprechend und verteilt die Belohnungen an die glücklichen Absender. Tresury ist der Adresse zugeordnet 0L.
https://github.com/thepool-io/ldice/blob/master/dapp-src/modules/roll/drawing.js

Die gewürfelte Zahl ist jetzt deterministisch und basiert auf (Transaktionssignatur + aktuelle Blocksignatur), um zu erreichen, dass wir die npm-Bibliothek verwendet haben prando. Es verwendet Xorshift basierend auf der Triplett-Kombination (13, 17, 5) von George Marsaglia.

Rauschkarte von Prando Autor vorbereitet. Es zeigt keine offensichtlichen sichtbaren Muster.

Der nächste Schritt für uns mit ldice besteht darin, den maximalen Gewinn basierend auf den Treasury-Beständen und dem Boostrap-Testnetz zu implementieren und sicherzustellen, dass böswillige Delegierte beim Versuch, die Regeln des Zeichnungsmoduls zu ändern, nachgeben. Theoretisch kann jeder Knoten die Datenbank jederzeit ändern und Transaktionen ohne das erforderliche Kontostand übertragen. Ehrliche Knoten lehnen diese Transaktion jedoch ab.

Ich möchte mich bei Corbifex vom Moosty-Team, einigen der LiskHQ-Entwickler und einigen Mitgliedern der Lisk-Community für ihre Zeit, ihren Aufwand und ihren Code bedanken.

Wenn Sie daran interessiert sind, sich testnet anzuschließen und uns bei der Entwicklung des schnellsten und dezentralsten Rollenspiels mit lisk-sdk zu helfen, schließen Sie sich unserem Link zum Öffnen der Discord-Einladung an

Folge uns auf Twitter: https://twitter.com/IoThepool

Prost
Das Pool-Team

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close