Grin'de işlemlerin ayrıntılı açıklaması

Editörün notu: Grin, MimbleWimble protokolüne dayalı yeni bir kripto para birimi türüdür. Bu makale, MimbleWimble protokolündeki işlemin nasıl yapılandırıldığını ve para biriminin çifte harcama olmadığından ve yalnızca para biriminin sahibinin yapabileceğinden emin olmak için kriptografinin nasıl kullanılacağını adım adım açıklayan ayrıntılı bir öğreticidir. Para harcamak.

Grin, MimbleWimble protokolüne dayalı yeni bir kripto para birimi türüdür. Ancak, Grin'in öğreticisi herkesin bildiği gibi belirsizdir.

Bu makale, Grin işleminin çalışma prensibini paylaşmayı ve herkesin Grin işleminin Aslında nasıl Devam etmekte.

Grin takas edildi Çıktı Bir Pederson sözü , Aşağıdaki biçimde:

-A Grin çıkışı, Pedersen vaadidir. -

Perdersen, bilgileri gizlemenin iyi bir yolu olacağına söz veriyor. Perdersenin vaadi kavramını ilk kez duyduysanız, bu kelimeyi her gördüğünüzde korumalı değer kavramını düşünün (Çevirmenin Notu: Bu değeri kimse göremez. ne).

Aşağıdaki metin Grin'in wiki'sinden alınmıştır (Grin ticaretinin nasıl çalıştığını anlamak için en iyi giriş materyali).

Özel anahtar olarak çok büyük bir sayı k ve karşılık gelen genel anahtar olarak k * H seçtiğimizi varsayalım. Birisi k * H açık anahtarının değerini bilse bile, bundan k değerini çıkarmak neredeyse imkansızdır ...

r, körleme faktörü olarak kullanılan özel anahtardır, G, eliptik eğri üzerinde sabit bir noktadır ve bunların ürünü r * G, bu eğride r'nin genel anahtarıdır.

v giriş değeri veya çıkış değeridir, H eliptik eğri üzerindeki başka bir sabit noktadır ...

Özel anahtar k ve özel anahtar j, sonra (k + j) * H = k * H + j * H, yani iki özel anahtar ile sabit nokta H ((k + j) toplamının çarpılmasıyla üretilen genel anahtar * H)), iki özel anahtarın sabit H noktasıyla çarpılmasıyla üretilen iki açık anahtarın k * H + j * H toplamına eşittir.

Kriptografiyi daha derinlemesine incelemek istiyorsanız, ECC primer blogunu okuyabilirsiniz. Kısacası, bir Grin çıktısı harcamak için şunu da bilmelisiniz Körleme faktörü (r) Hem de Grin işlem tutarı (v) . Sözü kırarak bu iki değer geriye doğru çıkarılamaz. Bu nedenle, Grin'in çıktısı ancak bu değerler önceden biliniyorsa harcanabilir.

Grin kör edici faktörünü belirler çünkü Grin'i gönderen bilir v (Size gönderilen Grin miktarı). Ancak çıktının kör edici faktörü yalnızca sizin tarafınızdan bilinir (Grin'i gönderen bile değil), bu nedenle çıktıyı yalnızca siz harcayabilirsiniz.

Bu çıktının 40 Grin içerdiğini ve kullanılan körleme faktörünün 20 olduğunu varsayalım.

( Geçiş reklamı : Gönderilen gerçek Grin miktarı, atomik birim 1 NanoGrin'in tam sayı katıdır. Basitlik adına, örnek olarak tam sayı Grin kullanıyorum):

-Bu çıktıda körleme faktörü 20 ve Grin sayısı 40'tır. -

Grin işlemlerinin çıktısını Grin tarayıcısında görüntülediğimizde, gerçek çıktının yukarıdaki resimdeki gibi net bir formülle sunulmadığını görürüz. İşte Grin'in çıktısı aslında neye benziyor:

-Grin çıktı ("commit" sütununda bulunur). -

Yine bu çıktıdan "20" (körleme faktörü) veya "40" (Grin sayısı) sonucunu çıkarmak imkansızdır.

Bu çıktıyı harcayın

Az önce bahsettiğimiz çıktının Alice'e ait olduğunu varsayalım. Şimdi, Alice bu 40 Grins'den 25'ini Bob'a göndermek istiyor. Basitlik adına madenciler için işlem ücretlerini göz ardı edelim.

5 $ 'lık bir faturanız varsa ve 3 $' lık bir şey satın alırsanız, para üstü olarak 2 $ alacaksınız. Bitcoin sistemindeki işlemler bu şekilde çalışır ve Grin bir istisna değildir. Alice harcanmamış işlem çıktısı 40 Grin'den 25 Grin'i alıp Bob'a göndermek isterse, bu işlemde yeni bir harcanmamış işlem çıktısı oluşturur ve kalan 15 Grin'i (değiştir) kendisine geri gönderir. adresi.

-Alice, Bob'a gönderdiği Grin miktarını ve değişim miktarını biliyor. -

Bu işlemdeki 15 Grin Alice'e geri dönecek, bu da sadece o 15 Grin'i kontrol edip harcayabileceği anlamına geliyor. Başka bir deyişle, Bob'un Alice'in parasını harcama olasılığı ortadan kaldırılmalıdır. Bunun için Alice, değişim çıktısı için yeni bir kör edici faktör yaratmalıdır. Alice'in seçtiğini varsayalım 34 .

Alice de biliyor r (Değişim çıktısının kör edici faktörü) ve v (Grin miktarı değişti), değişim çıktısına sahipsiniz ( ) Gerekli tüm bilgiler blok zincirinde bir çıktı olarak kaydedilecektir. Aynısı, Alice'in Bob'a göndermek üzere olduğu 25 Grin çıkışı için de geçerli.

-Alice'nin değişim çıktısı. -

Daha önce de bahsettiğim gibi, çıktı yalnızca çıktı tarafından kullanılan körleme faktörü biliniyorsa harcanabilir. Alice harcamak istediği çıktının kör edici faktörünü (20) biliyor, ancak Grin sistemindeki diğerlerine de bildiğini kanıtlamak için bir yola ihtiyacı var.

Bu nedenle, toplam körleme faktörünü çözmek için tamamen bağımsız bir hesaplama yapması gerekiyor. Bu, Alice'in değişim çıktısı için yarattığı körleme faktörünü (34) almayı ve harcamak istediği çıktının körleme faktörünü çıkarmayı içerir (20).

- Alice'in toplam kör edici faktör sayısı. -

rs (S göndereni, yani Alice'i temsil eder) Alice'in toplam kör edici faktör sayısını temsil eder, bu örnekte 14 . ( Geçiş reklamı : Kernel offset'i (kernel offset) kasıtlı olarak görmezden geldim. )

Son olarak, Alice'in rastgele bir nonce oluşturması gerekiyor ks (S ayrıca gönderen Alice'i temsil eder). İşlemi imzalamasına yardımcı olmak için rastgele nonce değerini kullanacaktır (aşağıya bakın). Alice gerçek nonce değerini Bob'a göndermeyecek, ancak ks · G (Nonce, Pedersen taahhüdüne karşılık gelir). Daha önce belirtildiği gibi, nonce değerini çarparak puan oluşturun G , Alice gerçek nonce değerini gizler.

Alice, aşağıdaki bilgileri Bob'a gönderir. Aslında, Grin verileri "Meta Veri" ve "Veri" alanlarına bölünmeyecek, ancak netlik adına, bu makale ikisini kasıtlı olarak ayırıyor.

- Grin işleminin ilk adımında Alice'in Bob'a göndermesi gereken tüm bilgiler. -

Meta veriler Alan:

  • Gönderilecek tutar: Alice'in Bob'a göndermek istediği Grin sayısı (bu örnekte 25).
  • İşlem benzersiz kimliği (TX UUID): Alice ve Bob tarafından, bu işlemi tanımlamak için ileri geri veri gönderirken kullanılan benzersiz bir tanımlayıcı.
  • İşlem ücreti (TX ücreti): İşlem ücretleri (bunları bu eğiticide tartışmayacağız).
  • Kilit yüksekliği (lock_height) : İşlemin geçerli olduğu blok numarası.

Veri alanı:

  • İşlem Girişi (TX Girişleri): Alice, Bob'a gönderilen işleme girdi olarak tekli veya çoklu harcanmamış çıktıları kullanır.
  • Çıkışı değiştir (co) : Alice'in değişiklik çıktısı
  • ks G : Alice'in nonce ks Ve yumurtlama noktası G Çarpın, elde edilen değer bu nonce'nin Pedersen vaadidir.
  • rs G : Alice'in toplam körleme faktörü rs Ve yumurtlama noktası G Çarpın, elde edilen değer şudur rs Pedersen söz veriyor.

Alice yukarıdaki bilgileri Bob'a gönderir ve Bob bir sonraki adımı tamamlar.

Bob'un eylemleri

Bob, Alice'ten mesaj aldıktan sonra TX ücreti ile lock_height Bu iki değişken üretmek için birbirine bağlıdır M (İşlemin "Mesajı").

-İşlem "mesajı". -

Bob, Alice'ten alacağı 25 Grin için kör edici bir faktör seçer rr (R, alıcı anlamına gelir, yani Bob). Varsayalım o seçer 11 . Aynı zamanda, rastgele nonce'unu da seçti. kr (R, alıcı anlamına gelir).

Ayşe'nin işlemiyle aynı şekilde Bob, rr ve kr'nin iki değerini oluşturma noktasıyla karşılaştırır G Birlikte çoğalmak, bir Pedersen vaadi yaratır. Bob bu verilerle, ilgili Schnorr mücadelesi , Değişkenlerle e Anlamına geliyor:

- Ticaretin Schnorr zorluğu. -

Schnorr sorgulaması, sırayla aşağıdaki bilgiler üzerinde SHA256 karması gerçekleştirir:

  • İşlem haberleri.
  • Alice ve Bob tarafından seçilen nonce'ye karşılık gelen Pedersen taahhütlerinin toplamı.
  • Bob'un kör edici faktörüne (25 Grin çıktısı için seçilen) karşılık gelen taahhütlerin ve Alice'in toplam kör edici faktör sayısına karşılık gelen taahhütlerin toplamı.

Bob geçer e Bu işlem için kendinizinkini oluşturun Schnoor imzası , hangisi sr (R, alıcı anlamına gelir). olmasına rağmen sr Bu, Bob'un tam imzasıdır, ancak biz buna Bob'un kısmi imzası diyoruz, çünkü bu imza, sonunda tüm işlemin imzasını oluşturmak için Alice'in kısmi imzasıyla birleştirilecektir.

- İşlemde Bob'un imzasının bir kısmı. -

Alice nihayet aldığında sr Piyasaya sürmek imkansız olduğunda kr veya rr Gerçek değerin. Bob, Alice'e şunları gönderir:

-Bob imzasının bir kısmını, nonce'ye karşılık gelen vaadi ve 25 Grin'in kör edici faktörüne karşılık gelen vaadi Alice'e gönderir. -

Gönderilen içerik sırayla şunları içerir:

  • sr: Bob'un imzasının bir parçası.
  • kr G : Bob tarafından seçilen nonce'a karşılık gelen söz.
  • rr G : Bob'un almak üzere olduğu 25 Grin'in kör edici faktörüne karşılık gelen vaat.

Son adım: Alice'e geri gönderin

Alice'in artık hesaplamaları var e Ve işlemin Schnorr zorluğu için gereken tüm bilgiler. Yerel olarak hesaplandı e Bundan sonra Alice Bob'un imzasının bir kısmını doğrulayın .

Bob'un imzasının bir kısmını hatırladığına inanıyorum sr Aşağıdakileri ekleyin:

- İşlemde Bob'un imzasının bir kısmı. -

Daha önce tarif ettiğimiz eliptik eğrinin özelliklerine dayanarak, Alice denklemin her iki tarafını da üreten nokta ile çarpar. G Daha sonra denklem hala geçerli.

-Alice, denklemin her iki tarafını da üreten nokta G ile çarpar. -

Çünkü Alice bunu Bob'dan aldı. kr G (Bob tarafından seçilen nonce'a karşılık gelen söz) ve rr G (Bob'un almak üzere olduğu 25 Grin körleme faktörüne karşılık gelen vaat) ve yerel olarak hesaplandı e , Sadece ihtiyacı var sr Doğma noktası ile çarpın G , Denklemin sağ tarafındaki değere eşit olduğundan emin olun ve ardından Bob'un kısmi imzasını doğrulayabilirsiniz.

Yukarıdaki işlemleri tamamlayarak Alice şunları kanıtlayabilir:

  • Bob, alacağı Grin miktarını biliyor (25).
  • Bob nonce değerini biliyor.
  • Bob, 25 Grin için seçtiği kör edici faktörün farkındadır.
  • Şimdiye kadar Alice, Bob'un seçtiği nonce ve kör edici faktörü bilmeden Bob'un imzasının bir kısmını doğrular.

    Bundan sonra, Alice kendi kısmi imzasını oluşturur:

    -İşlemde Alice'in imzasının bir parçası. -

    Alice artık işlemi oluşturabilir imza Onun ve Bob'un imzalarının bir kısmını içeren:

    İşlem imzası, Alice ve Bob'un kısmi imzalarının toplamından ve bunlara karşılık gelen taahhütlerin toplamından oluşur.

    İmza sırayla şunları içerir:

    • Alice ve Bob'un kısmi imzalarının toplamı.
    • Alice ve Bob'un nonce'ine karşılık gelen vaatlerin toplamı (birbirlerinin nonce değerini bilmiyorlar).

    Birleşmeden sonra işlem imzası şu şekilde ifade edilebilir:

    -İşlem imzası-

    Bunlar arasında s = ss + sr, k = ks + kr.

    Bu imzayı hatırla - yakında anlamını öğreneceksin.

    İşlem tamamlandı

    Dijital para birimi "hafıza" gerektirir - yani, birine bir miktar para gönderdiğinizde, aynı miktarda parayı başkalarına gönderemezsiniz. Grin'i kullanarak gönderilen Grin sayısını ve alıcıyı gizleriz. Öyleyse, bu paranın "çifte harcanmadığını" ya da havadan yapılmadığını nasıl kanıtlayabiliriz?

    Bir Grin işleminde, tüm çıktılar girdiden çıkarıldıktan sonra, kalan Grin miktarı sıfıra eşit olmalıdır. Beş dolarlık banknotun başka bir örneğini ele alalım:

    Kasiyere 3 USD (çıktı) + 2 USD bana dönüş (çıktı) -5 USD fatura (giriş) = 0

    Aynı şekilde, yasal bir Grin işlemi de yukarıdaki denklemi karşılar. Öyleyse, belirli değerleri açığa çıkarmadan nasıl doğrulayabiliriz? Alice ve Bob arasındaki işlemin girdisine ve çıktısına bir göz atalım:

    (34 G) + (15 H) + (11 G) + (25 H) - (20 G) - (40 H) = (25 G) + (0 H)

    Buradaki püf noktası, Grin miktarı dengelendiğinde (ince havadan fazla Grin üretilmez), çıktıyı girdiden çıkardıktan sonra geriye kalanın " Aşırı körleme faktörü "Veya" Fazla çekirdek "Bağlılığa karşılık gelir. Mevcut örneğimizde, aşırı körleme faktörüne karşılık gelen taahhüt 25 G , hangisi Eliptik bir eğri üzerinde bir genel anahtar .

    Bir Grin işleminin çıktılarının toplamı eksi girdilerin toplamı geçerli bir eliptik eğri genel anahtarı üretebiliyorsa, v'nin değerinin ofset olması gerektiğini bilirsiniz . Denklemin sağ tarafı n G + 0 H şeklinde değilse ve bilinen bir n değeri varsa, işlemin yasa dışı olduğunu bilebilirsiniz. Bu, toplam çıktının toplam girdiden daha büyük olduğu (örneğin, 5 ABD doları ödediniz, kasiyer 3 ABD Doları ödediğiniz ancak 10 ABD Doları aldınız) veya toplam girdinin toplam çıktıdan daha büyük olduğu (örneğin, Kasiyer 5 dolar için 3 dolar aldı, ancak paranızı istemedi).

    Yukarıdaki imzayı hatırlıyor musun?

    -İşlem imzası-

    İmza aslında işaret Az önce bahsettiğim şey Aşırı körleme faktörüne bağlılık Aşağıda açıklayalım.

    Unutmayın, Bob'un kısmi imza denkleminin her iki tarafını da G ile çarptığınızda, aşağıdaki denklemi elde edeceksiniz.

    -Denklemin her iki tarafı da G noktasını oluşturduktan sonra Bob'un kısmi imzası ile çarpılır-

    Benzer şekilde, Alice'in kısmi imza denkleminin her iki tarafını da G ile çarptığınızda, aşağıdaki denklemi elde edersiniz.

    -Denklemin her iki tarafı da G noktası oluşturulduktan sonra Alice'in kısmi imzası ile çarpılır. -

    İki denklemi toplarsanız ne olur? Alacaksın:

    sr G + ss G = (kr G) + (ks G) + (e (rr G + rs G))

    onların arasında, rr Bobun kör edici faktörü, rs Alice'in toplam kör edici faktör sayısıdır, rr G + rs G eşittir (rr + rs) G.

    Bobun körleme faktörü 11 G taahhüdüne karşılık gelir. Alicein toplam körleme faktörü 14 G taahhüdüne karşılık gelir ve ikisi birlikte toplanarak 25 G (Tüm işlemin aşırı körleme faktörünün taahhüdünü temsil eder). bu nedenle sr (Bob'un kısmi imzası) ve ss (Alice'in kısmi imzası) Eğer toplam, fazla körleme faktörüne karşılık gelen taahhüde eşitse, o zaman İşlemin tamamının yasal olduğunu kanıtlayın.

    Bu denklemi daha da basitleştirerek şunu elde edeceğiz:

    sr G + ss G = (k G) + (e (r G))

    veya:

    sr G + ss G = (k G) + (e (25 G))

    Ardından denklemin iki tarafının eşit olup olmadığını kontrol edin.

    Unutmayın, denklemdeki tüm değişkenler (kısmi imzaların toplamı, e'deki kısımlar, aşırı körleme faktörüne karşılık gelen taahhüt, nonce toplamına karşılık gelen taahhüt) herkes tarafından görülebilir, böylece herkes yapabilir doğrulama. Ne Alice'in kör edici faktörünü ne de Bob'un kör edici faktörünü bilmeden işlemi doğrulayabiliriz. Kısmi imzalarını toplayarak ve toplamın aşırı körleme faktörüne karşılık gelen taahhüde eşit olup olmadığını doğrulayarak, kanıtlayabiliriz:

  • Alice'in harcadığı girdide fazla Grin yoktur.
  • Alice ve Bob, işlemi oluştururken ilgili çıktılarının kör edici faktörünü biliyorlardı. Bu, işlem tarafından üretilen yeni çıktıyı, çıktının kilitlenmemesi için harcayabilecekleri anlamına gelir.
  • İşlemin yerleştirildiğini doğrulamak için kullandığımız bilgiler İşlem çekirdeği arasında.

    İşlem çekirdeği

    Çıktıya ek olarak, İşlem çekirdeği Grin işlemleri ile oluşturulan bilgilerin başka bir parçasıdır. Her işlem bir işlem çekirdeği oluşturur, ancak onunla ilişkili işlem çekirdeği Grin blok zincirindeki bir çıktıyı sorgulayarak bulunamaz. Her Grin işlemi, bir işlem çekirdeği ve hiçbir ekstra Grin'in havadan üretilmediğine dair bir kanıt içerir.

    Aşağıdaki bilgiler işlem çekirdeğinde saklanacaktır:

    • işlem imza (s, k G).
    • karşı " Aşırı körleme faktörü "İlişkili genel anahtar (bu durumda, 25 G ). Yukarıda belirtildiği gibi, genel anahtar doğrulamak için kullanılabilir s .
    • İşlem İşlem ücreti karşı Kilit yüksekliği (kilit yüksekliği). (Perde arkası: Coinbase işlemi ise bu iki bölüm bilgi dahil edilmeyecektir ).

    sonuç olarak

    Tüm bu işlemleri tamamladıktan sonra, yalnızca aşağıdaki işlemle ilgili bilgiler ağa yayınlanacaktır:
    • Giriş harcandı.
    • Yeni oluşturulan çıktı.
    • İşlem çekirdeği.
    • Çekirdek ofseti (burada tarif etmedim).

    Yukarıda açıklanan işlem meta verileri yayınlanmayacaktır. Daha da iyisi, bu bilgilerin bir kısmı da atılabilir - bunun hakkında başka bir blogda konuşacağız.

    Umarım bu makale Grin işlemlerinin nasıl çalıştığını anlamada yardımcı olabilir. Menzil kanıtını, çekirdek ofsetini ve işlem ücretlerini kasıtlı olarak ihmal ettim. Daha fazla bilgi için lütfen Grin'deki kesme mekanizmasının çalışma prensibi, işlemlere çok taraflı katılım ilkesi ve bazı deneysel bloglar hakkında bilgi edinin.

    Orijinal bağlantı:

    https://medium.com/@brandonarvanaghi/grin-transactions-explained-step-by-step-fdceb905a853

    Yazar: Brandon Arvanaghi

    Çeviri düzeltmesi: stormpang ve Min Min

    (Bu makale bir Ethereum meraklısı olan EthFans'tan gelmektedir ve yazarın izni olmadan yeniden basılması kesinlikle yasaktır. İhlal edenler kanunen soruşturulmalıdır)

    Jingdezhen Fuliang Ataların dileklerinden geçen bir Yüzyıl Uyuşturucuyla Mücadele Anıtı
    önceki
    Musk Tunnel Company'nin ilk iniş projesini alması bekleniyor: Las Vegas Metro Hattı
    Sonraki
    Madeni para spekülasyonunda neden en hevesli ülke Güney Kore?
    Jiangxi'de iki tane daha "dünyanın en iyisi" var. Nerede olduklarına bakın?
    30 Mart'ta piyasa analizi: Döviz piyasası "yükseldi" ve risk iştahı kızıştı
    Arabayı bir VR oyun oyuncağına dönüştürmek ve yine de arabada oynamak ister misiniz? Merak etmeyin, Audi gerçek olmak üzere!
    Jiangxi Eyaleti Parti Komitesi Daimi Komitesi Üyesi ve Siyasi ve Hukuk Komitesi Sekreteri Yin Jianye, siyasi ve yasal istikrarın sürdürülmesi çalışmalarına rehberlik etmek için Jingdezhen, Leping Cit
    Halk acımasızdır! 140.000, 95.900'e kadar düşüyor ve yakıt tüketimi sadece 6L, Accord nedir?
    Endüstri Blockchain Haftalık Haberleri
    Kamu Güvenliği Bakanlığı hatırlatıyor: Lütfen bu mesajı evdeki yaşlılara hemen aktarın (alın) ...
    Haval H6'yı terk etmek için 50.000 bırakın, 173 beygir gücünde dört silindirli bir motorla başlayın ve Tiguan'ı görmek için 100.000 bırakın
    Otomotiv endüstrisine odaklanın, en değerli listeyi seçin, Sohu Automobile'in yıllık genel seçimi açıklandı
    Polis görev başında kesildi ve yaralandı ve kanlı bir not yazdı: Anne babama söyleme ...
    Chongqing metrosunun arkasında kaza - arabalar ve metrolar güvenli bir şekilde sürmeyi birbirlerinden öğrenebilir mi?
    To Top