wireshark packet analysis missing checksum in version msg

I’m trying to send a raw bitcoin transaction through a raw socket connection in python. To debug I’m using wireshark to sniff the packets.

Wireshark figures out that the packet is for Bitcoin and that it’s a ‘version’ message, and gets the first couple fields right, but then neglects the checksum field and instead assigns what should be the checksum to the protocol version, throwing everything else off. I can’t seem to get to the bottom of it.

Other message types, like ‘tx’, include the checksum but have other issues (I’ll get to later). Any ideas why wireshark isn’t picking up on the checksum for the version message?

Who are Alice and Bob?

Simply: who are Alice and Bob, and why are they mentioned in every Bitcoin-related article I read about that talks about Bitcoin transactions?

What is the history or mystery of these two?

How do you get a Bitcoin Public Key from a Private Key

How do I, in extreme specificity, convert a given private bitcoin key into a public bitcoin key (Talk to me like I’m 5 and I have to do this step by step or the evil witch will cook me alive in her oven). NOT where can I find a program that will do this, but if I were to do it myself, what would I do?

Private Key:


supposedly results in the public key:


Others have asked how to get private to public, I haven’t seen a really specific answer, just more general direction, but no answers explain all the variables. I understand this is rather complex and if a given individual thinks its too much work to answer, I totally respect that. Note: I do not care for the Bitcoin Address, just interested in Privatekey to Publickey and the specifics of how.

Variables such as the “a” and “b” in the ECDSA Curve Algorithm are already designated by Bitcoin (according to https://en.bitcoin.it/wiki/Secp256k1). the “base point” aka “G” is also specified on that page. the “private exponent” or “k”, I have yet to find. Some of these variables are supposedly “random” which appears to be false as every generator that you can put a private key into seems to always spit out the same public key…so…. all the variables are either already preset or are derived from the private key.

Thanks for any help on this. I’ve been trying to research and understand this for days, but it seems sometimes I don’t understand the terms and or notations, but I think I’ve gotten past that and now am just missing parts of the equation.

This is the previous stated private key in Decimal:


This is the previous stated public key (x and y values) in decimal:


All I want to know is how to go from that private key to the public key. Supposedly it is a simple equation that doesn’t involve bit shifting or xor etc. It may include “point multiplication” (which I don’t see how you can multiply a point defined as having both an x and a y). No one seems to understand the intricacies of this. Do you guys suggest I actually offer some fraction of a bitcoin to whoever explains it clearly?