Bitcoin Forum
January 20, 2021, 01:19:01 AM *
News: Latest Bitcoin Core release: 0.21.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 [2079] 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 ... 2560 »
  Print  
Author Topic: NXT :: descendant of Bitcoin - Updated Information  (Read 2760139 times)
bitcoinpaul
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1000



View Profile
March 07, 2014, 07:34:34 PM
 #41561

Altcoin pannel with Rickey from Texas conf online: http://www.youtube.com/watch?v=E1oqFRROW7M

Great job, rickyjames!

+10
1611105541
Hero Member
*
Offline Offline

Posts: 1611105541

View Profile Personal Message (Offline)

Ignore
1611105541
Reply with quote  #2

1611105541
Report to moderator
1611105541
Hero Member
*
Offline Offline

Posts: 1611105541

View Profile Personal Message (Offline)

Ignore
1611105541
Reply with quote  #2

1611105541
Report to moderator
1611105541
Hero Member
*
Offline Offline

Posts: 1611105541

View Profile Personal Message (Offline)

Ignore
1611105541
Reply with quote  #2

1611105541
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1611105541
Hero Member
*
Offline Offline

Posts: 1611105541

View Profile Personal Message (Offline)

Ignore
1611105541
Reply with quote  #2

1611105541
Report to moderator
1611105541
Hero Member
*
Offline Offline

Posts: 1611105541

View Profile Personal Message (Offline)

Ignore
1611105541
Reply with quote  #2

1611105541
Report to moderator
1611105541
Hero Member
*
Offline Offline

Posts: 1611105541

View Profile Personal Message (Offline)

Ignore
1611105541
Reply with quote  #2

1611105541
Report to moderator
pandaisftw
Full Member
***
Offline Offline

Activity: 224
Merit: 100


View Profile
March 07, 2014, 07:35:05 PM
Last edit: March 07, 2014, 08:10:11 PM by pandaisftw
 #41562

I just woke up, so here was my idea:

Asset Exchange Enhancement

Here is a snippet of what I sent a community member:

Quote from: pandaisftw
A) Using a URL embedded in the asset description, the client would then be able to communicate with the URL

B1) The client sends a random string to the URL. The server behind the URL should then sign the string with the asset issuer's Auth Key and return this to the client. If the Auth key is valid, this should prove that the URL is in fact owned by the asset issuer. This will ensure that even if the URL is somehow redirected, the attacker would still need the asset issuer's private key.

B2) If B1) doesn't work, use some method of key signing (such as curve25519) which would allow the client to validate the URL (I explain this process in the attached doc).

c) Once the URL is verified to be owned by the asset issuer, it would pull information provided by the URL and overlay that onto the asset. This will allow much greater flexibility in the Asset Exchange, as well as allow "duplicate named" assets as well as being able to categorize assets efficiently.

I feel that this will be an extremely important feature, especially for services that will have to register a lot of assets that may be squatted by those wishing to make a quick profit at the service's expense. The NXT game we are working on is planning to use the Asset Exchange to provide liquidity for the exchanging of items, but it would be much better if players could easily find all of our items easily, instead of having arbitrary names which can be squatted. We can even include pictures!

To explain better, I have prepared a document (with visuals) here:

https://docs.google.com/presentation/d/1yPt4x8V6015atQlszXj-IloOkUvDRdt15rsxPxy2jiQ/edit?usp=sharing

I'm not 100% sure how NXT Auth Keys work - instead of a website, I think you can provide a random string (in the website field) that the server would then hash using their Auth Token. But I provided the second solution just in-case that was not possible.

NXT: 13095091276527367030
ZeroTheGreat
Hero Member
*****
Offline Offline

Activity: 644
Merit: 500


View Profile
March 07, 2014, 07:39:43 PM
 #41563

More I think about Pooled Forging, more I don't like it. Does anyone have any ideas where this could lead to? Won't we face the same problem as Bitcoin (GHash)?

I put refactoring on hold until the community decides that it's safe for Nxt.

Hubs - option to decrease dispersion of forging, nothing more. Yeah, there can be unsafe situation, if some hub grow too big. But users can cancel leasing, if hub'll cheat or even if'll just grow enough.

If we're assuming leasers become not aware of situation in future, Nxt'll fail anyway as decentralized system. Not cos of some malicious hub, soceng. attack'll be enough. And if they'll be aware much of the time, dangerously big hub simply'll not appear.
salsacz
Hero Member
*****
Offline Offline

Activity: 490
Merit: 501


View Profile
March 07, 2014, 07:47:15 PM
 #41564

One of the first tasks for the Tech committee could be trying to get to this, somehow:

http://bdaccelerate.com/

http://bitcoinmagazine.com/10896/bitcoin-decentral-launches-bitcoin-cryptocurrency-2-0-accelerator/

We could maybe also have our mentors there, even marketing guys

Nxt tips: NXT-R67P-6BZ2-XWAK-8RHZR | Nxt forum | Nxt Academy | Donate for Nxt at the Universities // BTCD: RVMLrnxYYy7uy8YZo9FcGfXbk1ZMnNifdg
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1090


View Profile WWW
March 07, 2014, 07:47:49 PM
 #41565

[NXTmixer announcement]

Based on feedbacks and ideas in the NXTcash thread, I think i might have come up with a pretty good NXT mixing algo. I just got a successful encrypt/decrypt cycle in the multigateway. Obviously, still very new as I just started coding this today, but now that I have verified proper public/private key handling, the rest is a matter of debugging.

The initial model supports both a mixing service using the gateway and a totally decentralized direct "payment" path. However, since NXT doesnt support multisig (hint, hint, CfB) the mixing is totally centralized on one of the gateway servers. The decentralized part allows (nearly?) undetectable transmission of NXT acct password (or any other data) directly to the destination acct.

Even though I am adding this functionality to the gateway, it is totally independent of the multisig DOGE gateway and also NXTcash. It just shares a lot of the code base, so it was easiest to add to the existing multigateway code. I am using libnacl http://nacl.cr.yp.to/index.html that xyzzyx recommended.

Ah, you want to know how it works?

I added the following to the gateway_AM structure:
Code:
struct payment_bundle
{
    unsigned char escrow_pubkey[crypto_box_PUBLICKEYBYTES];
    unsigned char depositaddr[MAX_NXTADDR_LEN];
    unsigned char paymentacct_key[crypto_box_SECRETKEYBYTES];
    unsigned char txouts[8][MAX_NXTADDR_LEN];
    int64_t amounts[8],sessionid;
};

added to gateway_AM:
        struct
        {
            unsigned char publickey[crypto_box_PUBLICKEYBYTES];
            unsigned char nonce[crypto_box_NONCEBYTES];
            unsigned char paymentkey_by_prevrecv[crypto_box_PUBLICKEYBYTES + crypto_box_SECRETKEYBYTES + crypto_box_ZEROBYTES];
            unsigned char payload_by_escrow[sizeof(struct payment_bundle) + crypto_box_ZEROBYTES];
        };

At the high level there are what I call sessions. Initially, when the activity is low, a session might be as long as a day, but as activity grows, the duration of a session will shrink. It is critical that your transaction isnt the only one in a session, otherwise no amount of anything will help anonymity. If there are 1000 transactions, then with a good system, the best anybody should be able to do is 0.1% accuracy, eg. random guessing.

Each session goes as follows:
A. NXTmixer pays out all the funds that cleared during the last session to the depositaddrs for each NXT addr that received anonymous payment during the session

B. NXTmixer publishes new sessionid and its public key for this session

C. ALL participating nodes publish a SEND_ANONYMOUS_PAYMENTS AM. Yes, I said ALL nodes.

D2. ALL nodes process all of the SEND_ANONYMOUS_PAYMENTS from C and they try to decrypt every paymentkey_by_prevrecv. If they are able to decrypt it (first half matches their previous public key) then they have access to the NXTacct that the password in the rest of the message contains.

D2. NXTmixer also scans all SEND_ANONYMOUS_PAYMENTS from C and processes all payment bundles that properly decrypt. paymentacct_key is for a (temporary) account that is funded with the amount necessary to make all the payments specified in the payment bundle. In order to make sure it wont be emptied and to MIX all the NXT together, the funds required to make all the payments are sent to a shared account. Since NXT is totally fungible, this step is actually VERY effective in removing payment source information.

The NXTmixer updates the credits for each NXTacct during session and when there is enough different payments or max time elapsed, the session ends and we go back to A, where the payments are made.

************
The NXTmixer cannot implement all parts of this by itself, the clients need to implement code that synchronizes all participating nodes. The reason for this is that if everybody is broadcasting, then there is no information leaked when you publish your public key and payment bundle. Since everything is on the same broadcast, anybody can receive the message, but nobody knows if they did or not. This allows a direct transmission of a funded NXT acct to somebody else. Let us assume you will trust them to not drain the account during the next two sessions. Since he is the one paying you, if he does, then whatever deal was in place is off.

userA funds acct A with 10000 NXT
userA encrypts password for acct A using public key of B and it goes into paymentkey_by_prevrecv

userB decrypts the AM and gets the password for acctA and locally verifies that it has 10000 NXT
Now, for the next session, userB sets the paymentacct_key to be the key for acctA and payments can be made from this acctA on behalf of userB, even though userB has NEVER used the password for acctA other than locally to encrypt it into the payment_bundle.

Similarly, you can specify your depositaddr to be an acct that you have never used, but know the password for. Then in later sessions, you can use depositaddr's password as the paymentacct_key. As long as you are receiving payments, you are able to make pretty anonymous payments as I am finding it hard to figure out how anybody can determine payment paths.

Can anybody find any serious flaws with this approach? Should I debug this and add it to the multigateway?

James


http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
mcjavar
Hero Member
*****
Offline Offline

Activity: 770
Merit: 500


View Profile
March 07, 2014, 08:02:13 PM
Last edit: March 07, 2014, 08:13:13 PM by mcjavar
 #41566

[NXTmixer announcement]
...



I think I am too dumb to understand it. But if it is working, than it´s something you deserve some bounty for! Respect!
bitcoinpaul
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1000



View Profile
March 07, 2014, 08:05:33 PM
 #41567

James is a machine.
Damelon
Legendary
*
Offline Offline

Activity: 1092
Merit: 1001



View Profile
March 07, 2014, 08:07:58 PM
 #41568

James is a machine.


Member of the Nxt Foundation | Donations: NXT-D6K7-MLY6-98FM-FLL5T
Join Nxt Slack! https://nxtchat.herokuapp.com/
Founder of Blockchain Workspace | Personal Site & Blog
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1090


View Profile WWW
March 07, 2014, 08:12:54 PM
 #41569

[NXTmixer announcement]
...



I think I am too dumb to understand it. But if it is working, than is it something you deserve some bounty for! Respect!
I am concerned that there is some information leaking, but I am too close to it to see. Earlier, I had a much more complicated setup where there was nesting of encryption and each node was able to randomly pick another node to decrypt the first layer and forward it onto the mixer if it was valid.

But all of that back and forth still had the problem of transferring funds from one account to another without being traced by IP packet sniffers.

I simplified it to its essence and I think the ability to specify a payment account and a deposit acct inside encryption is the key. Now, even with an IP packet sniffer watching and correlating the blockchain, you can route payments you get anywhere, without a trace that I can think of. If there was a service that circulated your own funds to you, then you would have an assured supply of anonymous payments you can make.

The cool thing is that this combines very cleanly with the NXTcash step Z. That is where you teleport funds into an account using a public wifi, so there is no trace to you. However, its kind of inconvenient to have to go to Starbucks everytime you want to access the private acct. I think that problem was simmering in my subconscious and what came out was NXTmixer, which needs as input a payment acct.

James

Edit: usually centralization is a big negative, but in the case of mixing NXT, it is the ultimate eraser of previous owners. unlike bitcoins txouts that let you trace back the full lifetime of spending, NXT is just a number and has no past history.

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
mcjavar
Hero Member
*****
Offline Offline

Activity: 770
Merit: 500


View Profile
March 07, 2014, 08:16:15 PM
 #41570

[NXTmixer announcement]
...



I think I am too dumb to understand it. But if it is working, than is it something you deserve some bounty for! Respect!
I am concerned that there is some information leaking, but I am too close to it to see. Earlier, I had a much more complicated setup where there was nesting of encryption and each node was able to randomly pick another node to decrypt the first layer and forward it onto the mixer if it was valid.

But all of that back and forth still had the problem of transferring funds from one account to another without being traced by IP packet sniffers.

I simplified it to its essence and I think the ability to specify a payment account and a deposit acct inside encryption is the key. Now, even with an IP packet sniffer watching and correlating the blockchain, you can route payments you get anywhere, without a trace that I can think of. If there was a service that circulated your own funds to you, then you would have an assured supply of anonymous payments you can make.

The cool thing is that this combines very cleanly with the NXTcash step Z. That is where you teleport funds into an account using a public wifi, so there is no trace to you. However, its kind of inconvenient to have to go to Starbucks everytime you want to access the private acct. I think that problem was simmering in my subconscious and what came out was NXTmixer, which needs as input a payment acct.

James

Edit: usually centralization is a big negative, but in the case of mixing NXT, it is the ultimate eraser of previous owners. unlike bitcoins txouts that let you trace back the full lifetime of spending, NXT is just a number and has no past history.


Could anyone validate this solution? Tech guys? Smiley
Fatih87SK
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500



View Profile
March 07, 2014, 08:19:54 PM
 #41571

Before we do any marketing we should know what the charasteristics are of NXT. Who are we? What are our visions etc.

In this picture you can see examples of brands who are keep playing the same game all the time.



For example I put Dogecoin at a place where they belong and where they are doing a good job;





Now... Where doo you think NXT belongs to?

Personally I think we belong to the "Investigative brand" like The North Face at the first picture. They also like investigating stuff to bring the best product at the market.

This is their Prezi presentation about their brand. Look at it and you will learn how branding works and you see how fun it is presenting with Prezi; http://prezi.com/dhwtijvukjtm/north-face-brand-analysis/

So what we have to do is;

1. Who are we?
2. What are our brand benefits?



3. What does the public think about us.
4. Does it match how we think about ourself?
5. No? Fix it!
6. Show the mass who we are.


7. Always be yourself and don't change your game;


Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2128
Merit: 1009

Newbie


View Profile
March 07, 2014, 08:21:45 PM
 #41572

James is a machine.

I want this thing that he smokes too.
Damelon
Legendary
*
Offline Offline

Activity: 1092
Merit: 1001



View Profile
March 07, 2014, 08:22:43 PM
 #41573






Creational brand.

Hands down, for me.

Member of the Nxt Foundation | Donations: NXT-D6K7-MLY6-98FM-FLL5T
Join Nxt Slack! https://nxtchat.herokuapp.com/
Founder of Blockchain Workspace | Personal Site & Blog
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1090


View Profile WWW
March 07, 2014, 08:25:11 PM
 #41574

James is a machine.

I want this thing that he smokes too.
What do you think of NXTmixer? Let us assume we can ignore quantum computers that can peek inside the encrypted data. With everybody broadcasting, there is no time based correlations. I could even make it so everybody has to send the same multiple of 100NXT, but I dont think that is necessary.

What am I missing? I couldnt have come up with a working mixer in a day?!

James

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

Activity: 37
Merit: 0


View Profile
March 07, 2014, 08:31:18 PM
 #41575

People want to hear confident leaders on a stage.
People want to hear confident leaders  on a stage.
People want to hear confident leaders  on a stage. 

Well, rickyjames, I think you are a pretty confident guy, do you want to be also a leader on a stage?  Grin

You know, I tried repeatedly to get on a stage to pitch NXT.   It's pretty clear that Paul Snow, the organizer of the conference, politely kept that from happening, altho he put me on an altcurency panel that he headed and ran quite well.  

The problem with putting a guy from NXT on a stage at this point is the current disconnect of the NXT group from the dev team master plan.   We need to get that straight before we go putting people on stage.  Are we a spendable coin?  Are we a Ripple?  Are we a science project?


The only way this issue will get resolved is if any of the big holders actually start hiring developers. WE NEED DEVELOPERS.
This community is SO centralized at the moment that we're 1 month from total collapse

Totally false.  We have 10M unclaimed Nxt to pay for developers.  Don't assume any stakeholder will donate 1 Nxt, that is a huge mistake and the wrong direction to take.  Failure of Nxt will have nothing to do with Stakeholders at this point.  We need to encourage Stakeholders to contribute any way they can, constantly berating them on this thread will only push them into hiding more.  Guys like Pouncer, Klee, etc.. have contributed great amounts to help us and BCNext has gifted us with 10M Nxt to use.  That is an incredible amount and we should all be thankful.
Well said,msin. Totally agreed!
jkoil
Hero Member
*****
Offline Offline

Activity: 723
Merit: 503


View Profile
March 07, 2014, 08:33:11 PM
 #41576


   Total: Fee earned 701996 NXT   
6483973064837388393 has mined 163299 NXT.
The 2nd is     4747512364439223888    with 101830 NXT.
In the table below is the top "miners" and their cumulative NXT amount and cumulative percentages.


In the forum was yesterday a nxt balance distribution: top100 has 82.7%
https://bitcointalk.org/index.php?topic=345619.msg5034054#msg5034054
 
In mining/forging the distribution is worse: 4 accounts have mined 56.7%, 28 accounts have mined 90%, and 98 accounts 99% and 400 accounts 100%.



    Fee Earned       %                     TOP accounts
    cumulative  cumul.

   163163    23.2                6483973064837388393
   253458   36.1                4747512364439223888
   334469    47.6                12692935506199079028
   398066    56.7                9433259657262176905
   433008     61.7                2159498187382012684
   458350     65.3                2584657662098653454
   480373     68.4
   501797     71.5
   516684     73.6
   528616     75.3
   540357     77.0
   551740    78.6
   562741    80.2
   571905    81.5
   579116    82.5
   585703    83.4
   591579    84.3
   597233    85.1
   602481    85.8
   606923    86.5
   610916    87.0
   614900    87.6
   618815    88.2
   622026    88.6
   625180   89.1
   628267   89.5
   631337   89.9
   634377    90.4





Is that 6483973064837388393 some special account?
 it has had at maximum ~ 3 Million NXT, but it has earned fees almost double than those 50 Million's accounts.





Total: Fee earned 784334 NXT   :     82000 NXT more than in 11th Feb 
                                                      (is that increase possible? - otherwise some data error).


Cumulative % of
fee earned, starting from TOP1
        20.8
        34.3
        44.6
        53.4
        57.8
        61.9



TOP's share is smaller than earlier.
In mining/forging the distribution is now:
4 accounts have mined 53.4% (less than before),
28 accounts have mined 88% (less),
and 98 accounts 97.9% (less) and
590 (more) accounts has forged 100%   i.e. 590 accounts has got some fees.


Something has made the distribution "better" ...   Smiley



7th Mar 2014
Total: Fee earned  801279 NXT   :     16000 NXT more than in 20th Feb  
                                                    

Cumulative % of
fee earned, starting from TOP1
        20.4
        34.1
        44.2
        52.8
        57.2
        61.3


TOP's share is smaller than earlier.
In mining/forging the distribution is now:
4 accounts have mined 52.8 % (less than before),
28 accounts have mined 87.4 % (less),
and 98 accounts 97.7 % (less) and
658 (more) accounts has forged 100%   i.e. 658 accounts has got some fees.


So ... distribution is going on, but very slowly.

NXT, NEM.   NCMXTP-5JWUF3-QYHADC-YWELC5-QPUWF3-EAVFQM-MU7R
mcjavar
Hero Member
*****
Offline Offline

Activity: 770
Merit: 500


View Profile
March 07, 2014, 08:33:35 PM
 #41577

...

I think we belong to the crational part.
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2128
Merit: 1009

Newbie


View Profile
March 07, 2014, 08:39:00 PM
 #41578

I decided to use my right not to follow BCNext's orders that I don't like (it's allowed by the contract).

I think we should sort out important things like TF, discuss BCNext's ideas and then decide if we want to implement them (Account Control particularly). No need to stick to the plan, IMHO. I'll wait for the 3rd (last) part.
zorke
Full Member
***
Offline Offline

Activity: 238
Merit: 100


View Profile
March 07, 2014, 08:40:51 PM
 #41579

People want to hear confident leaders on a stage.
People want to hear confident leaders  on a stage.
People want to hear confident leaders  on a stage. 

Well, rickyjames, I think you are a pretty confident guy, do you want to be also a leader on a stage?  Grin

You know, I tried repeatedly to get on a stage to pitch NXT.   It's pretty clear that Paul Snow, the organizer of the conference, politely kept that from happening, altho he put me on an altcurency panel that he headed and ran quite well.  

The problem with putting a guy from NXT on a stage at this point is the current disconnect of the NXT group from the dev team master plan.   We need to get that straight before we go putting people on stage.  Are we a spendable coin?  Are we a Ripple?  Are we a science project?


The only way this issue will get resolved is if any of the big holders actually start hiring developers. WE NEED DEVELOPERS.
This community is SO centralized at the moment that we're 1 month from total collapse

Totally false.  We have 10M unclaimed Nxt to pay for developers.  Don't assume any stakeholder will donate 1 Nxt, that is a huge mistake and the wrong direction to take.  Failure of Nxt will have nothing to do with Stakeholders at this point.  We need to encourage Stakeholders to contribute any way they can, constantly berating them on this thread will only push them into hiding more.  Guys like Pouncer, Klee, etc.. have contributed great amounts to help us and BCNext has gifted us with 10M Nxt to use.  That is an incredible amount and we should all be thankful.
Well said,msin. Totally agreed!

I completely agree, 10 M is a lot and what better way to spend them than on developers. I said this same thing a day or two ago about our official client. Let's spend these 10M wisely. If we were thinking like this in January we would have had a client at this moment.
mcjavar
Hero Member
*****
Offline Offline

Activity: 770
Merit: 500


View Profile
March 07, 2014, 08:43:29 PM
 #41580

I decided to use my right not to follow BCNext's orders that I don't like (it's allowed by the contract).

I think we should sort out important things like TF, discuss BCNext's ideas and then decide if we want to implement them (Account Control particularly). No need to stick to the plan, IMHO. I'll wait for the 3rd (last) part.

What is the plan we are not sticking to?
Pages: « 1 ... 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 [2079] 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 ... 2560 »
  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!