Categories
All Feature Story

How A Block Is Born

This is a chat snippet between TurtleCoin Developer Bebop and Atakor, from a time when Atakor asked about how blocks are formed. Bebop gave a great description, and recently Hai brought it to my attention that it never got posted. I felt it was best to leave it raw and unedited, so excuse any LOL’s or spelling mistakes please. Thanks Hai for bringing this to my attention.

image credit: Malware Bytes

Atakor-01/16/2018

this is not really offtopic but i don’t want to pollute general and interupt the ongoing discussion: how are transactions validated in cryptocurrencies, specifically PoW ones?

Bebop van Saberhagen-01/16/2018

well in a nutshell laymen’s terms each block is a hash of the previous block and some digital signature information from the sender and the solution to the PoW and the miner

it uses cryptographic key pairs so that it’s basicalyl pretty easy to verify the validity using the public keys — where it’s computationally difficult to try to reverse the private keys used to sign all the information

Atakor-01/16/2018

so noone has to do anything “manually” to verify transactions

everything is automated

Bebop van Saberhagen-01/16/2018

correct

Atakor-01/16/2018

mining = generating coins + validating transactions

Bebop van Saberhagen-01/16/2018

yeah so it’s like this

Atakor-01/16/2018

k great, thanks, i’ll check all the technical details on how it’s done later

Bebop van Saberhagen-01/16/2018

the blockchain is just a ledger right

Atakor-01/16/2018

i’m curious but never took the time to really understand the whole thing

yep it is

Bebop van Saberhagen-01/16/2018

well first let me ask you this

do you know what a hash is?

Atakor-01/16/2018

yes

Atakor-01/16/2018

was going to say, i’m a computer science graduate just didnt take time to read the details on how the whole thing works

i understand everything on a superficial level

Bebop van Saberhagen-01/16/2018

ok awesome

just don’t want to explain stuff you already know

Atakor-01/16/2018

yeah ofc

Bebop van Saberhagen-01/16/2018

ok so think of it like this

let’s say we’re a group of friends and we create a currency. we agree there are 100 units of fartcoin there’s 10 of us in the group and we all put it in 10 bucks in a pot and say our 100 units of fartcoin are worth the 100 dollars in the pot…

now we decide instead of printing out or making physical tokens for this currency we’re Bebop van Saberhagen-01/16/2018

ok so we say any time anyone transacts, the transaction isn’t official unless the spreadsheet is updated.

so we agree that @Atakor is going to keep up with the spreadsheet and so any time anyone does a transaction they get you to update the record. now you’re the central authority

this is bad because you could lie, for your own benefit or just because. you could get overwhelmed and fall behind or become unreliable

you could try to game the system in less apparent ways like delaying transactions in a way that gives you some advantage

Atakor-01/16/2018

Satoshi Nakamoto, ladies & gents
this is valuable text for beginners, i wonder if you can put it somewhere not to be lost

just goign to do it virtually

but we need a way to track the transactionso f this virtual currency right

so that you don’t sell your 10 worth to me and then tell someone else you still have it and sell it to them (double spend)

and so that once i buy 5 from you and 5 from john, now i i have 20

right

Atakor-01/16/2018

oh

i think i know all of this actually

Bebop van Saberhagen-01/16/2018

so we say ok we’ll make a spreadsheet

Atakor-01/16/2018

don’t want you to go too deep

to basic i mean

i know how the tech works more or less

Bebop van Saberhagen-01/16/2018

don’t worry i’m gonna round it out to pOw niceley here in a sec

PoW

lol

Atakor-01/16/2018

just was confused about the validating transactions part

Bebop van Saberhagen-01/16/2018

other people might be reading this

Atakor-01/16/2018

ok cool

oh yeah that’s true!

Bebop van Saberhagen-01/16/2018

ok so we say any time anyone transacts, the transaction isn’t official unless the spreadsheet is updated.

so we agree that @Atakor is going to keep up with the spreadsheet and so any time anyone does a transaction they get you to update the record. now you’re the central authority

this is bad because you could lie, for your own benefit or just because. you could get overwhelmed and fall behind or become unreliable

you could try to game the system in less apparent ways like delaying transactions in a way that gives you some advantage

Atakor-01/16/2018

Satoshi Nakamoto, ladies & gents

this is valuable text for beginners, i wonder if you can put it somewhere not to be lost

Bebop van Saberhagen-01/16/2018

so we say ok that won’t work we want a distributed situation. so we set up a group email and say now, for a transaction to be official, you send a message to the whole group and then everyone updates their own copy of the spreadsheet

Atakor-01/16/2018

and to be easily accessible(edited)

Bebop van Saberhagen-01/16/2018

but now we have a few new issues

sycnrhonization

what if everyone doesn’t see the message and update at the same time. what if soem people never get some messages, etc

and how do we know the update messages we’re receiving are legitimate

so there’s two elements to this

the first is hashing and encryption. every transaction record is just data so we can hash that, and we can hash that with the previous records. so the sender of the transaction basically does a signed hash of that and that basically gives a sequence of hashes that can be computationally verified and have mathematical guarantees of correctness and crytographic validity

now the 2nd part is consensus. how do we get everyone synced and agreeing on the same sequence of hashes

so the way we get consensus with PoW is we say ok. we’ll do updates on a sort of time interval

and for every single round, 1 random person gets to be the one to update the transactions, and that person signs it with his/her signature and then everyone gets that one as their copy

so how do we choose a random person? we don’t. we do a number guessing game, but it’s not just a simple number guessing game, it’s a hashing game

you gotta guess a number and then carry out computations on it to see if it produces the target number

and whoever guesses it first tells everyone ‘hey i got it!’ and then he can provide the solution — that is computationally easy to verify but computationally difficult to guess

think of it like a set of keys and a lock

100 billion keys or something

and you gotta go through one by one and find the right key for the lock

but once you do, it’s easy for people to insert it into the lock and verify that it opens

sorta like that, via hashing

so you if you guess that round, you tell everyone, and basically if majority quickly verifies and agrees with you, 51% or more, that’s the blockchain now

but what if no one guesses in a round?

well instead of an actual fixed time, we say a round is whenever someone finds the solution

and then we say instead of having to guess the exact number, we say you have to be within a range. and the higher the difficulty, the narrower that range, and we adjust the difficulty each round tryign to target a certain timeframe

in turtlecoin that timeframe is 30 seconds

so each round is not exactly 30 seconds but if there is more hash power then they’re gonna solve it faster and the algorithm is going to increase difficutly on subsequent rounds

and because each round takes time + computational work (hardware + electrical costs) we give a payout — a portion of our virtual currency — for solving the round to incentivize this number guessing and verifying (which we call mining) and because it is incentivized, multiple people participate and invest resources making it hard for a single entity to maintain majority by itself

now instead of a few people starting by putting money in a pot, we just say the only way a unit of this currency can be put into circulation is by mining it

the ledger starts at 0 for everyone

how was that? how’d i do?

Atakor-01/16/2018

your explanation skills are top notch

i wouldn’t have been able to formulate it as clearly and in such a continuous way

Bebop van Saberhagen-01/16/2018

thanks

once everything is a sequence of numbers now you see how the verification is automated

so in theory i cuold tap you on the shoulder and say hey, fuck @RockSteady Nakamoto , we’re gonna make up some false transactions and send all his coins to us, even tho we don’t know the valid keys for that we’re just gonna accept it as truth(edited)

there we go

and you say yeah, definitely let’s do it

and we just agree on the fake transaction

well problem is, we’re not gonna be able to get 51% of the people to agree probably with an invalid transaction

and becuase each block is a hash of the previous

Atakor-01/16/2018

51% is 51% of the hashing power right?

Bebop van Saberhagen-01/16/2018

every subsequent transaction would be invalid

yeah you can put it in those terms too as hashing power

now there have been cases when that has happened (ethereum)

but not everyone agreed. they forked

Atakor-01/16/2018

or mining power should i say (de-hashing, finding the hash)

Bebop van Saberhagen-01/16/2018

those kinds of forks can easily happen. sometimes the fork doesn’t maintain interest/value and dies or staggers along and sometimes it does well. blockchains can fork for a number of reasons

that’s where you get bitcion and bitcoin cash and what not

blockchain forks may or may not come with some software or protocol changes, but one can also deploy new blockchains with the same software and protocols or with different software and protocols

Atakor-01/16/2018

(check PM pls)

as i told you, this explanation is valuable, you might want to save it somewhere

hai-01/16/2018

@Bebop van Saberhagen as a non-cs graduate I found that very informative this should be on turtlecoin.lol or the welcome channel as a pinned message

Categories
All Feature Story

Big Turtles Get Stuck!

To put it in simple terms, there’s an issue we’re running across out in the wild and figured it would be best to get ahead of it and keep the community aware of what is going on, and a possible solution while we address the issue.

A whale-turtle struggles to rebroadcast his transaction.

We’ve noticed that sending large transactions (2,000,000+ TRTL) can sometimes get a little hairy, because your wallet will notify both sides of the transaction that a transaction has been broadcast, but the transaction never gets confirmed, or included in a block. This ends with the transaction getting stuck, and after 1–21 days, cancelling.

Normally this is fine.

In Bitcoin and other networks, these stuck funds return to your wallet after some days of not being processed, (they never really left), and you’re able to resume spending. In our case, however, and at least when it has happened to me, the funds remain stuck, and then when the transaction cancels, the wallet software still interprets these funds as attempting to be double-spent, like a US dollar hot off the photo-copier machine.

What’s the problem?

When someone creates a transaction with qualities that make it unsuitable to be processed, it cannot be included in a block easily or quickly. Similar to bitcoin, if you send a large amount of coins with no fee or very little fee, they can sit in the transaction pool until blocks expand to fit the extra size of the transaction into a block.

A good rule of thumb is to use 100 TRTL fee for every 1,000,000 TRTL you send, . If you’re sending less than a million, a fee of 10 or less is fine.

What’s The Solution?

For now, if you have to send a large transaction, split your transaction up into a few chunks of 500,000 TRTL, and if you don’t need the extra transactional privacy, you’ll increase your luck of not getting stuck by using a 10+ mixin for now until a fix is released. Confirmation time is fast on the network, there is no reason to send a large amount of coins all at once and expect it to clear easily.

For the nerds, or people who enjoy a more technical assessment of the situation: https://github.com/forknote/cryptonote-generator/issues/54

Categories
All Feature Story

One Trillion Turtles: Coin Supply and Unit Economics

a wild TRTL appears!

Out of everything we get asked the most, and probably the biggest criticism, we, as a project, receive, is..

“Gee, a trillion coins.. That’s a lot of coins, are you sure that’s a good idea? Nobody would ever list that, the value is too low.”

The first time someone raised that argument, I’ll admit I was impressed, which faded to disappointment, but then ultimately I settled for excited, because I knew I’d get many chances over the following weeks to explain why TurtleCoin was built this way. This article is a summary of our rebuttal for why there are so many TRTL to be generated.

Let’s talk about supply.

When we say “coins” or “total supply” or “total TRTL”, what we mean is that there are1,000,000,000,000.00 TRTL planned to be emitted over the lifetime of the network. That’s 1 Trillion total TurtleCoins. You might ask, “what about the “total supply” of some of the most popular coins out there?

BTC ~21,000,000 (lifetime)

LTC — 84,000,000 (lifetime)

ETH ~97,883,120.97 (currently)

TRTL — 1,000,000,000,000 (lifetime)

IOTA — 2,779,530,283,277,761 (lifetime)

When we say “units” or “divisible units” or “shells” or “turtle cents”, we are talking about the two numbers after the decimal, which are the smallest 0.01 pieces of TRTL that can be made. So when removing the decimals, we get the following amounts of units:

TRTL — 100,000,000,000,000

BTC ~ 2,100,000,000,000,000 Satoshis

IOTA — 2,779,530,283,277,761 IOTA

LTC — 8,400,000,000,000,000 Photons

ETH — 97,879,990,190,000,000,000,000,000 Wei

According to my googling of these figures, you’ll notice TRTL has a number of units far lower than the others surrounding it.

I’m going to use this new-found knowledge to one-up my friends and feel superior to my acquaintances!

So what’s all the fuss about? Why did we choose to even have a decimal place, instead of having bigger unit groups like kTRTL’s or something?

It’s really just a psychological thing. We didn’t intend to make it this way, it’s just a response to how humans think; there is still a large vocal majority of new and inexperienced people who say “Bitcoin is too expensive, I’ll never be able to buy it” and that mentality will probably never be changed.

Conversely, there is an equal amount of uninitiated users that find the amount of digits to the right of the decimal place off-putting and hard to grasp. This way of thinking about numbers when it comes to money, frankly, has very little chance of changing for these two groups of people, and that’s okay.

Part of getting new users is about meeting them in the middle. That means giving them numbers and systems that are familiar and relatable to them.

So, while we know and acknowledge that the decimal placing doesn’t matter, why don’t we put it somewhere that makes everyone feel good, in a place where shoppers can do the math easily in their heads, and miners can realize an adequate return on a day’s work mining.

I think ultimately this will serve us better from a new-user‘s ’perspective.

If you have ideas you’d like to contribute, please leave them as a response below, or join us in the Discord Chat

— —

If you want to know more about what TurtleCoin is, http://turtlecoin.lol

If you want to start mining TurtleCoin, http://mining.turtlecoin.lol