Cftral Posted February 13, 2021 Share Posted February 13, 2021 Hallo zusammen, ich Frage mich aktuell für ein kleines Projekt an dem ich gerade sitze, ob alle Coins eine kleinste Einheit haben. Beim Bitcoin ist die kleinste Einheit z.B. 0,00000001 also sind 1 BTC = 100'000'000 Satoshis. Bei Ether hingegen sind 18 Nachkommastellen möglich, also wäre die kleinstmögliche Einheit 0,000000000000000001 ETH Ist das bei allen Coins so, dass es eine kleinste mögliche Einheit gibt und gibt es da eine Zentrale Seite wo ich nachlesen kann wie klein diese ist? Link to comment Share on other sites More sharing options...
Anevay Posted February 13, 2021 Share Posted February 13, 2021 (edited) vor 38 Minuten schrieb Cftral: Beim Bitcoin ist die kleinste Einheit z.B. 0,00000001 also sind 1 BTC = 100'000'000 Satoshis. Nein, auch bei Bitcoin sind beliebig viele Nachkommastellen möglich. Nur halt nicht in der Blockchain, was auch (derzeit) überhaupt keinen Sinn macht. Aber auch die Blockchain ließe sich problemlos anpassen um auch Mikro-Satoshis in Transaktionen ausweisen zu können. Und ja, alle Blockchains haben eine "kleinste" und eine "größte" Einheit, denn ein "unendlich" ist in der Informatik nicht ohne Weiteres abbildbar. Eine zentrale Stelle wird es kaum geben, weil es überhaupt keinen Sinn macht. Sobald Bedarf für kleinere Einheiten ist, dann werden diese auch implementiert. Edited February 13, 2021 by Anevay 1 1 1 Link to comment Share on other sites More sharing options...
MixMax Posted February 13, 2021 Share Posted February 13, 2021 (edited) vor 59 Minuten schrieb Cftral: Hallo zusammen, ich Frage mich aktuell für ein kleines Projekt an dem ich gerade sitze, ob alle Coins eine kleinste Einheit haben. Beim Bitcoin ist die kleinste Einheit z.B. 0,00000001 also sind 1 BTC = 100'000'000 Satoshis. Bei Ether hingegen sind 18 Nachkommastellen möglich, also wäre die kleinstmögliche Einheit 0,000000000000000001 ETH Ist das bei allen Coins so, dass es eine kleinste mögliche Einheit gibt und gibt es da eine Zentrale Seite wo ich nachlesen kann wie klein diese ist? Ich kenne zwar nicht alle Coins, beziehe mich aber mal auf die Möglichkeiten für Zahlenformate in der Informatik. Theroetisch gibt es bei Reellen Zahlen unendlich viele Zahlen zwischen jeder Zahl. Praktische Zahlenformate können diesen Zahlenraum aber natürlich nicht abbilden. Daher gibt es in jedem Zahlenformat der Informatik eine kleinste und größte Zahl. Alle Krypto-Coins die auf der derzeitigen Computer-Technik basieren, müssen sich dieser Gesetzmäßigkeit unterordnen. Edited February 13, 2021 by MixMax 1 Link to comment Share on other sites More sharing options...
Anevay Posted February 13, 2021 Share Posted February 13, 2021 vor einer Stunde schrieb Cftral: ich Frage mich aktuell für ein kleines Projekt an dem ich gerade sitze, ob alle Coins eine kleinste Einheit haben. Was für ein Projekt ist das denn? Kleiner Ausblick in die Zukunft: Früher mussten wir Musik live hören. Es gab keine Tonträger. Später konnten wir Musik auf Tonträgern speichern und sie immer dann abhören wenn wir das wollten. Noch später kam das Streaming. Wir müssen keine Tonträger mehr bei uns haben sondern erhalten die Musik wann immer wir Musik hören wollen. Analogie dazu: Früher mussten wir Goldstücke in Säckchen mit uns herum tragen und verstecken. Später gab es Banküberweisungen. Wir haben Geld erhalten wenn wir einen Monat lang dafür arbeiteten. Auch heute ist vieles im Monats-Rhythmus: Miete, Lohn, Rente, Strom, Gas, Wasser. Noch später werden wir dann bezahlen wenn wir es nutzen. Wir lassen das Wasser laufen und zack, wird uns direkt das Geld aus der Wallet abgebucht. Ist die Wallet leer, dann gibt es kein Wasser mehr, aus. Keine Schulden. Gleiches bei Strom: Wenn Geld alle, dann kein Strom mehr. Und auch bei unserem Einkommen wird es das Streaming geben. Nachwächter werden für ihre Anwesenheit stetig bezahlt. Während der Arbeitszeit klingelt die Kasse. Außerhalb der Arbeitszeit nicht. Lohnarbeiter werden direkt für jedes fertige Stück bezahlt welches die Qualitätskontrolle erfolgreich passierte. Genau für diesen Fall braucht es extrem kleine Währungseinheiten. Dieses "Money-Streaming" wird jedoch nicht über die Blockchain geschehen sondern auf Sidechains oder auf 2nd-Layern über entsprechende Payment-Provider. Und genau hier setzt Bitcoin-Lightning an. Damit lässt sich dieses Streaming in "kleineren" Zeiteinheiten durchführen. Link to comment Share on other sites More sharing options...
Cftral Posted February 13, 2021 Author Share Posted February 13, 2021 (edited) vor 40 Minuten schrieb MixMax: Ich kenne zwar nicht alle Coins, beziehe mich aber mal auf die Möglichkeiten für Zahlenformate in der Informatik. Theroetisch gibt es bei Reellen Zahlen unendlich viele Zahlen zwischen jeder Zahl. Praktische Zahlenformate können diesen Zahlenraum aber natürlich nicht abbilden. Daher gibt es in jedem Zahlenformat der Informatik eine kleinste und größte Zahl. Alle Krypto-Coins die auf der derzeitigen Computer-Technik basieren, müssen sich dieser Gesetzmäßigkeit unterordnen. @Anevay Danke, der Hintergrund meiner Frage ist folgender: Ich möchte zu lernzwecken eine kleine Anwendung schreiben um realisierte Gewinne/Verluste zu tracken und im Blick zu behalten wann ich die 1 Jahr Haltefrist für steuerfreie Verkäufe erreicht habe. Ich stehe jetzt vor der Entscheidung ob ich die Coin Anzahl als Integer (z.b.) big Int speichere, dann müsste ich aber für alle Coins Definieren was je der kleinst mögliche Anteil ist. Oder ich speichere und verwende die Werte direkt wie sie sind mit Nachkommastellen. Da befürchte ich im Umgang aber Probleme mit Rundungsfehlern und müsste auch da für effizientes speichern die potentiell möglichen Nachkommastellen im Hinterkopf behalten. Edited February 13, 2021 by Cftral Link to comment Share on other sites More sharing options...
Anevay Posted February 13, 2021 Share Posted February 13, 2021 vor 3 Minuten schrieb Cftral: Oder ich speichere und verwende die Werte direkt wie sie sind mit Nachkommastellen. Da befürchte ich im Umgang aber Probleme mit Rundungsfehlern und müsste auch da für effizientes speichern die potentiell möglichen Nachkommastellen im Hinterkopf behalten. Double weil du mit nur 8 signifikanten Stellen definitiv nicht hinkommst, das müssen 15 mindestens sein. Link to comment Share on other sites More sharing options...
MixMax Posted February 13, 2021 Share Posted February 13, 2021 (edited) vor 7 Minuten schrieb Cftral: Danke, der Hintergrund meiner Frage ist folgender: Ich möchte zu lernzwecken eine kleine Anwendung schreiben um realisierte Gewinne/Verluste zu tracken und im Blick zu behalten wann ich die 1 Jahr Haltefrist für steuerfreie Verkäufe erreicht habe. Ich stehe jetzt vor der Entscheidung ob ich die Coin Anzahl als Integer (z.b.) big Int speichere, dann müsste ich aber für alle Coins Definieren was je der kleinst mögliche Anteil ist. Oder ich speichere und verwende die Werte direkt wie sie sind mit Nachkommastellen. Da befürchte ich im Umgang aber Probleme mit Rundungsfehlern und müsste auch da für effizientes speichern die potentiell möglichen Nachkommastellen im Hinterkopf behalten. Wo holst du die Werte her? Auf dessen Plattform müssten die Coins ja auch in irgendeinem Format (einheitlich) gelistet sein. Nimm doch einfach das Format, welches die Plattform dort auch hat. Edited February 13, 2021 by MixMax Link to comment Share on other sites More sharing options...
Cftral Posted February 13, 2021 Author Share Posted February 13, 2021 (edited) vor 6 Minuten schrieb Anevay: Double weil du mit nur 8 signifikanten Stellen definitiv nicht hinkommst, das müssen 15 mindestens sein. Wenn meine Informationen Stimmen hätte ich da bei Ethereum mit 18 möglichen Nachkommastellen schon ein Problem. vor 5 Minuten schrieb MixMax: Wo holst du die Werte her? Auf dessen Plattform müssten die Coins ja auch in irgendeinem Format (einheitlich) gelistet sein. Nimm noch einfach das Format, welches die Plattform dort auch hat. Aktuell aus Bitpanda, da ist alles in Nachkommastellen angegeben, aber die Plattform könnte sich in Zukunft jederzeit ändern. Auch könnte das intern genutze format bei den Plattformen von dem angezeigten abweichen Edited February 13, 2021 by Cftral Link to comment Share on other sites More sharing options...
MixMax Posted February 13, 2021 Share Posted February 13, 2021 (edited) vor 15 Minuten schrieb Cftral: Wenn meine Informationen Stimmen hätte ich da bei Ethereum mit 18 möglichen Nachkommastellen schon ein Problem. Aktuell aus Bitpanda, da ist alles in Nachkommastellen angegeben, aber die Plattform könnte sich in Zukunft jederzeit ändern. Auch könnte das intern genutze format bei den Plattformen von dem angezeigten abweichen Das nim einfach "String" und konvertieren dann in ein Format, welches von der Genauigkeit für alle Coins mehr als ausreicht. Z.B. Big-Integer String, weil String als Text immer lesbar sein sollte. Rundungsfehler bekommst du ja immer nur auf die letzte Stelle. Wenn die letzten 5 Stellen z.B. eh nicht mehr benötig werden, kannst du sie dann einfach abschneiden. Beispiel: 1.12515112 als Quelle Convertierst du nach: 0.1251511200000000 Und schneidest dann die letzte Null ab: 0.125151120000000 Edited February 13, 2021 by MixMax Link to comment Share on other sites More sharing options...
Anevay Posted February 13, 2021 Share Posted February 13, 2021 vor 36 Minuten schrieb MixMax: Beispiel: 1.12515112 als Quelle Convertierst du nach: 0.1251511200000000 Und schneidest dann die letzte Null ab: 0.125151120000000 Wo bleibt die erste „1“? Warum nicht einfach „Double“? Link to comment Share on other sites More sharing options...
MixMax Posted February 13, 2021 Share Posted February 13, 2021 (edited) vor 26 Minuten schrieb Anevay: Wo bleibt die erste „1“? Warum nicht einfach „Double“? Ja, hab ich vergessen, die "1". Keine Ahnung ob "Double" reicht, kann sein, weis ich jetzt nicht. Ehrlich gesagt hab ich das Thema auch nur überflogen und jetzt nicht soo genau drüber nach gedacht, weil ich auch die benötigten Nachkommastellen für diverse Coins gar nicht kenne. Wenn man jetzt diverse Coins mit 0,0000000000000123 mit einbezieht (Will ja keine Namen nennen ) wird es schwierig. Dann bleibt (falls Double nicht reicht) wohl wirklich nur Big-Integer, etc. Edited February 13, 2021 by MixMax Link to comment Share on other sites More sharing options...
PeWi Posted February 13, 2021 Share Posted February 13, 2021 25 minutes ago, Anevay said: Warum nicht einfach „Double“? Weil der OP schrieb: 1 hour ago, Cftral said: Da befürchte ich im Umgang aber Probleme mit Rundungsfehlern Link to comment Share on other sites More sharing options...
PeWi Posted February 13, 2021 Share Posted February 13, 2021 2 hours ago, Anevay said: auch bei Bitcoin sind beliebig viele Nachkommastellen möglich Aber nur als 2nd Layer-Lösung. (Auf der Originalchain wäre das ein extrem heftiger Hardfork, der quasi alles umkrempeln müsste.) Link to comment Share on other sites More sharing options...
Philbert Posted February 13, 2021 Share Posted February 13, 2021 Mehr als 8 Nachkommastellen hab ich bei Börsen Imports noch nicht gesehen. Link to comment Share on other sites More sharing options...
Anevay Posted February 13, 2021 Share Posted February 13, 2021 Wie "schlimm" wird bei 15 signifikanten Stellen der Rundungsfehler wohl sein? Link to comment Share on other sites More sharing options...
MixMax Posted February 13, 2021 Share Posted February 13, 2021 vor 1 Minute schrieb Anevay: Wie "schlimm" wird bei 15 signifikanten Stellen der Rundungsfehler wohl sein? Sicherlich nicht schlimm, die Frage ist nur ob ein Rundungsfehler für das was er machen will akzeptabel ist. Wenn z.B. ein Datensatz gehasht wird, ist bei einem Rundungsfehler, sei er noch so klein, der Hash, dann anders. (ist nur nen Beispiel) 1 Link to comment Share on other sites More sharing options...
Philbert Posted February 13, 2021 Share Posted February 13, 2021 vor 2 Stunden schrieb Anevay: Noch später werden wir dann bezahlen wenn wir es nutzen. Wir lassen das Wasser laufen und zack, wird uns direkt das Geld aus der Wallet abgebucht. Ist die Wallet leer, dann gibt es kein Wasser mehr, aus. Keine Schulden. Gleiches bei Strom: Wenn Geld alle, dann kein Strom mehr. Und auch bei unserem Einkommen wird es das Streaming geben. Nachwächter werden für ihre Anwesenheit stetig bezahlt. Während der Arbeitszeit klingelt die Kasse. Außerhalb der Arbeitszeit nicht. Lohnarbeiter werden direkt für jedes fertige Stück bezahlt welches die Qualitätskontrolle erfolgreich passierte. Wieso wird das so kommen und wer würde das wollen? Link to comment Share on other sites More sharing options...
skunk Posted February 13, 2021 Share Posted February 13, 2021 Schau mal hier: https://mikemcl.github.io/bignumber.js/ Das ist der Datentyp, den man für den Umgang mit Ethereum nimmt. Link to comment Share on other sites More sharing options...
Philbert Posted February 13, 2021 Share Posted February 13, 2021 vor 52 Minuten schrieb MixMax: Wenn z.B. ein Datensatz gehasht wird, ist bei einem Rundungsfehler, sei er noch so klein, der Hash, dann anders. (ist nur nen Beispiel) Auch bei 5 Billionen Nachkommastellen hast du am Ende einen Rundungsfehler wenn irgendwo dividiert wird. Es muß also immer gerundet werden. Und dann kann man sich doch einfach am kleinsten sinnvollen Wert (in FIAT) orientieren. Es geht ja um Gewinne und Verluste. Ich wüsste nicht wozu man da mehr als 10 Nachkommastellen benötigen würde. 1 Link to comment Share on other sites More sharing options...
PeWi Posted February 13, 2021 Share Posted February 13, 2021 23 minutes ago, Philbert said: Auch bei 5 Billionen Nachkommastellen hast du am Ende einen Rundungsfehler wenn irgendwo dividiert wird. Es muß also immer gerundet werden. Muss bei der Guthabenverwaltung durch eine Blockchain überhaupt dividiert werden? Reichen da nicht Addition und Subtraktion? 1 Link to comment Share on other sites More sharing options...
skunk Posted February 13, 2021 Share Posted February 13, 2021 vor 23 Minuten schrieb Philbert: Und dann kann man sich doch einfach am kleinsten sinnvollen Wert (in FIAT) orientieren. Was kostet ein Tropfen Benzin? Nichts? Dann tropfen sie mir bitte den Tank voll..... Nein FIAT reicht nicht aus. Welchen Wert hat ein wei und ein sat? Beides kann man nicht in FIAT angeben und einfach runden und trotzdem kann man Millionär werden obwohl der Wert so viele Nachkommastellen hat. Kleinvieh macht halt auch Mist vor allem wenn man eine ausreichende Menge davon hat. Link to comment Share on other sites More sharing options...
Philbert Posted February 13, 2021 Share Posted February 13, 2021 (edited) vor einer Stunde schrieb skunk: Was kostet ein Tropfen Benzin? Nichts? Dann tropfen sie mir bitte den Tank voll..... Nein FIAT reicht nicht aus. Welchen Wert hat ein wei und ein sat? Beides kann man nicht in FIAT angeben und einfach runden und trotzdem kann man Millionär werden obwohl der Wert so viele Nachkommastellen hat. Kleinvieh macht halt auch Mist vor allem wenn man eine ausreichende Menge davon hat. Aber nicht bei dieser Aufgabenstellung. Zusatz: Du kannst ja mal grob überschlagen wieviele Milliarden ETH Trades du machen müsstest um bei 17 statt 18 Nachkommastellen du am Ende 1 Cent Ungenauigkeit aufsummiert bekommen würdest. Edited February 13, 2021 by Philbert Link to comment Share on other sites More sharing options...
skunk Posted February 13, 2021 Share Posted February 13, 2021 vor 4 Minuten schrieb Philbert: Aber nicht bei dieser Aufgabenstellung. Den korrekten Datentyp habe ich oben verlinkt. Bei Nutzung dieses Datentyps hat man das Rundungsproblem nicht mehr. Warum dann also irgendwas anderes nehmen wenn die Lösung doch schon vorhanden ist? Link to comment Share on other sites More sharing options...
Philbert Posted February 13, 2021 Share Posted February 13, 2021 vor 3 Minuten schrieb skunk: Den korrekten Datentyp habe ich oben verlinkt. Bei Nutzung dieses Datentyps hat man das Rundungsproblem nicht mehr. Warum dann also irgendwas anderes nehmen wenn die Lösung doch schon vorhanden ist? Weil es nicht nötig ist? Siehe mein Edit oben. Link to comment Share on other sites More sharing options...
skunk Posted February 13, 2021 Share Posted February 13, 2021 vor 4 Minuten schrieb Philbert: Weil es nicht nötig ist? Siehe mein Edit oben. Das war in der Informatik noch nie eine sinnvolle Begründung. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now