Salamaverkko on todennäköisesti odotetuin teknologinen innovaatio, joka voidaan ottaa käyttöön Bitcoinin päälle. Joseph Poonin ja Tadge Dryjan ensimmäisen kerran noin vuosi sitten ehdottama maksutaso lupaa tukea käytännössä rajattoman määrän ketjujen ulkopuolisia tapahtumia käyttäjien keskuudessa lähes ilman kustannuksia – samalla hyödyntämällä Bitcoinin tarjoamaa turvallisuutta.
Ainakin kolme yritystä – Poon ja Dryja Salama, Blockstream ja Blockchain – työskentelevät parhaillaan tekniikan toteutusten parissa. Mutta harvat tämän pienen teknologisen etulinjan ulkopuolella ymmärtävät täysin, kuinka “mikromaksujen tulevaisuus” on asetettu parantamaan Bitcoinin ominaisuuksia.
Tässä kolmiosaisessa sarjassa, Bitcoin-lehti esittelee salamaverkon peruselementit ja näyttää, kuinka ne sopivat yhteen tämän tulevan protokollakerroksen toteuttamiseksi.
Tämän sarjan ensimmäinen osa käsitti perusrakenteet ja selitti, miten niitä käytetään kaksisuuntaisten maksukanavien luomiseen. Tämä toinen osa selittää, kuinka kaksisuuntaiset maksukanavat muutetaan verkoksi.
Verkko
Alice ja Bob perustivat edellisessä artikkelissa kaksisuuntaisen maksukanavan. Nyt Alice haluaa maksaa yhden bitcoinin kolmannelle henkilölle, Carolille.
Tätä varten Alice ja Carol voivat avata keskenään maksukanavan. Mutta heidän ei todellakaan tarvitse. Kuten käy ilmi, Bobilla ja Carolilla on jo yhteinen kanava, joten Alice voi yksinkertaisesti maksaa Carolille Bobin kautta.
Alice voi maksaa Bobille yhden bitcoinin ja Bob voi maksaa Carolille yhden bitcoinin.
Alice ei kuitenkaan luota Bobiin – tai Caroliin. Hän pelkää, että jos hän maksaa Bobille, Bob ei koskaan maksa Carolille. Tai ehkä Bob tahtoa maksa Carolille, mutta Carol väittää, ettei hän ole koskaan saanut rahaa, eikä Alice tiennyt kenen syytä olla.
Siksi Alice haluaa varmistaa, että hän maksaa Bobille vain yhden bitcoinin, jos hän maksaa myös Carolille yhden bitcoinin. Tämä toteutetaan (osittain) yksinkertaisella salaustekniikalla.
Kun Alice haluaa lähettää Carolille bitcoinin, hän kehottaa Carolia luomaan arvon (satunnainen numerosarja) ja lähettämään hänelle hashin. Alice kehottaa myös Carolia vaihtamaan alkuperäisen arvon Bobin kanssa bitcoiniksi.
Sillä välin Alice ottaa hashin Carolilta, kääntyy Bobin puoleen ja kertoo Bobille, että hän antaa hänelle bitcoinin, jos hän antaa hänelle vastaavan arvon (joka on vain Carolilla).
Joten, Bob kääntyy Carolin puoleen ja antaa Carolille yhden bitcoinin vastineeksi arvosta.
Sitten Bob palaa takaisin Aliceen kanssa arvo. Alice tietää, että Bobin on pitänyt saada arvo Carolilta vastineeksi bitcoinista, ja päättelee siksi, että Carol sai bitcoininsa. Joten Alice voi antaa luottavaisesti Bobille bitcoinin.
Kaikki ovat onnellisia.
Hyvin… melkein kaikki ovat onnellisia.
Tässä ”naiivissa” skenaariossa välimies Bobin on edelleen luotettava Aliceen ja Caroliin. Bobin on luotettava Caroliin todella antamaan hänelle arvo sen jälkeen, kun hän on lähettänyt hänelle bitcoinin, ja Bobin on luotettava Aliceen todella antamaan hänelle bitcoin, kun hän esittää hänelle arvon.
Siksi bitcoin-for-value-kaupat on ehdottomasti taattava verkon kautta. Tarkemmin: jos Bob antaa bitin Carolille on pakko taataan saavansa bitcoinin takaisin Alicelta.
Siellä tulevat Hash-aikalukitut sopimukset (HTLC).
Hash-ajastetut sopimukset
Joten Alice ja Bob haluavat vaihtaa bitcoinin arvoon HTLC: n kautta. (Ja Bob ja Carol haluavat myös vaihtaa bitcoinia samaan arvoon – mutta älä välitä siitä toistaiseksi.)
Voit tehdä niin sen sijaan, että Alice lähettää Bobille bitcoinin suoraan ylöspäin, Alice lähettää bitcoinin uuteen (ja jälleen kerran: funky) multisig-osoitteeseen. Tähän osoitteeseen lukitut bitcoinit voidaan avata kahdella eri tavalla.
Ensimmäinen vaihtoehto on, että Bob lisää allekirjoituksensa ja arvo.
Toinen vaihtoehto on, että Alice liittää oman allekirjoituksensa. Tässä vaihtoehdossa on kuitenkin CLTV-aikalukko: Alice voi allekirjoittaa ja lähettää tapahtuman vasta kahden viikon kuluttua.
Tämä tarkoittaa, että Bobilla on kaksi viikkoa aikaa luoda seuraava tapahtuma, jossa hän sisältää allekirjoituksensa ja arvonsa, ja lähettää sen lähettääkseen bitcoin funky-multisig-osoitteesta itselleen. Sellaisena tämä kauppa on taattu. Bob voi vain vaatia Alicen bitcoinia, jos hän antaa arvon: lähettämällä se Bitcoin-verkon kautta Alice näkee sen julkisesti.
Ja jos Bob ei anna arvoa ajallaan, Alicella on “aikakatkaisuvaihtoehto” saada bitcoin takaisin. Yksinkertainen.
Palaa verkkoon, koska tämän vuoksi tarvitaan HTLC-määritys.
Kuten mainittiin, paitsi Alice ja Bob, myös Bob ja Carol perustivat HTLC: n. Niin, jos Carol vaatii bitcoiniaan Bobilta, Bobilta tahtoa saada arvo vastineeksi; se näkyy lohkoketjussa.
Siksi, jos niin tapahtuu, Bob taataan saavan bitcoin myös Alicelta. Bob voi ottaa arvon, jonka Carol teki julkisesti näkyväksi lohkoketjussa, sisällyttää sen HTLC: hen Alicen kanssa ja vaatia myös bitcoinia itselleen. Nämä kaksi kanavaa on kytketty toisiinsa.
Viimeisenä yksityiskohtana se On tärkeää, että Bob saa arvon Carolilta ennen Alice voi palauttaa bitcoininsa Bobilta. Jos Bob saa arvon vain Carolilta jälkeen Alice otti jo takaisin selkänsä, Bob on kuitenkin jumissa keskellä. Bobin ja Carolin HTLC: n aikakatkaisun on siis oltava kulunut ennen Alicen ja Bobin HTLC: n aikakatkaisu päättyy. (Esimerkiksi täsmälleen kymmenen päivän kuluttua kahden viikon sijaan. Siksi myös HTLC: t tarvitsevat CheckLockTimeVerify (CLTV) – eivät CheckSequenceVerify (CSV).)
Viimeiseksi on vielä yksi ratkaistava ongelma: jotta salamaverkko olisi hyödyllinen, kaikki tämä on toteutettava ketjun ulkopuolella. Kuinka tämä tapahtuu, käsitellään tämän sarjan kolmannessa ja viimeisessä artikkelissa.