This question has been asked on here multiple times with a solution yet to be solved. Its stumped me and I cant figure it out. So how could i achieve this effect using only sprites?
the logic behind it is quite intense and anyone willing to give it a try will probably have a hard time.
they have all start a distance away from each other and then come back at a certain speed until they are on the object the started from? its confusing.

I think this would be pretty easy to achieve I could be wrong but perhaps not 
I would start by making these sprites and placing them in the scene and parenting them to the character and have them start out disabled.
Then as the player gains speed turn them on and have each one lerp to its new position behind the player.
ghost3Position.x = transform.parent.position.x - 3;
Once the lerping is done on the x axis all you have to do now is lerp the y axis when the player jumps or falls and the ghost will stay the correct distance away because he’s parented.
Do this for all the ghosts but with different distances. Change the animations of the ghosts to match the character controller of the player. To make the sprites just copy all of the sprites of the character that you want to be able to have a ghost and run some filters on them through photoshop or do whatever.
As the player loses speed reverse the first lerp by lerping to the players position and not the players position - how far the ghost should be.
I haven’t tried doing this but it sounds pretty easy and very much like making a smooth tracking camera. Hope this helped.
@tomtominc
I’ve uploaded a package to the Unity asset store to let you do that, and more; you can also configure the Materials associated with each piece of the trail, and the spacing in between the ghosts.
Ghost Sprites 2D | Animation Tools | Unity Asset Store
Hope you like it!