How to deal with a shady exchange?

I’m new here and the reason is that I believe I became a victim of a
scam. And hopefully, you may guide me to get out of this shitty situation or at least help me expose the scammers.

I’ve been stupid and got into contact with a guy called Glen Morley through telegram who supposedly has a very high accuracy signal rate on bitcoin trading, which he did actually, assuming that the exchange had genuine charts. We made a deal to split the profit 80/20. He didn’t ask for any private info or whatsoever. He directed me to open up an account on bitfami.com

After the first day, I was almost sure that it was a scam. When I tried to withdraw the next day, the exchange told me that I’m not allowed to withdraw because my account was new and I have to wait for 4 business days to do so. It appeared during that conversation that they are also charging a 15% tax if your profit exceeds 20k USD. I’ve been also encouraged to continue trading in the meantime and they couldn’t give a reasonable explanation of why to do so. When I asked why they have such rules nowhere to be found on their site, they became mute.

As I wasn’t allowed to withdraw, I decided to go on to see the outcome of this story assuming that I’ve most probably lost my initial investment. Glen sent me signals to trade and I ended up with 5,9 btc from 0,25 btc in a week, just by 5 trades a day. In the meantime, I kept on thinking about possible scenarios but couldn’t make much sense of the situation.

After a week, today, I made my last trade today to figure out the whole setup. It appeared that the 15% tax of the total profit made that they were mentioning was supposed to be deposited in order to withdraw which is something they don’t mention. It’s not even written anywhere on their site. In my case, it’s around 6,400$. I don’t have that money. Even if I had there’s no way I’ll deposit again to a shady exchange that comes up with last-minute surprises. When I told Glen about this, he encouraged me to pay it by getting a loan! I believe that the guy so-called Glen and this exchange are operating together. At first to convince people to deposit, then to make them believe they’re making fast profits and at the end to make them deposit ridiculous amounts to withdraw which would probably never happen.

Sorry for taking your time with this but I feel like it is my duty to spread the news and ask for guidance if possible.

I have screenshots of every conversation I had with the exchange support and with Glen in case it would help.

Any help is appreciated, thanks in advance.

Verify Bitcoin Transaction

Following the great post [Redeeming a raw transaction step by step example required, I came up with code below but the verification failed.

// pubkeyBytes, len: 65
// 042daa93315eebbe2cb9b5c3505df4c6fb6caca8b756786098567550d4820c09db988fe9997d049d687292f815ccd6e7fb5c1b1a91137999818d17c73d0f80aef9

// data, len: 32
// 30f10a6468b7d98257af63fb40dfcf2cefe991346fd37c67cf7b51ff8d4404d3

// signatureBytes, len: 71
// 30450220587ce0cf0252e2db3a7c3c91b355aa8f3385e128227cd8727c5f7777877ad772022100edc508b7c14891ed15ab38c687019d7ebaf5c12908cf21a83e8ae57e8c47e95c

    ECPublicKey publicKey = (ECPublicKey)KeyBuilder.buildKey(KeyBuilder.TYPE_EC_FP_PUBLIC, KeyBuilder.LENGTH_EC_FP_256, false);;
    Secp256k1.setCommonCurveParameters(publicKey);
    publicKey.setW(pubkeyBytes, (short) 0, (short) pubkeyBytes.length);

    Signature eccSign = Signature.getInstance(Signature.ALG_ECDSA_SHA_256, false);
    eccSign.init(publicKey, Signature.MODE_VERIFY);
    boolean verified = eccSign.verify(data, (short)0, (short) data.length,
                signatureBytes, (short)0, (short)signatureBytes.length
            );
    Assert.assertTrue(verified);

Assertion failed at the end.

Have been stucked for hours. Cannot figure it out. Any help is highly appreciated. Thanks.

why using `blockIndex` in bitcoin’s code `unconfTxs`

I am reading the code of rpc’s estimateSmartFee method , and I can’t understand why using blockIndex in unconfTxs ?

estimateSmartFee loop unconfTxs to get feeRate(code: https://github.com/bitcoin/bitcoin/blob/0.18/src/policy/fees.cpp#L291)

But the value unconfTxs[blockIndex][bucketindex] will be reseted in TxConfirmStats::ClearCurrent or reduced in TxConfirmStats::removeTx.
Why not just define like this unconfTxs[bucketindex]?

source file fees.cpp

unsigned int TxConfirmStats::NewTx(unsigned int nBlockHeight, double val)
{
    unsigned int bucketindex = bucketMap.lower_bound(val)->second;
    unsigned int blockIndex = nBlockHeight % unconfTxs.size();
    unconfTxs[blockIndex][bucketindex]++;
    return bucketindex;
}

the unconfTxs

    // Mempool counts of outstanding transactions
    // For each bucket X, track the number of transactions in the mempool
    // that are unconfirmed for each possible confirmation value Y
    std::vector<std::vector<int> > unconfTxs;  //unconfTxs[Y][X]

Can we measure bitcoin’s accumulated work in terms of entropy (in bits) directly rather than expected number of hashes?

The Background

Bitcoin tracks chain work by counting the (expected) minimum number of hashes it would take to create a chain of the same number of blocks and same difficulty steps[1]. Naturally, accumulated work measured in this fashion (e.g. expected number of hashes) increases with each new block that is added to the chain.

For a given target t, the minimum expected number of hash attempts necessary to find a block which meets the proof of work criteria (hash less than or equal to t) is geometrically distributed[2] with parameter p = t / 2^256.

We can calculate the entropy, w, of such a geometrically distributed random variable[3] by the equation w(p) = (-(1-p)log2(1-p) – plog2(p)) / p, and using p = t / 2^256 we can trivially rewrite this into a function of the target instead, w(t).

Using this method we can calculate the minimum work (e.g. entropy) w(t), denominated in bits, necessary to describe the proof of work signal. Other components of the blockchain (such as what data is in the blocks besides the proof of work signal) are not included in this analysis so that is why it is an estimate of the minimum encoding.

Plugging in some numbers:

  • for block zero (and any block with the lowest possible difficulty, hence p = 1 / 2^32), we get approximately 33.44 bits of work per block.
  • for a more recent block, say block #602784 we getapproximately 76.97 bits of work per block.

The Question

Can we complete the above analysis for every difficulty period and sum the entropies to obtain a lower bound on the minimum complexity, in bits, of the (proof of work aspects of the) Bitcoin blockchain? Or is there some assumption (such as being able to sum the entropies in this context?) that is unsafe/wrong?

An Attempted Answer & Some Motivation

Performing such an analysis[4] seems to give a result, as of block 602784, of approximately 36.9 million bits or 4.6 megabytes and growing.

However, one reason why the method seems interesting is that, if it is reasonable, then it seems that all the math which the bitcoin protocol currently does with “time” (in the unix timestamp sense, such as difficulty adjustments, and block timestamp must advance median of last n block’s timestamps) could instead be done in “bits.” As such, this could be helpful for when/if the protocol is extended into operate across vast distances of spacetime?

Then again, there is probably something terribly wrong with this analysis which is why the question is being asked here.

References

[1] Strongest vs Longest chain and orphaned blocks

[2] How is it that concurrent miners do not subvert each other's work?

[3] https://math.stackexchange.com/questions/490559/entropy-of-geometric-random-variable

[4] https://github.com/philbertw4/mathematicalbitcoin/blob/master/scala/SatsPerBit.sc

How do I recover from a cryptocurrency scam?

I lost about $45,000 to crypto investment scam just recently. The
company posed as an investment company that could deliver a certain
percentage in returns if you deposit your Bitcoin with them. At first, it
seemed real, it worked twice. I didn’t realize they set up a bot(robot)
that will completely shutdown your account after you have decided to invest
high. I suddenly couldn’t access my profile, I complained to the admin, he
gave a excuses that they had a downtime and needed to upgrade their
website, this took over 2 months. Within that period,I begin to suspect i
have been scammed. I contacted my bank to see if they could do anything about this situation, they couldn’t. Local police say it’s impossible to get my money back.

Can anyone help me ? This has made me really frustrated as I invested all my savings.

Bitcoin protocol and Wireshark

I captured bitcoin protocol communication in real-time and it is present in fig1 and fig2.

Fig1
enter image description here

In red box, there are many types of command.

First Question:

How can Wireshark detect bitcoin communication and parse them? I think
the packet that socket sends may have something what I don’t know.

In red box of fig2, you can see many properties of packet. this is definitely defined by software program, not hardware such as router. Real data that client send is really just hex data which is encoded by specific rule.

Second Question:

How Wireshark can parse data received? Bitcoin client can parse it because they know the rule but Wireshark doesn’t know anything since Wireshark is thrid-party program, which no have any relation with Bitcoin software.

Fig2
enter image description here

Sorry for my English.

How to install Berkeley DB 4.8 on Linux?

The Unix build notes do not show how to install version 4.8 apart from saying

BerkeleyDB is required for the wallet. Ubuntu and Debian have their
own libdb-dev and libdb++-dev packages, but these will install
BerkeleyDB 5.1 or later. This will break binary wallet compatibility
with the distributed executables, which are based on BerkeleyDB 4.8.If you do not care about wallet compatibility, pass –with-incompatible-bdb to configure. Otherwise, you can build from self-compiled depends (see above).

The referenced README.md from the quoted

Now, you can either build from self-compiled depends or install the
required dependencies:

does not discuss BerkeleyDB 4.8.

I know there is ./contrib/install_db4.sh in the source for installing BerkeleyDB 4.8 but it abords on my Ubuntu with curl: (7) Failed to connect to git.savannah.gnu.org port 443: No route to host.