Re: [bitcoin-dev] bitcoin-java, a new bitcoin library

2021-10-05 Thread Mohamed Youssef via bitcoin-dev
Thanks for posting; I have been looking for such a library to get into the 
technical details.
Do you plan a slack or IRC for collaboration?

Best,
Mohamed

From: bitcoin-dev  On Behalf Of 
Humberto Marcolino via bitcoin-dev
Sent: Tuesday, October 5, 2021 08:24 AM
To: bitcoin-dev@lists.linuxfoundation.org
Subject: [bitcoin-dev] bitcoin-java, a new bitcoin library

Hello,

My name is Humberto, owner of the repository 
https://github.com/bitcoin-education/bitcoin-java.

I'm posting to divulge a new open-source Bitcoin library written in Java, with 
support for taproot single key transactions: 
https://github.com/bitcoin-education/bitcoin-java.

My main motivation to build this library was for educational purposes. Also, I 
was missing a lean bitcoin library written in Java, since I think bitcoinj too 
feature-heavy. I don't intend to include features that allow communication with 
nodes nor any online features in it. I think it is ideal for developers that 
want to build a wallet in Java.

Feedback, PRs, and issues are welcome and appreciated.

Website of the project, where I plan to post more examples using it: 
https://www.bitcoineducation.site/

Best regards,

Humberto
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Question- must every mining rig attempt every block?

2021-10-05 Thread Nathan T Alexander via bitcoin-dev
For purposes of conserving energy, couldn't each mining rig have some 
non-gameable attribute which would be used to calculate if a block would 
be accepted by that rig?


Don't the mining rigs have to be able to identify themselves to the 
network somehow, in order to claim their block reward? Could their 
bitcoin network ID be used as a non-gameable attribute?


Essentially a green light / red light system. In order for a block to be 
accepted by the network, it must have all attributes of a successful 
block today, and it must also have come from a rig that had a green light.


Perhaps hash some data from the last successful block, along with the 
miners non-gameable attribute, and if it's below a certain number set by 
algorithm, the miner gets a green light to race to produce a valid block.


Nathan Alexander

Arlington, TX

___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Question- must every mining rig attempt every block?

2021-10-05 Thread ZmnSCPxj via bitcoin-dev
Good morning Nathan,

> For purposes of conserving energy, couldn't each mining rig have some
> non-gameable attribute which would be used to calculate if a block would
> be accepted by that rig?
>
> Don't the mining rigs have to be able to identify themselves to the
> network somehow, in order to claim their block reward? Could their
> bitcoin network ID be used as a non-gameable attribute?

They are "identified" by the address that is on the coinbase output.

There is nothing preventing a *single* miner having *multiple* addresses, in 
much the same way that a *single* HODLer is not prevented from having 
*multiple* addresses.

>
> Essentially a green light / red light system. In order for a block to be
> accepted by the network, it must have all attributes of a successful
> block today, and it must also have come from a rig that had a green light.

Since a miner can have multiple addresses, the miners can game this by simply 
grinding on *which* of their multiple addresses gets the green light.
That grinding is no more different in quality than grinding the block hash.

Thus, you just move proof-of-work elsewhere and make it harder to see, not 
reduce it.


Worse, *identifying* miners reduces the important anonymity property of mining.
With non-anonymous mining, it is much easier for states to co-opt large mines, 
since they are identifiable, and states can target larger miners.
Thus, miners ***must*** use multiple addresses as a simple protection against 
state co-option.

>
> Perhaps hash some data from the last successful block, along with the
> miners non-gameable attribute, and if it's below a certain number set by
> algorithm, the miner gets a green light to race to produce a valid block.

The power consumption of proof-of-work ***is not a problem***, it is instead 
the solution against state co-option.

If you reduce the power consumption, it becomes easier for states to simply 
purchase and co-opt mines and attack the system, since it is easier to muster 
the power consumption and outright 51% Bitcoin.
The power consumption is an important security parameter, ***even more 
important than raw hashes-per-second***, since hashes-per-second will 
inevitably rise anyway even with constant power consumption.

It should always remain economically infeasible to 51% Bitcoin, otherwise 
Bitcoin will ***die*** and all your HODLings in it.

Regards,
ZmnSCPxj
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Question- must every mining rig attempt every block?

2021-10-05 Thread Ruben Somsen via bitcoin-dev
Hi Nathan,

That's a fair question, but note that we've already had a bunch of "green
mining" related posts a few months ago, so I suspect you'll be able to find
many criticisms to this idea in the following thread:

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-May/018937.html

It also looks like you'll be able to find some related answers on Bitcoin
Stack Exchange:
https://bitcoin.stackexchange.com/questions/106308/decreasing-energy-consumption-of-bitcoins-pow-with-paired-mining-rounds

And generally speaking these types of discussions don't end up being very
fruitful for bitcoin-dev, because these are the types of changes that are
unlikely to ever be seriously considered for Bitcoin.

Cheers,
Ruben

On Tue, Oct 5, 2021 at 4:09 PM Nathan T Alexander via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org> wrote:

> For purposes of conserving energy, couldn't each mining rig have some
> non-gameable attribute which would be used to calculate if a block would
> be accepted by that rig?
>
> Don't the mining rigs have to be able to identify themselves to the
> network somehow, in order to claim their block reward? Could their
> bitcoin network ID be used as a non-gameable attribute?
>
> Essentially a green light / red light system. In order for a block to be
> accepted by the network, it must have all attributes of a successful
> block today, and it must also have come from a rig that had a green light.
>
> Perhaps hash some data from the last successful block, along with the
> miners non-gameable attribute, and if it's below a certain number set by
> algorithm, the miner gets a green light to race to produce a valid block.
>
> Nathan Alexander
>
> Arlington, TX
>
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] bitcoin-java, a new bitcoin library

2021-10-05 Thread Steve Myers via bitcoin-dev
Ciao Humberto! building a new library is a great way to learn about bitcoin, 
you should also take a look at the Bitcoin Dev Kit project 
(https://github.com/bitcoindevkit) where we're building support for Kotlin/Java 
(and Android) and eventually Swift and iOS. You don't need to know Rust (though 
it's a great language to learn! ) and we'd love to have new folks join us as we 
develop the language bindings which is also a great way to learn the primitives 
for on-chain Bitcoin. 

Steve

On Mon, Oct 4, 2021, at 5:23 PM, Humberto Marcolino via bitcoin-dev wrote:
> Hello,
> 
> My name is Humberto, owner of the repository 
> https://github.com/bitcoin-education/bitcoin-java.
> 
> I'm posting to divulge a new open-source Bitcoin library written in Java, 
> with support for taproot single key transactions: 
> https://github.com/bitcoin-education/bitcoin-java.
> 
> My main motivation to build this library was for educational purposes. Also, 
> I was missing a lean bitcoin library written in Java, since I think bitcoinj 
> too feature-heavy. I don't intend to include features that allow 
> communication with nodes nor any online features in it. I think it is ideal 
> for developers that want to build a wallet in Java.
> 
> Feedback, PRs, and issues are welcome and appreciated.
> 
> Website of the project, where I plan to post more examples using it: 
> https://www.bitcoineducation.site/
> 
> Best regards,
> 
> Humberto
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
> 
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev