Bittrex comprare vendere e fare trading di bitcoin di cryptomonete alternative tutorialguida37 comments
How to mine bitcoin with graphics card
When, years ago, I dove into Blockchain technology, Smart Contracts were in their infancy. Plenty has changed since then. It now seems prudent to go on an exploration of what are Smart Contracts and how useful are they.
Are they a fad? Do they even make sense? Who should use them? Is it wise to get your company involved? A contract is a set of promises agreed by two or more parties. A contract isn't limited to paper, but to any promise agreed upon, implicitly or explicitly.
For example, we can make an agreement between a client and a freelancer. The freelance promises to deliver on what the client wants.
The client agrees to pay the freelance a negotiated fee in exchange. If the freelancer doesn't provide or the delivery doesn't perform as the client approved, then there is a breach of contract. The client is then entitled, upon their contract, to withhold the freelancer's fee.
This is an elementary example, but one we're very familiar with. In this case, the contract is explicit, but it could also be implicit. Every time you go to a Parking, you implicitly agree to a contract with the parking owner. You can park your car, but in exchange, you need to pay for the use of the space.
Upon payment and delivery of the proof of payment, the parking barrier will let you out of the structure. Some of these agreements are formal; others are informal. Some are explicit; others aren't.
The notion of contracts though entails several problems. Often, contracts end up in dispute because the parts can't agree on the performance of the delivery. Other times, one of the parties breaches the contract and cheats the other side. In some cases, there are some information asymmetries between the parts. One side might have inside information, putting the other part at a disadvantage when negotiating the contract.
The way we negotiate the terms of a contract; the dispute resolution laws; or even the consequences of a breach of the agreement, will vary wildly between jurisdictions, cultures, and continents.
This is where Smart Contracts come into play. I can't but admire Szabo's prescient mind. Not only did he predicted the potential of cryptography to secure binding contracts, but he also took a pass at the future state of the Internet of Things IoT.
At the time, the technology couldn't deliver on all this. Bitcoin, Blockchain, and Ethereum changed that. As technology and broadband started evolving, the future of Smart Contracts became the present. The increase of Internet penetration and the rise of the cloud computing paradigm started allowing complex deployments with global reach. Smart Contracts started appearing everywhere. These systems allowed the deployment of automated enforcement of social contracts. The systems supporting them became distributed and automated, fulfilling part of what Szabo envisioned.
There was still some unresolved problems with such architectures. It lacked two key components, transparency, and decentralization. Transparency to know what set of rules govern the contract, what information is the other part storing and what are they doing with it.
Lack of transparency puts the security of the deal in jeopardy. While one party promised privacy and security, the others had to trust it was so blindly. Decentralization was also lacking. It ensures the integrity and enforceability of the contract. If the contract is own by a single entity, it's easy for them to change the terms of the contract unilaterally and even to avoid the enforceability.
Decentralization allows for independent verification and makes it harder to commit fraud. The underlying technology, the Blockchain, suddenly makes genuinely decentralized computing a reality.
On top of its decentralized nature, the way the Blockchain operates includes mechanisms for trusted consensus and irrevocable operations. With a strict focus on the currency aspect, Bitcoin though remains very limited. The Bitcoin team ignores voices asking for an expansion of the protocols. An extension that would enable more advanced uses of the Blockchain.
In July of , Ethereum comes to life. The system builds on the idea of Blockchain and uses its characteristics to develop the first distributed, decentralized secure Turing Complete computing platform. Ethereum, while inspired by Bitcoin, is an entirely different beast. In the same way, you used to pay for time on a supercomputer; you also pay for the time your code runs on the Ethereum network Note: Ethereum charges per executed instruction, and not time per se.
Ethereum was designed to support the creation of Smart Contracts. Ethereum's primary scripting language is called Solidity and enables some basic programming operations. Each node of the system runs the program simultaneously. This synchronicity ensures the anti-tampering of the execution. But It also imposes severe limits on the computational capacity of the network.
There is a cost, both regarding network use, the number of instructions executed and storage used. Ether's goal is to pay for resources in its network, while Bitcoin was designed to operate as an alternative to fiat currencies.
Here lies a big difference between both systems. There are a series of implications to this that are critical to Smart Contracts. Ethereum enables any developer to code a simple program that runs in a distributed, decentralized network. Once we send the application to the system, the code and it's associated data storage database will get replicated around the network.
Our code is now secured, replicated and protected against any tampering. Once stored, the Ethereum Blockchain assigns a unique id or address in Ethereum parlor to reference the uploaded code. While on a regular computer we interact with it via clicks, in Ethereum we interact with transactions. There are three kinds. The idea is identical to Bitcoin. We might want to transfer, split, share or give Ether to other people. The second kind of transaction is slightly more complicated. The transaction will send both the code and the money to pay for the execution gas.
The system will return the address we can call upon to execute our program. In the same way as before, we transfer money to the program's address, and this will trigger the execution. The fact that Ethereum even exists is already impressive. There are still several problems with Ethereum and its Smart Contracts that are worth highlighting. For starters, the current interfaces to manage its Smart Contracts are crude.
It begs to remember what Szabo mentioned in his article:. These would hide the details of the protocol without surrendering control over the knowledge and execution of contract terms. That's not the case for Ethereum. Even if you best coders craft a fabulous contract, it's essential to design an abstraction layer to hide the protocol details.
This hasn't been the case and won't be for a while. Ethereum Smart Contracts are severely limited. On the other side, it's not easy to import data streams from outside the network. External information is relevant to bot negotiating clauses and analyzing the performance of the contract. Without external validation, the use of such Smart Contracts is severely limited. These are programs that connect the Ethereum platform with the outside. They allow Ethereum code to import external data feeds.
There are two issues with them though. For starters, it's hard to secure the information that comes from an Oracle. Due to the secure nature of Smart Contracts, any information used to execute it also needs to be ensured through a chain of custody. Using an Oracle incurs on higher processing fees within the network. This might render the advantages of running it on Ethereum mute.
Once we upload the code to the network, it becomes immutable. This is by design. The problem though is that updating or upgrading the contract becomes a nightmare.