Bitcoin Forum
August 30, 2024, 09:22:16 AM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 [5] 6 7 8 9 10 »  All
  Print  
Author Topic: Nxt :: Automated Transactions (AT) - progress and discussion  (Read 17253 times)
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1134


View Profile WWW
February 17, 2014, 03:56:01 AM
 #81

I think the Killer App for NXT VM would be a reference implementation of a coin built on top of NXT, using AM and Asset Exchange. I envision a whole set of NXTcoins built on top of NXT, each addressing a specific market niche. Like it or not, the altcoin concept is here to stay for a bit and there are so much mining resources, I want to create a bridge for all the miners to become NXT'ers, without feeling any pain.

Maybe such functionality will be built into NXT core itself, but in general we can see what sort of NXT VM scripts are popular enough to warrant conversion and inclusion into the NXT core.

A NXTcoin should be able to be PoW or PoS, or maybe even a hybrid with a certain percentage PoS for initial investors and the rest PoW. One thing that bothers me about the usual setup where the initial investors get 100% of their share upfront, while the miners can only get incremental amounts. There is always the big amount from IPO investors waiting for a decent price to dump.

My idea around that is to sell presale amounts in the form of a future dividend flow. For example, if 10% of a coin is presold or reserved for coin creators, and the rest for miners. At first the 10% of investors would have 0 coins. for every 10 coins that are mined, the investors would share 1 coin proportionally. This could be implemented as an automatic dividend each time coins are created via mining. we would need a special dividend version of the coin and that is what would be presold, but it would be linked to the coin.

To implement this using AE, I was hoping for a method to increase the coin supply via API, but CfB politicized that request by requiring it to be a test of NXT change request process. So, my workaround is to issue 1 billion of the coin Asset and have the DAC (or whatever it is we are calling the automated process) originally own all of them. We need to somehow restrict usage of these coins or we need to trust the DAC from sending them without permission. Not sure of the right mechanism. One crazy way I thought of was to also seed the DAC with anti-coins. The restriction would be only net positive amounts of coins could be transferred. Then the mining process triggers via validated AM to distribute coins to a set of accts. This number of anti-coins are sent to genesis acct and the freed up coins sent to the specified accts

Since this method uses AE to keep track of the coins, there isnt any worry about 51% attack, etc. Just need to make sure the AM that triggers coin "issuance" is secure. Still working on more details, but I thought this would be a good use case for you to ponder as it doesnt require voodoo magical maths, or anything fancy, but is complicated enough to make sure NXT VM will be able to be used to make useful things.

James

P.S. I just got a suggestion about a Nodecoin, which would simply issue a coin if somebody was forging at the time of a block. Maybe we need to limit it to prevent explosion in number of coins, but some intangible thing that people got just for forging. Who knows, a market could even develop for this and people might find it profitable to get low cost computers that are able to forge.

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1134


View Profile WWW
February 17, 2014, 04:02:24 AM
 #82

Would it be possible to do the Following with these Scripts?
Forgers, Stakholders or some other trusted entitys post regulary what they think the current USD value of NXT is to the Blockchain.
The script Calculates somehow an average USD price.
The Script now uses its own funds to Buy and Sell an NXT Asset called USD at that price.
Which results in having an Asset USD that has a stable USD value without having a Counterparty Risks (at least as long as the Script has enough NXT to buy that USD Asset).
 

Autonomous pegging is it even possible?

USD Asset price can be set extremely low...
I think a nice use case would be obtaining data from a public website. If we can do this in a decentralized way, it solves the whole trustless broadcast of data feed problem. Once that problem is solved, then betting against the data feeds becomes possible. Once that is possible, CFD and other derivatives can be created.

If the forging node published an AM of what it thought the website said, it could be verified by a "randomly" selected subset of forgers (dont want to Ddos the website!) and as long as a super-majority agreed with the data, it would be officially place in the NXT blockchain

I think we would need a way for a script to do an http get or post call, alternatively, the NXT core needs to provide this support directly. i hope we are open to such radical and crazy ideas. If we can solve this, it will open up a lot of possibilities.

James

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
CIYAM (OP)
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 17, 2014, 04:46:50 AM
 #83

I think a nice use case would be obtaining data from a public website. If we can do this in a decentralized way, it solves the whole trustless broadcast of data feed problem. Once that problem is solved, then betting against the data feeds becomes possible. Once that is possible, CFD and other derivatives can be created.

I think you've already brought that up before and it has already been answered before but I'll answer it again in the hope that you might remember it for next time.

You cannot prove anything outside of the blockchain as their is no true way to achieve consensus about that - if you are wanting to say "check the result of a Google search" then every node would have to do the same search and get the same result to "confirm" it *but* in practice they will not get the same result (some might just get an error due to the IP being blocked or some might get a different result due to geographic location, etc., etc.).

Also you would be putting a "huge" burden on every node to have to be doing an arbitrary number of perhaps slow or costly requests just to attempt said verification.

It isn't going to happen James - so please just drop it.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1134


View Profile WWW
February 17, 2014, 05:04:24 AM
 #84

I think a nice use case would be obtaining data from a public website. If we can do this in a decentralized way, it solves the whole trustless broadcast of data feed problem. Once that problem is solved, then betting against the data feeds becomes possible. Once that is possible, CFD and other derivatives can be created.

I think you've already brought that up before and it has already been answered before but I'll answer it again in the hope that you might remember it for next time.

You cannot prove anything outside of the blockchain as their is no true way to achieve consensus about that - if you are wanting to say "check the result of a Google search" then every node would have to do the same search and get the same result to "confirm" it *but* in practice they will not get the same result (some might just get an error due to the IP being blocked or some might get a different result due to geographic location, etc., etc.).

Also you would be putting a "huge" burden on every node to have to be doing an arbitrary number of perhaps slow or costly requests just to attempt said verification.

It isn't going to happen James - so please just drop it.

OK, am I allowed to have NXT nodes voluntarily run software and publish AM data with datafeeds that these nodes will peer validate? It wouldnt be in the NXTcore at all, just an application on top of NXT using AM, so I think it is ok, but I wanted to make sure I am not forgetting something and making you upset

James

P.S. Any feedback on NXTcoins is that DOA also?

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
CIYAM (OP)
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 17, 2014, 05:24:16 AM
 #85

OK, am I allowed to have NXT nodes voluntarily run software and publish AM data with datafeeds that these nodes will peer validate? It wouldnt be in the NXTcore at all, just an application on top of NXT using AM, so I think it is ok, but I wanted to make sure I am not forgetting something and making you upset

Having some sort of AM "data feed" would be fine (and at least it would be clear that you are having to trust whoever created it). I'm not quite sure how an AT (Automated Transaction) would "find" the AM but assuming that it could somehow be done via an API call then it should be possible for AT to use such data.

At this stage the only two "use cases" that are being considered are 1) Lottery and 2) Inactive Account Payout. A third use case would need to be no more complicated than either of those for consideration at this stage (we need to walk before we can run).

Something that works with AE could be doable - but it would need to be a really simple bot (so tying in it with AM as well is going too far IMO).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1134


View Profile WWW
February 17, 2014, 05:40:59 AM
 #86

OK, am I allowed to have NXT nodes voluntarily run software and publish AM data with datafeeds that these nodes will peer validate? It wouldnt be in the NXTcore at all, just an application on top of NXT using AM, so I think it is ok, but I wanted to make sure I am not forgetting something and making you upset

Having some sort of AM "data feed" would be fine (and at least it would be clear that you are having to trust whoever created it). I'm not quite sure how an AT (Automated Transaction) would "find" the AM but assuming that it could somehow be done via an API call then it should be possible for AT to use such data.

At this stage the only two "use cases" that are being considered are 1) Lottery and 2) Inactive Account Payout. A third use case would need to be no more complicated than either of those for consideration at this stage (we need to walk before we can run).

Something that works with AE could be doable - but it would need to be a really simple bot (so tying in it with AM as well is going too far IMO).

Nodecoin might be simple enough. Just need to transfer Nodecoin asset to all accts that were forging that block, but that would require NXTcoins to be there and if you are saying no using AM for your use cases, it seems NXTcoins wont be guaranteed to be done via NXT VM

I will go to plan B then.

James

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
CIYAM (OP)
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 17, 2014, 05:42:03 AM
 #87

Note that I've changed the title of this topic - unless we come up with a better name I think Automated Transactions (AT) is what we are going to use (as it fits in nicely along AC, AE, AM, and AS).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Fry
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
February 17, 2014, 06:22:29 AM
 #88

Ok now here is the solution to the random data issue:
Every forger creates a very large random number. He hashes this number and adds the hash to to block he is forging.
 
He than creates a transaction that will reveals this random number. This transaction in not yet beeing pusblished to the network. Instead this transaction is beeing sent as encrypted arbitrary message to the 10 previous forgers. These 10 previous forgers decrypt that
 arbitrary message and check the random number against the hash in the blockchain. When everything is ok every previous forger creates an arbitrary message that states that he recieved the correct transaction (these 10 arbitrary message will be added to the blockchain).


After 100 blocks the transaction that reveals the random number is beeing published to the network (and added to the Blockchain).

Now the last known 100 random numbers are hashed together to seed the random function (Only those random numbers are used where short after creation most of the previous forgers stated they have received the revealing transaction).


It's just that easy!  Wink
hostmaster
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250


View Profile WWW
February 17, 2014, 06:23:37 AM
 #89

If one change will slow or risk of bugs  i recommend staying away at this point. It's seen by Bitcoin how falling with hack attacks...
s111102
Newbie
*
Offline Offline

Activity: 37
Merit: 0


View Profile
February 17, 2014, 06:45:51 AM
 #90

+1
Zahlen
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
February 17, 2014, 07:26:02 AM
 #91

Note that I've changed the title of this topic - unless we come up with a better name I think Automated Transactions (AT) is what we are going to use (as it fits in nicely along AC, AE, AM, and AS).

If you're calling the scripts Automated Transactions, what about calling (some level of) the scripting language Xtnd?

EDIT: Then we can call the scripts Xtnded Transactions.

Another possible use case is for alias auction, after alias transferring is enabled.

Zahlen
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
February 17, 2014, 07:29:33 AM
 #92

Every forger creates a very large random number. He hashes this number and adds the hash to to block he is forging.

How will everyone else verify that the number was indeed generated randomly? The forger could have used a biased generator, or just chosen it themselves.

Fry
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
February 17, 2014, 07:41:12 AM
 #93

Every forger creates a very large random number. He hashes this number and adds the hash to to block he is forging.

How will everyone else verify that the number was indeed generated randomly? The forger could have used a biased generator, or just chosen it themselves.

Yes, but before the number will be used to seed the random function, it will be hashed together with 100 other numbers of other block forgers. If at least one of these 100 numbers is random then the  whole resulting hash is random
bitcoinpaul
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1000



View Profile
February 17, 2014, 07:53:43 AM
 #94

Isn't it more then just automated transactions? Aren't we talking about the scripting language in general also?
CIYAM (OP)
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 17, 2014, 07:59:12 AM
 #95

EDIT: Then we can call the scripts Xtnded Transactions.

As we are going to end up needing a higher level language above the low-level "assembler" like language we could use that name for it. Good enough?

Quote
Another possible use case is for alias auction, after alias transferring is enabled.

Hmm... I guess that could work through the use of AM although I wasn't planning on trying to handle AM initially but if enough people are keen on that (I know that James is) then maybe I can work that into a 3rd "use case".

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
CIYAM (OP)
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 17, 2014, 08:01:17 AM
 #96

Isn't it more then just automated transactions? Aren't we talking about the scripting language in general also?

It will be a "Turing complete" language but it will not be able to do much other than examine the blockchain and create transactions so I think Automated Transactions is really "the main point".

If you are thinking that these scripts are going to be sending emails or the like the you have the "wrong idea" about what is being proposed here.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Zahlen
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
February 17, 2014, 08:11:20 AM
 #97

EDIT: Then we can call the scripts Xtnded Transactions.

As we are going to end up needing a higher level language above the low-level "assembler" like language we could use that name for it. Good enough?

Yeah sounds good. Xtnd (like Nxt) is a name that appeals towards users (both casual programmers and regular folks) more. AXs would be more convenient terms for experts.


Quote
Another possible use case is for alias auction, after alias transferring is enabled.

Hmm... I guess that could work through the use of AM although I wasn't planning on trying to handle AM initially but if enough people are keen on that (I know that James is) then maybe I can work that into a 3rd "use case".
[/quote]

I'm interested too. Smiley A lot of possibilities open up if users can send scripts more specific information.

CIYAM (OP)
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 17, 2014, 08:17:00 AM
 #98

I'm interested too. Smiley A lot of possibilities open up if users can send scripts more specific information.

Okay - I will give some thought to the idea of an Auction AT.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
bitcoinpaul
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1000



View Profile
February 17, 2014, 08:29:02 AM
 #99

If you are thinking that these scripts are going to be sending emails or the like the you have the "wrong idea" about what is being proposed here.


I didn't mean that. I thought we limit the discussion / our brains and the marketing potential if we chose this name.

But go ahead, people. Just wanted to write my impression on this.
CIYAM (OP)
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 17, 2014, 08:56:17 AM
 #100

I didn't mean that. I thought we limit the discussion / our brains and the marketing potential if we chose this name.

Think of the name AT just as a "project name" rather than being any intended suggestion for marketing.

Also I think our brains (or at least my own) are nearly exploding with what are considering already. Grin

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Pages: « 1 2 3 4 [5] 6 7 8 9 10 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!