What is meant by “relaxed standards” for P2SH redeem scripts in Bitcoin Core 0.10.0?

From the Bitcoin Core 0.10.0 release notes:

Standard script rules relaxed for P2SH addresses

The IsStandard() rules have been almost completely removed for P2SH
redemption scripts, allowing applications to make use of any valid
script type, such as “n-of-m OR y”, hash-locked oracle addresses, etc.
While the Bitcoin protocol has always supported these types of script,
actually using them on mainnet has been previously inconvenient as
standard Bitcoin Core nodes wouldn’t relay them to miners, nor would
most miners include them in blocks they mined.

So essentially the core software will now relay more intricate P2SH Txns which would previously be deemed non-standards transactions.

What are the specific changes which have been made (ie relaxed standards)? Does it only apply to P2SH Txns? Finally, "n-of-m OR y" and hash-locked oracle addresses are mentioned as examples: what does this refer to exactly?

Bitcoin exchange platforms and foreign exchange regulations

I’m wondering how cryptocurrency exchange platform adapt to country regulations where foreign exchange is forbidden (especially where sending money outside is forbidden).

How they could buy Bitcoin from outside without violating regulations (foreign exchange regulations), in the case if they don’t have much liquidity to match international market price of Bitcoin ?

Why doesn’t the same miner always win?

If the miner with the strongest ability to solve the block wins, why doesn’t the same miner win every time? Wouldn’t that miner still have the strongest ability to perform the proof of work on the next block and thus win every block?

After power hit, wallet won’t load

I downloaded Bitcoin core wallet a few days ago. It was all going well, it synced just to about 25 weeks ago or something. One day the power went down and it shutdown the computer.

When I started bitcoin core again it loaded up to “loading wallet” and is stuck there. Unfortunately I already send a few BTC’s to the wallet. Since I could not access my wallet, I figured that my BTC’s are lost but then I start reading about accessing my wallet using Bitcoind, however when I create the bitcoin.conf file with the

rpcuser=bitcoinrpc
rpcpassword=xxxxxxxxxxxx 

It wont recognize it and still give me the same error and crash as before I created the file.

I am currently running on Windows XP. So since I can’t access my wallet, and since the manual way does not seem to work either, is there any other way to withdraw the coins from the wallet? If not can anyone help me with the bitcoind problem. Thanks a lot.

Is libsecp256k1 faster than OpenSSL?

Bitcoin Core is eventually going to replace OpenSSL with libsecp256k1 for all ECDSA operations. As I understand it, this is motivated by wanting consensus-critical rules to not depend on OpenSSL.

Is libsecp256k1 signature verification also faster than OpenSSL? I’ve heard conflicting information about that.

Difference between createmultisig and addmultisigaddress?

What is the functional difference between createmultisig and addmultisigaddress in bitcoincore (v 0.10)?

To be clear, I understand how both function. ie. multisigCmd n ["address1 public key as hex", "address in Base58 format", "more JSON entries..."] (where n is the n of m value, and a JSON list of eiher hex pubkeys or Base58 addresses follows).

However, the output for the multisigCmd (createmultisig and addmultisigaddress, respectively) is:

  • createmultisig: ==> 3outputEqualsPay2scriptBTCAddress, script as hex
  • addmultisigaddress: ==> 3outputEqualsPay2scriptBTCAddress (no script!)

Both commands give identical output addresses (ie 3outputEqualsPay2scriptBTCAddress) when the same JSON data input is used. So the difference, really, is only that the former outputs the redeeming hex script. Am I missing something? Why the need for 2 commands rather than, for example, a single command with a -hex_script_output flag?

Are the huge transaction fees mostly mistakes or some other market indicator?

I am trying to understand why there are numerous days in Bitcoin’s history that show huge transaction spikes. See this blockchain.info chart.
enter image description here

The Jan 10th, 2012 spike is due to a mistake by this guy. I can’t explain the other spikes.

Are these spikes mostly or all due to human error? Or are they some other indicator, possibly market value, global usage or popularity? Maybe some think that paying a high fee is supporting the network.

The number of transactions can obfuscate the actual worldwide usage due to things like mixing services, automated transactions, spam. Maybe the fees spent can rule those out and show the global adoption rate assuming those types of transactions would avoid fees as much as possible.

Bonus points if you happen to know what specifically caused any one of these individual spikes. Having a list would benefit Bitcoin history story telling.