python-bitshares icon indicating copy to clipboard operation
python-bitshares copied to clipboard

Implement Blind Transfers

Open jhtitor opened this issue 7 years ago • 3 comments
trafficstars

After shedding some tears, I've managed to get blind transfers working. Sadly, the whole affair is not a matter of a simple/single pull-request. (Although if you think otherwise, please take a look here)

Here's the breakdown:

  • [x] PrivateKey class needs a few new crypto methods. graphene_pr64
  • [x] PublicKey class needs a few new crypto methods (secp256k1 dependency there). graphene_pr66
  • [ ] Pedersen/Rangeproof commitments must be implemented. I've wrapped libsecp256k1-zkp from bitshares-core to do this. secp256k1prp (Ideally, a pure-python implementation is required)
  • [ ] Storage class must be expanded to keep the receipts/balances.
  • [ ] Few GrapheneObjects must be read from wire bytestream back into memory. graphene_pr65
  • [ ] Local fee calculator must be added. fee_calc

jhtitor avatar Apr 07 '18 06:04 jhtitor

I've seen great progress here! Looking forward to the Pull Request

Unfortunately, GrapheneObjects where never meant to be read from wire format, However, we can surely patch something together to make this work for your. Please let me know what and how you need it.

xeroc avatar Apr 16 '18 08:04 xeroc

regarding the eliptical curve digital signature in pure-python, this might be a good repo to fork:

https://github.com/warner/python-ecdsa

litepresence avatar Apr 21 '18 21:04 litepresence

@litepresence, thanks, I'll take a look.

I'm guessing tweak_add we need for PublicKey is already available in ecdsa/python-ecdsa. Nope, not there. https://github.com/xeroc/python-graphenelib/pull/66

However Pedersen/Rangeproof commitments are pretty unique and I've only seen them implemented in libsecp256k1-zkp, in C.

jhtitor avatar Apr 23 '18 08:04 jhtitor