Author

Topic: An apology and a new tool (more aligned with Bitcoin and the core values) (Read 119 times)

jr. member
Activity: 38
Merit: 22
And this is how the tool works:

Hopefully, by including cryptographic process, it is clearer what I am doing:

If we say:
Original public key: PB
User B's private key: kB
Tweak (SHA-256 of message): t = SHA-256(M)
Tweaked public key: PB' = PB + T
Tweaked private key: kB' = kB + t


1: User B's Original Key pair ( which is created in the normal way on their own machine)
User B's public key, PB, comes from multiplying their private key, kB, with the elliptic curve's generator point, G: PB = kB * G.

2: User A Generates a new Address for User B
User A takes User B's public key(which is known to them), PB, and selects a message, M, for the tweak (like "Payment for something" or a nonce of some kind).
User A generates a tweak value, t, by hashing the message M using SHA-256, for example: t = SHA-256(M).
This tweak, t, is converted into a point on the curve by multiplying it with the generator point, G, to get T: T = t * G.
User A adds this point, T, to User B's original public key, PB, to get a new tweaked public key, PB': PB' = PB + T.
The tweaked public key, PB', now serves as User B's new address for receiving funds. User A, only ever came in contact with User B’s Public key.

3: User B Accesses the Funds
To spend the funds, User B needs the corresponding private key for PB', called kB'.( this is the one they generated or already had in step 1)
Since PB' is the result of adding PB and T (PB' = PB + T = kB * G + t * G = (kB + t) * G), User B can find kB' by adding the original private key, kB, to the tweak value, t: kB' = kB + t.
User B uses this tweaked private key, kB', to sign transactions from the new address.

At no point was there a shared private key, and therefore there would be no urgency for User B to move the funds from the generated address, because only User B has both the original private key, and the message(the tweak) required to to generate the private key for the tweaked public key in the first place.




Would love to get some advice, feedback or if anyone wants to try it out, let me know. I designed this to be a free tool, so I'm not trying to promote a business or anything like that.
jr. member
Activity: 38
Merit: 22
Hey guys

Some of you might remember a few months ago I introduced AIDIOS (Acyclic Immutable Decentralised Information Optimised Storage), a project I developed with the aim of enabling the storage and versioned access to arbitrary(non financial) data across networks like Bitcoin, Bitcoin Cash, and Litecoin. AIDIOS was built around a proprietary data protocol called KeyWeave, designed for on-chain indexing and versioning without bloating the blockchain. However the data( which was stored) leveraged multiple op_return outputs, and this does add bloat to the chain.


The response from this community in my original post was clear and thought-provoking (which I’ll get to in a minute). I originally designed the technology from the ground up, and eventually coded it all out… & it was working. Despite AIDIOS being capable of associating multiple versions of files( of any size within block limits) to a public key,  also using delta-encoding, and in my mind not breaking the rules(i.e I used op_return of 80 bytes for each output, and didn;t hijack the witness data, which is designed for signatures+public keys) it still was about putting arbitrary data on Bitcoin.


After much reflection and conversations with some developers & experienced members on the forum, I made the difficult decision to shelve AIDIOS. It was a hard choice for me, given the time, effort, and passion invested into creating a technology from scratch. In many ways I used it to get over some personal trauma with my wife's medical condition. And as a result put more effort into it than I should have!

 
Anyway taking this feedback to heart, I redirected my focus towards leveraging blockchain technology for its foundational purpose: financial transactions. ( and this was the advice of one of the members kind enough not to just shoot me down... - NotATether: I'm talking about you Smiley ) This pivot led me to start developing a new tool. This tool introduces a novel approach to managing cryptographic keys, aiming to benefit those using Bitcoin for its intended financial purposes. I understand the importance of aligning with the community's values and the core principles of Bitcoin.  

I invite you all to take a look at this new direction and share your thoughts, anyway. Maybe I’m crazy with this idea too.... However I spent so much effort and time on AIDIOS, I wanted to use the method I developed to achieve on-chain indexing, and focus that component on a financial purpose. This is what I came up with for now anyway. It’s a wallet system inspired by MAST and Taproot, which allows for messages(tweaks) to be embedded into useable blockchain addresses. It also has the ability to tweak either a private or public key. This means (with a users public key) you can create a distinct new address for them, where they can only spend the funds, once they apply the tweak(message) to their own private key( and it would only work with their private key ofc)

Anyway, he’s the new tool:
https://medium.com/@jamie.brian.gilchrist/my-new-wallet-client-txtailor-a-twist-on-cryptographic-key-tweaking-inspired-by-bitcoins-83233795feb1

And here was the original post I did on bitcointalk:
https://bitcointalksearch.org/topic/m.63075602


Here is the whitepaper for AIDIOS( which I never posted before or since, but in this document it outlines how I manipulate the generator point on the secp256k1 Elliptic Curve and this is the basis I used for txtailor idea)....:
https://www.researchgate.net/publication/376204278_AIDIOS_Acyclic_Immutable_Decentralised_Information_Optimised_Storage


And just for you guys, I’ve started up the env it was running on, so the original AIDIOS tool( which I;ve scrapped) can be found here: https://filemanagerv2.aidios.io and also the api( which I wont bother sharing the docs for)... but the UI can at least let people try what my crazy original idea was… and I’m sure any engineer can attest to getting totally blinded, and making a tool( which is inappropriate) where you still go all out, and l just focus on the making it work well…without thinking too much about IF I should be creating it at all. Anyway, I’ll turn it back off again, just wanted to make sure my post had all the context.
Jump to: