It is effectively very similar to copyright assignment as it gives Elastic basically the same rights they would have if they were assigned the copyright. The only difference is the contributor also gets those rights, but in reality the rights they keep are not that useful since the rest of the codebase is owned by others.