Ethereum Client Parity Adds Support for Encrypted Smart Contracts

Advertisement

Ethereum client Parity has added support for on-chain private transactions in its latest software update, providing developers with the ability to create and deploy encrypted smart contracts.

Released on Tuesday, Parity 1.11.1-beta introduces several new features to the software client, which remains popular even though several bugs in Parity’s multisig smart contract libraries have given the company a black eye — and have caused users to lose access to hundreds of millions of dollars worth of funds.

The most eye-catching feature in the new release is the support for private transactions, which allows developers to encrypt smart contracts. The underlying code is stored in a private contract, which is permissioned and thus not publicly viewable. The private contract is then wrapped in a public contract, enabling authorized users to interact with it on-chain without exposing the private contract’s code.

From the release notes:

“Private Transactions make it possible for you to store, modify, and view code and state for a set of permissioned participants. This means that with private transactions on public chains, all contracts and transactions are accessible only by those with the right permissions viewable by anyone, but now you can work with others in the open behind strong encryption.”

And here’s another explanation, posted on Reddit by Parity developer Maciej Hirsz:

“Private Transactions are basically Private Contracts, where the state and the code of the contract are both encrypted. Transaction is first sent off-chain to a number (specified by the contract) of Validators that all have to agree on what the new state is, then you take the new encrypted state with signatures of all of the Validators to update it on-chain. Key sharing is enabled using a threshold cryptography scheme that enables certain parties to be permissioned to securely receive key parts from what we call Secret Store.”

In the initial release, this feature has several limitations, including the ability to execute only one private transaction per block per contract. Moreover, there is not currently a way to configure how many validators must verify private transactions, so all validators must do so under the current structure.

In addition to private transactions, Parity 1.11.1-beta improves the client’s “warp sync” functionality, which allows users to sync their nodes to a recent blockchain snapshot, saving significant time over conventional methods. The new version also gives nodes the ability to verify transactions in parallel, optimizing the process considerably.

Josiah is a full-time journalist at CCN. A former ancient and medieval literature teacher, he has been reporting on cryptocurrency since 2014. He lives in rural North Carolina with his wife and children. Follow him on Twitter @Y3llowb1ackbird or email him directly at josiah.wilmoth(at)ccn.com.