-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
517bf11
commit 6c5d77f
Showing
20 changed files
with
1,918 additions
and
138 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
--- | ||
title: Smart contracts | ||
description: Introdukshon wey nor dey hard to smart kontracts | ||
lang: pcm | ||
--- | ||
|
||
# Introdukshon to smart kontracts {#introduction-to-smart-contracts} | ||
|
||
Smart kontracts na di buildin blocks wey Ethereum aplikashon layer dey sidon. Dem bi komputa programs weyd em store on di [blockchain](/glossary/#blockchain) wey follow "if dis den sey" logik, and dey guarantee to do akordin to di rules wey dem don define by im kode, wey nor fit shanj wons dem don kreate am. | ||
|
||
Na Nick Szabo give am di name "smart kontract". In 1994, e write abou [introdukshon to wetin smart kontracts bi and hau e go dey work](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html)and in 1996 e write abou [wetin smart kontracts fit do](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). | ||
|
||
Szabo don see one digital marketplace wia automatik, [ dey cryptographically-secure](/glossary/#cryptography) processes make transakshons and biznes funshon to dey hapun witout any nid for any middol man wey dem trust. Smart kontracts on Ethereum dey praktis dis vishon. | ||
|
||
Make yu watch hau Finematiks dey eksplain smart kontracts: | ||
|
||
<YouTube id="pWGLtjG-F5c" /> | ||
|
||
## Trust in konvenshonal kontracts {#trust-and-contracts} | ||
|
||
One of di palava wey big pass wit one tradishinal kontract na di nid for individual wey dem trust to follow thru wit di kontract outkomes. | ||
|
||
One eksampol dey hia: | ||
|
||
Alice and Bob wan do bicycle race. Make wi say Alice dey yus $10 wey e go yus win di race. Bob dey konfident sey e go win di race and agree to di bet. In di end, Alice dey finish di race well ahead of Bob and na di klear winna. But Bob rifuse to dey pay out on di bet, dey klaim sey Alice suppose don cheat. | ||
|
||
Na dis kind silly eksampol we fit yus do ekampol for di palava wey nor smart. Even if dem don meet di kondishons (i.e. yu bi di winna of di race), yu suppose still trust anoda pesin to fulfill di agreement (i.e. payout on di bet). | ||
|
||
## One digital vending machine {#vending-machine} | ||
|
||
One simpol metafor for one smart kontract na one vending machine, wey dey work di same to one smart kontract - spesifik inputs guarantee preditamine outputs. | ||
|
||
- Make yu select one product | ||
- Di vending machine dey display di price. | ||
- Make yu pay di price | ||
- Di vending machine dey sheck dat yu don pay di koret amount | ||
- Di vending machine dey give yu yur item | ||
|
||
Di vending machine go only give yur product wey yu wont afta yu don meet all di rikwayament. If yu nor selet one product abi out enuf monie, di vending machine nor go give yu yur product. | ||
|
||
## Na automatik exekushon {#automation} | ||
|
||
Di main benefit of smart kontract bi sey im run big-big kode wen im don meet satain kondishons. Nor nid to dey wait for human to interpret abi negoshiate di rizut. Dis dey rimuv di nid for intamidiaris wey dem trust. | ||
|
||
For eksampol, yu fit write one smart kontract dey dey hold funds in escrow for one pikin, dey allow dem witdraw funds afta one spesifik date. If dem dey try witdraw bifor dat date, di smart kontract nor go run. Abi yu fit write one kontract wey dey automatikaly give yu gijita vashon of car titol wen yu pay di dealer. | ||
|
||
## Outkome wey yu fit predit {#predictability} | ||
|
||
Tradishonal kontracts dey big wella bikos dem dey rely on human to interpret and do dem. For eksampol, tw judges fit interpret one kontract for difren ways, wich fit lead to disishon wey nor konsistent and outkomes wey nor dey ekwol. Smart kontracts dey rimuv dis posibility. Insted, smart kontracts dey run koret base on di kondishons wey dem write within di kontract kode. Dis presishin mean sey as di situashon bi, di smart kontract go produs di same rizut. | ||
|
||
## Rekod wey dey publik {#public-record} | ||
|
||
Smart kontracts dey yusful fir audits and to dey track. Sinse Ethereum smart kontract dey for publik blockchain, anyone fit track asset transfer instanata and oda info wey rilate to am. Foe eksampol, yu fit shek to see sey someone don send monie to yur address. | ||
|
||
## Privacy protekshon {#privacy-protection} | ||
|
||
Smart kontract dey also protet yur privacy. Sinse Ethereum na one pseudonymous netwok (yur transakshons dey tie publikly to one unik cryptogrhik address, nor bi yur identity), yu fit protet yur privacy from pipol wey dey obsarve. | ||
|
||
## Terms wey dey visibol {#visible-terms} | ||
|
||
Las las, like tradishonal kontracts, yu fit shek wetin dey smart kontract bifor yu sign am (abi odawise interact wit am). Smart kontract transparensy make sure sey anyone fit verify am. | ||
|
||
## Tins wey we fit yus smart kontracts do {#use-cases} | ||
|
||
Smart kontracts fit do almost anytin wey komputa fit do. | ||
|
||
Dem fit pafom komputashons, kreate kurrensy, store data, mint [NFTs](/glossary/#nft), send komunikashons and even generate graphics. Here bi some popular, real world eksampol: | ||
|
||
- [Stabolcoins](/stablecoins/) | ||
- [To dey kreate and dey distribute unik dijital assets](/nft/) | ||
- [One automatik, open kurensy ekshanj](/get-eth/#dex) | ||
- [Decentralized gaming](/dapps/?category=gaming#explore) | ||
- [Insurans policy wey go dey pay out automatikaly](https://etherisc.com/) | ||
- [One standard wey dey allow pipol kreate kustomized, interopabol kurensis](/developers/docs/standards/tokens/) | ||
|
||
## Further reading {#further-reading} | ||
|
||
- [Hau Smart Kontracts Go Shanj di World](https://www.youtube.com/watch?v=pA6CGuXEKtQ) | ||
- [Smart Kontracts: Di Blockchain Teknologi Wey Go Riplase Lawyers](https://blockgeeks.com/guides/smart-contracts/) | ||
- [Smart kontracts for divelopas](/developers/docs/smart-contracts/) | ||
- [Make yu learn to write smart kontracts](/developers/learning-tools/) | ||
- [To dey masta Ethereum - Wetin bi Smart Kontract?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
--- | ||
title: Distributed validator teknologi | ||
description: Distributed validator teknologi enabol di distributed operashon of one Ethereum validator by multipol partis. | ||
lang: pcm | ||
--- | ||
|
||
# Distributed validator teknologi {#distributed-validator-technology} | ||
|
||
Distributed validator teknologi (DVT) na one way to validator sekurity wey dey spread out key managment and ey sign responsibilitis akross multipol partis, to ridus singol points of failure, and dey inkrease validator resiliensy. | ||
|
||
Im dey run dis by **splitting di private key** wey dem yus to sikure one validator **akross plenti komputas** wey dem organize into one "klusta". Di benefit of dis bi sey im dey make am difikut wella for attakas to get di key, bikos dem nor store am in full on any singol mashine. Im also dey allow for some nodes to go offline, as dem fit do necessary signin by one subset of di mashines in ish klusta. Dis dey ridus singol points of failure from di netwok and dey make di whole validator set more big wella. | ||
|
||
![One pikshure wey dey show hau singol validator key split into key shias and don distribute to plenti nodes wit difren komponents.](./dvt-cluster.png) | ||
|
||
## Why do wi nid DVT? {#why-do-we-need-dvt} | ||
|
||
### Security {#security} | ||
|
||
Validators dey denerate two publik-private key pairs: validator keys to dey yus partisipate in konsensus and witdrawal keys to dey yus funds. As validators fit sikure witdrawal keys for cold storaj, validator private keys suppose dey online 24/7. If yu kompromise one validator private key, one attaka fit kontrol di validator, wey fit dey lead to slashing abi di loss of di ETH staka. DVT fit helep yu ridus dis risk. Hia na hau: | ||
|
||
As wi dey yus DVT, stakas fit partisipate to dey stake while to dey kip di validator private key in kold storaj. Dem ashieve dis by kodin di orijina, full validator key and den to dey split am into key shias. Di key dey shia live online and dey on plenti nodes wey enabol di distributed operashon of di validator. Dis dey posibol bikos Ethereum validators dey yus BLS signashure wey dey additive, wey mean sey dem fit konstrut di full key again by summing dia komponent parts. Dis dey allow di stakers to kip di full, orijina 'masta' validator key sikurely offline. | ||
|
||
### No singol point of failure {#no-single-point-of-failure} | ||
|
||
Wen dem don divide validator akross plenti operators and plenti mashines, im fit witstand individual hardwia and softwia failures witout going offline. Dem fit also ridus di risk of failures as yu dey yus divarse hardwia and softwia konfigurashons akross di nodes in one klusta. Dis resiliens nor dey afailabol to singol-node validator konfigurashons - im dey kome from di DVT layer. | ||
|
||
If one of di komponents of one mashine for one klusta go down (for eksampol, if four operators dey in one validator klusta and one dey yus spesifik klient wey get one bug), di odas ensure sey di validator go kontinu to dey run. | ||
|
||
### Comot from only one place {#decentralization} | ||
|
||
Di ideal scenario for Ethereum na to get as many operated validators wey dey indipendent as posibol. Haueva, a few staking providas don bikom very popular and akant for one big porshon of di total ETH on di netwok wey yu stake. DVT fit allow dis operators to exist while dey prisarve disentralizashon of stake. Dis na bikos di keys for ish validator dey distributed akross many mashines and im go take plenti big kollushon for one validator to turn malishious. | ||
|
||
Witout DVT, im dey izy for staking providas to suppot only one abi two klient konfigurashons for all dia validators, as e dey inkrease di impact of one klient bug. Yu fit yus DVT to spread di risk akross plenti klient konfigurashons and difrent hardwia, wey dey kreate resiliens thru diversity. | ||
|
||
**DVT dey offer di followin benefits to Ethereum:** | ||
|
||
1. **Disentralizashon** of Ethereum's proof-of-stake konsensus | ||
2. Make sure sey di **liveness** of di netwok | ||
3. Dey kreate validator **fault tolerans** | ||
4. **Trust minimized** validator operashon | ||
5. **Minimized slashing** and downtime risks | ||
6. **Dey impruf diversity** (client, data center, lokashon, regulashon, etc.) | ||
7. **Enhanced sekurity** of validator key management | ||
|
||
## Hau DVT dey work? {#how-does-dvt-work} | ||
|
||
One DVT solushon kontain di following komponents: | ||
|
||
- **[Shamir's sikrit sharing](https://medium.com/@keylesstech/a-beginners-guide-to-shamir-s-secret-sharing-e864efbf3648)** - Validators yus [BLS keys](https://en.wikipedia.org/wiki/BLS_digital_signature). Individual BLS "key shia" ("key shia") fit dey kombine into one singol aggregated key (signature). In DVT, di private key for one validator na di kombine BLS signashure of ish operator in di klusta. | ||
- **[Threshold signashure scheme](https://medium.com/nethermind-eth/threshold-signature-schemes-36f40bc42aca)** - Dey ditamine di numba of individual key shias wey wi nid to dey sign dutis, e.g., 3 out of 4. | ||
- **[Distributed key generashon (DKG)](https://medium.com/toruslabs/what-distributed-key-generation-is-866adc79620)** - Cryptographic process wey dey generates di key shias and dey yus am distribute di shias of one validator key wey dey exist abi new to di nodes in one klusta. | ||
- **[Multiparty computashon (MPC)](https://messari.io/report/applying-multiparty-computation-to-the-world-of-blockchains)** - Dem dey generate di full validator key in sikrit as dem dey yus multiparty computashon. Dem nor sabi full key to bi any individual operator—dem only eva sabi dem own part of am (dem "shia"). | ||
- **Konsensus protokol** - Di konsensus protokol dey select one node wey go bi di block proposer. Dem shai di book wit oda nodes in di klusta, wey add dem key shias to di aggregate signashure. Wen dem don gada enuf key shias, dem propose di block on Ethereum. | ||
|
||
Distributed validators don built-in fault tolerans and fit kontinu to dey run even if some of di individual nodes go offline. E means sey di klusta dey risilient even if some of di nodes within am turn out to bi malishios abi lazy. | ||
|
||
## DVT dey yus kase {#dvt-use-cases} | ||
|
||
DVT get strong implikashons for di big staking industry: | ||
|
||
### Solo stakers {#solo-stakers} | ||
|
||
DVT also enabols non-kustodial staking as dem allow yu distribute yor validator key akross remote nodes as dem dey kip di full key offline kpatakpata. Dis means home stakers nor necessarily nid to outlay for hardwia, as to dey distribute di key shias fit helep dem stand against hacks wey fit hapun. | ||
|
||
### To dey stake as service (SaaS) {#saas} | ||
|
||
Operators (such as to dey stake pools and institushonal stakers) wey dey manaj many validators fit yus DVT to ridus dia risk. By distributin dia infrastrukshure, dem fit add resundansy to dia operashons and diversify di types of hardwia dem yus. | ||
|
||
DVT sey shai responsibility for key manajment akross multipol nodes, wey mean dem fit shia some operashonal kost. DVT fit also ridus operashonal risk and insurans kost to dey stake providas. | ||
|
||
### Places wey dem dey stake {#staking-pools} | ||
|
||
Due to standard validator setups, dem don kompel dem to dey stake pools and liquid staking providas to have varying levels of singol-operator trust sinse dem don soshialize gains and losses thruout di pool. Dem also rely on operators to safeguard signing keys bikos, ontil nau, nor oda opshon dey for dem. | ||
|
||
Even doh tdem don make radishonal efforts to spread risk as dem dey distribute stakes akross plenti operators, ish operator still manaj one koko stake on dem own. To dey rely on one singol operator dey pose big risk if dem nor pafom well, enkounta downtaim, get kompromise, abi do malishiosly. | ||
|
||
By dipending on DVT, di trust rikwaya from operators don ridus wella. **Pools fit enabol operators to hold stakes wit nor nid of kustody of validator keys** (as dem fit yus only key shias). Im dey also allow yu manaj stakes to distribute bitwin more operators (e.g., insted to get one singol operator wey dey manaj 1000 validators, DVT dey enabol plenti operators to gada run doz validators). Divarse operator konfigurashons go make sure sey if one operator suppose go down, di odas go still fit konfam am. Dis dey kause redundansy and diversifikashon wey lead to betta perfomans and risiliens, as yu dey maximize riwods. | ||
|
||
Anoda benefit to dey maximize sigol-operator trust bi sey staking pools fit allow more open and operator participashon wey nor get pamishon. As we dey do dis, savis fit ridus dia risk and suppot Ethereum disentralizashon as dem dey yus sets of operators wey dey kurated and nor get pamishon. | ||
|
||
## Potenshial drawbacks to dey yus DVT {#potential-drawbacks-of-using-dvt} | ||
|
||
- **Addishonal komponent** - to dey introdus one DVT node adds wey be anoda part wey fit get fault abi dey vulnerabol. One way to mitigate dis na to strive plenti implimentashons of one DVT node, meaning plenti DVT klients (similarly as plenti klients dey for di konsensus and exekushon layers). | ||
- **Operashonal kost** - as DVT dey distribute di validator bitwin plenti partis, plenti nodes wey wi sabi for operashon insted of only one singol node, wey dey introdus inkrease operating kost. | ||
- **Potenshialy inkreased latency** - sinse DVT dey yus one konsensus protokol to ashieve konsensus bitwin plenti nodes wey dey operate one validator, im fit introdus increased latency. | ||
|
||
## Further Reading {#further-reading} | ||
|
||
- [Ethereum distributed validator speks (high level)](https://github.com/ethereum/distributed-validator-specs) | ||
- [Ethereum distributed validator teknika speks](https://github.com/ethereum/distributed-validator-specs/tree/dev/src/dvspec) | ||
- [Shamir sikrit to dey shia demo app](https://iancoleman.io/shamir/) |
Oops, something went wrong.