From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id C7EB7C0037 for ; Mon, 18 Dec 2023 01:37:51 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 8EC1540147 for ; Mon, 18 Dec 2023 01:37:51 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 8EC1540147 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.a=rsa-sha256 header.s=protonmail3 header.b=DSw7g9Fz X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.799 X-Spam-Level: X-Spam-Status: No, score=-2.799 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PXMtNMRkY4qI for ; Mon, 18 Dec 2023 01:37:50 +0000 (UTC) Received: from mail-0301.mail-europe.com (mail-0301.mail-europe.com [188.165.51.139]) by smtp2.osuosl.org (Postfix) with ESMTPS id F056440137 for ; Mon, 18 Dec 2023 01:37:49 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org F056440137 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1702863462; x=1703122662; bh=dhHtDJlk8Pw+9LuJ4cE7qp2V005Yin0uRiZBdynoJGI=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=DSw7g9FzpTWZVrfh8ykQctHPqh2ssZnmbF6IVv8TSwyGBnN4dg8YJxeO8iihrQIcR WEVzNO2FOVyMWH4o/nhB6UakbqWeJS9Pa0GPaSwVWPbt6owpPY9KChXyMLeeL0lChw XlVOUXJaIacRECj6CaVBvkMCYOl9dFtiRTvbx4GpEdHIMP+YEQSOH4Ephnbp4vl12R XKRWUbfqK1aiy/mowFh2M2GKnXkRoxNVLGIjlFR1M83Z7gHFanwe6K9Y4PtoSKAl3M EKpigWw4AXEmz9RqqnyBj5EYz3bWd/vF4bWXeXMf37Td30LaH6ns0CLW6e9OeP3wlZ VMuuARghQhZLA== Date: Mon, 18 Dec 2023 01:37:23 +0000 To: Bitcoin Protocol Discussion From: yurisvb@pm.me Message-ID: Feedback-ID: 15605746:user:proton MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha256; boundary="------d1f91577b4c5553b6a295d49d16d414027c81a99dd0d82e4ff1a6f595fc99c45"; charset=utf-8 X-Mailman-Approved-At: Mon, 18 Dec 2023 09:19:13 +0000 Subject: [bitcoin-dev] Lamport scheme (not signature) to economize on L1 X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Dec 2023 01:37:51 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------d1f91577b4c5553b6a295d49d16d414027c81a99dd0d82e4ff1a6f595fc99c45 Content-Type: multipart/mixed;boundary=---------------------15bc216cb26317fb5357a5c81c6e52de -----------------------15bc216cb26317fb5357a5c81c6e52de Content-Type: multipart/alternative;boundary=---------------------6fbd6ddea3015e0e95766f3ffd9b2a7c -----------------------6fbd6ddea3015e0e95766f3ffd9b2a7c Content-Transfer-Encoding: quoted-printable Content-Type: text/plain;charset=utf-8 Dear colleagues, After having mentioned it in=C2=A0a Twitter Space=C2=A0a few moments ago, = I felt the need to share the idea with you even just as a draft. Utilizing= =C2=A0Lamport Scheme=C2=A0(not=C2=A0signature) for better byte-efficiency = in L1: 1. Have signing keys consist of the current ECC key AND a Lamport chain; = 2. For signing of a transaction, broadcast a tuple consisting of=C2=A0 1. the plain transaction,=C2=A0 2. hash of the previous Lamport chain concatenated to the transaction 3. commitment signed by ECC freezing its UTXO and promising that in a few= blocks time the pre image of hash will be published. 4. a and b (but not c) are buried in coinbase session of a block B1 by mi= ner M1; 5. If upon maturity, such pre-image is not broadcasted, signed commitment= is buried in the next block and executed. As a consequence, frozen UTXO p= ays B1 for a and b being buried at M1's coinbase=C2=A0and=C2=A0miner M2 fo= r burying it [the commitment] in a block B2 subsequent to maturity; 6. If pre-image is broadcasted before maturity, it is buried in another b= lock B2', pays for itself, pays M1 for burying a adn b at B1 and pays what= ever else was determined in the plain transaction of item 2.a. The whole point is that, in the typical use case in which pre-image of has= h is, in fact, successfully broadcasted before maturity, commitment, the o= nly ECC signature in this protocol is discarded, and only two Lamport hash= es end up being buried at L1. To push economy even further, we could implement a memory-hard hash like A= rgon2 to do the same entropy-processing trade-off already utilized for pas= swords, so we could have hashes of, say 12 bytes, making it 24 in total, d= own from 136 from ECC. -----------------------6fbd6ddea3015e0e95766f3ffd9b2a7c Content-Type: multipart/related;boundary=---------------------120d5aca5d7c1e060a1387e2d8dfdc7e -----------------------120d5aca5d7c1e060a1387e2d8dfdc7e Content-Type: text/html;charset=utf-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0 cHg7Ij48L2Rpdj48ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDogMS41OyBiYWNrZ3JvdW5kLWNvbG9y OiByZ2IoMjU1LCAyNTUsIDI1NSk7Ij5EZWFyIGNvbGxlYWd1ZXMsPGJyPjxicj5BZnRlciBoYXZp bmcgbWVudGlvbmVkIGl0IGluPHNwYW4+Jm5ic3A7PC9zcGFuPjxhIHRpdGxlPSJhIFR3aXR0ZXIg U3BhY2UiIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vaS9zcGFjZXMvMXZPeHdqV1dPcWRKQiIg cmVsPSJub3JlZmVycmVyIG5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9 InRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXIiPmEgVHdpdHRlciBTcGFj ZTwvYT48c3Bhbj4mbmJzcDs8L3NwYW4+YSBmZXcgbW9tZW50cyBhZ28sIEkgZmVsdCB0aGUgbmVl ZCB0byBzaGFyZSB0aGUgaWRlYSB3aXRoIHlvdSBldmVuIGp1c3QgYXMgYSBkcmFmdC4gVXRpbGl6 aW5nPHNwYW4+Jm5ic3A7PC9zcGFuPjxhIHRpdGxlPSJMYW1wb3J0IFNjaGVtZSIgaHJlZj0iaHR0 cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUy9LRVkiIHJlbD0ibm9yZWZlcnJlciBub2ZvbGxv dyBub29wZW5lciIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJs aW5lO2N1cnNvcjpwb2ludGVyIj5MYW1wb3J0IFNjaGVtZTwvYT4mbmJzcDsobm90PHNwYW4+Jm5i c3A7PC9zcGFuPjxhIHRpdGxlPSJzaWduYXR1cmUiIGhyZWY9Imh0dHBzOi8vZW4ud2lraXBlZGlh Lm9yZy93aWtpL0xhbXBvcnRfc2lnbmF0dXJlIiByZWw9Im5vcmVmZXJyZXIgbm9mb2xsb3cgbm9v cGVuZXIiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtj dXJzb3I6cG9pbnRlciI+c2lnbmF0dXJlPC9hPikgZm9yIGJldHRlciBieXRlLWVmZmljaWVuY3kg aW4gTDE6PGJyPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDogMS41OyBiYWNrZ3Jv dW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ij48b2wgZGF0YS1saXN0Y2hhaW49Il9fTGlz dF9DaGFpbl8yOTYiIGRhdGEtZWRpdGluZy1pbmZvPSJ7JnF1b3Q7b3JkZXJlZFN0eWxlVHlwZSZx dW90OzoxLCZxdW90O3Vub3JkZXJlZFN0eWxlVHlwZSZxdW90OzoxfSIgc3R5bGU9Im1hcmdpbjow cHg7cGFkZGluZzowcHggMHB4IDBweCAyLjg1NzE0ZW07Zm9udC1zaXplOjFlbSI+PGxpIHN0eWxl PSJsaXN0LXN0eWxlLXR5cGU6JnF1b3Q7MS4gJnF1b3Q7Ij48c3Bhbj5IYXZlIHNpZ25pbmcga2V5 cyBjb25zaXN0IG9mIHRoZSBjdXJyZW50IEVDQyBrZXkgQU5EIGEgTGFtcG9ydCBjaGFpbjs8YnI+ PC9zcGFuPjwvbGk+PGxpIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6JnF1b3Q7Mi4gJnF1b3Q7Ij48 c3Bhbj5Gb3Igc2lnbmluZyBvZiBhIHRyYW5zYWN0aW9uLCBicm9hZGNhc3QgYSB0dXBsZSBjb25z aXN0aW5nIG9mJm5ic3A7PC9zcGFuPjwvbGk+PG9sIHN0eWxlPSJtYXJnaW46MHB4O3BhZGRpbmc6 MHB4IDBweCAwcHggMi44NTcxNGVtO2xpc3Qtc3R5bGUtdHlwZTpsb3dlci1hbHBoYSI+PGxpPjxz cGFuPnRoZSBwbGFpbiB0cmFuc2FjdGlvbiwmbmJzcDs8L3NwYW4+PC9saT48bGk+PHNwYW4+aGFz aCBvZiB0aGUgcHJldmlvdXMgTGFtcG9ydCBjaGFpbiBjb25jYXRlbmF0ZWQgdG8gdGhlIHRyYW5z YWN0aW9uPC9zcGFuPjwvbGk+PGxpPmNvbW1pdG1lbnQgc2lnbmVkIGJ5IEVDQyBmcmVlemluZyBp dHMgVVRYTyBhbmQgcHJvbWlzaW5nIHRoYXQgaW4gYSBmZXcgYmxvY2tzIHRpbWUgdGhlIHByZSBp bWFnZSBvZiBoYXNoIHdpbGwgYmUgcHVibGlzaGVkLjwvbGk+PC9vbD48bGkgc3R5bGU9Imxpc3Qt c3R5bGUtdHlwZTomcXVvdDszLiAmcXVvdDsiPmEgYW5kIGIgKGJ1dCBub3QgYykgYXJlIGJ1cmll ZCBpbiBjb2luYmFzZSBzZXNzaW9uIG9mIGEgYmxvY2sgQjEgYnkgbWluZXIgTTE7PC9saT48bGkg c3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTomcXVvdDs0LiAmcXVvdDsiPklmIHVwb24gbWF0dXJpdHks IHN1Y2ggcHJlLWltYWdlIGlzIG5vdCBicm9hZGNhc3RlZCwgc2lnbmVkIGNvbW1pdG1lbnQgaXMg YnVyaWVkIGluIHRoZSBuZXh0IGJsb2NrIGFuZCBleGVjdXRlZC4gQXMgYSBjb25zZXF1ZW5jZSwg ZnJvemVuIFVUWE8gcGF5cyBCMSBmb3IgYSBhbmQgYiBiZWluZyBidXJpZWQgYXQgTTEncyBjb2lu YmFzZTxzcGFuPiZuYnNwOzwvc3Bhbj48Yj5hbmQ8L2I+PHNwYW4+Jm5ic3A7PC9zcGFuPm1pbmVy IE0yIGZvciBidXJ5aW5nIGl0IFt0aGUgY29tbWl0bWVudF0gaW4gYSBibG9jayBCMiBzdWJzZXF1 ZW50IHRvIG1hdHVyaXR5OzwvbGk+PGxpIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6JnF1b3Q7NS4g JnF1b3Q7Ij5JZiBwcmUtaW1hZ2UgaXMgYnJvYWRjYXN0ZWQgYmVmb3JlIG1hdHVyaXR5LCBpdCBp cyBidXJpZWQgaW4gYW5vdGhlciBibG9jayBCMicsIHBheXMgZm9yIGl0c2VsZiwgcGF5cyBNMSBm b3IgYnVyeWluZyBhIGFkbiBiIGF0IEIxIGFuZCBwYXlzIHdoYXRldmVyIGVsc2Ugd2FzIGRldGVy bWluZWQgaW4gdGhlIHBsYWluIHRyYW5zYWN0aW9uIG9mIGl0ZW0gMi5hLjxicj48L2xpPjwvb2w+ PGRpdj48YnI+VGhlIHdob2xlIHBvaW50IGlzIHRoYXQsIGluIHRoZSB0eXBpY2FsIHVzZSBjYXNl IGluIHdoaWNoIHByZS1pbWFnZSBvZiBoYXNoIGlzLCBpbiBmYWN0LCBzdWNjZXNzZnVsbHkgYnJv YWRjYXN0ZWQgYmVmb3JlIG1hdHVyaXR5LCBjb21taXRtZW50LCB0aGUgb25seSBFQ0Mgc2lnbmF0 dXJlIGluIHRoaXMgcHJvdG9jb2wgaXMgZGlzY2FyZGVkLCBhbmQgb25seSB0d28gTGFtcG9ydCBo YXNoZXMgZW5kIHVwIGJlaW5nIGJ1cmllZCBhdCBMMS48YnI+PGJyPlRvIHB1c2ggZWNvbm9teSBl dmVuIGZ1cnRoZXIsIHdlIGNvdWxkIGltcGxlbWVudCBhIG1lbW9yeS1oYXJkIGhhc2ggbGlrZSBB cmdvbjIgdG8gZG8gdGhlIHNhbWUgZW50cm9weS1wcm9jZXNzaW5nIHRyYWRlLW9mZiBhbHJlYWR5 IHV0aWxpemVkIGZvciBwYXNzd29yZHMsIHNvIHdlIGNvdWxkIGhhdmUgaGFzaGVzIG9mLCBzYXkg MTIgYnl0ZXMsIG1ha2luZyBpdCAyNCBpbiB0b3RhbCwgZG93biBmcm9tIDEzNiBmcm9tIEVDQy48 L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jayIgc3R5bGU9 ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+PGRpdiBj bGFzcz0icHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stcHJvdG9uIj4KICAgIDwvZGl2Pgo8L2Rp dj4K -----------------------120d5aca5d7c1e060a1387e2d8dfdc7e-- -----------------------6fbd6ddea3015e0e95766f3ffd9b2a7c-- -----------------------15bc216cb26317fb5357a5c81c6e52de Content-Type: application/pgp-keys; filename="publickey - yurisvb@pm.me - 0x535F445D.asc"; name="publickey - yurisvb@pm.me - 0x535F445D.asc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="publickey - yurisvb@pm.me - 0x535F445D.asc"; name="publickey - yurisvb@pm.me - 0x535F445D.asc" LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4c0JOQkYySmpSWUJDQUM1MXlo K0s0MmF0c0V5MGdCTmgvaklXR1hzQnRFLzdJOGFuUmZkZTcvcWdHeXkKbEx4TXFZRE1OelUwN3c5 Z3VINllKRDdWdzNaUmxTVGVqNU9Hc2laOFJ2OUp4YXBYc0MxeDMrdHhOQkFQClYyVml1MVpsMnhK Y29sTDkrem9SUmhmU25lVDVaZm1IQlpBSklKbmhOdU80ajhrRi9iNDRFaEZ3NkwvTgpGbE9rK1VC SkVvS0FFQWttd09aWWpVTDd6MStRdzJBZkJIVGVwNFMzYmY4SmZMNDFOUVJsRnBSa3MrSkMKTjNa c0ozZmZhNURjWjVqTGgyK2k5Mlg2eE8yVW5nM0hLYXhJYTVtbzB3cGVvQ1JQdUxNRjE2cjVQelJ4 CjJmNldzZVlUbWVmZWVYUGUzZEhyTTR4ai9ndHpBRGNxaFd6VVZLM21ZNTdPTXhVYjJ4MWdqZ1Z6 QUJFQgpBQUhOSFhsMWNtbHpkbUpBY0cwdWJXVWdQSGwxY21semRtSkFjRzB1YldVK3dzQjFCQkFC Q0FBZkJRSmQKaVkwV0Jnc0pCd2dEQWdRVkNBb0NBeFlDQVFJWkFRSWJBd0llQVFBS0NSQXYzelY4 UzhOTVZkTkRCLzlRCnZRRlpZNkRzR3FMOTlkKzI2QjdHYmRCb0VjenUxL2NqTVpNdE9QeW9nSElF eXllalR3R1RVN3ZYNEpWZQozRHZnbnd4U2xIYjQ2dDU2VGV3OU5rZ2V4MmFIb0hGRnJBd3MraTVa ajdZN2lhL2l2RVozZE1KR3dNSUoKeVlQS08rdG1ockxNYWlSSFdnUnhtSG5mRnhUY1dFQ1dSZEk3 dDRJWFp3Rm9QN2Z3TVVVVXQrV3NTbzJSCnJhUVZEL3NTL2F2TlF5T2h6YTlLcVBQNjBZY3B2RUtj UXArL2hyTjRRcFhVSkxiaDFZMVlqeUhlbDhnQgpRa3p2QzUwUjVxTzRlY2xxSy9FMEhESnlDWmZN TThkV2o0REJrTWN2SzlsYjB5b3ZRMDFFTXp1NkU1NEcKYjZ0VFp1bktQTVpVd1J1SW5FY0hHMjV0 azdWUEM4clJTU0hqeDhTT3pzQk5CRjJKalJZQkNBQ3RiUWdNCldRSnMvTVdZbDR2THRLSlhYbFlS T2h1YkVWbjRjTFdZSmVFWHpzSllCQWRlNWh0QlEzc212UjJ2NnVJegptejJpaXFsSkVVdmYwY2xM WS9QVExoSGVTbWE5VTRodzRaRDNZKzV6WWxINURza2l1N3lLZTdIVmpEVmkKd1FJN25acWRvanJs dDhCZENiOVNMaXRNaFRvR1crS2E1VCtUOWNmbWthMk1qa3pRSFBNTEJtdVJ6a2V2ClBkZFF6M0xB MjMzZDNHREVTZklCYy91OC9YelBUNkZTZ3MzSEh4OEFJbFdQbEJaYmh6WmpQNlRLclRNRQpOSEtK cmxTRlZKclErL25QU28ya0VSL0VDczF0aUJEY0JkamVPYWx6LzdRVWN0Rnp3NGdjS0RtMGpUeEkK cVhWVlV3a2tuRkM4NDZMTjNBT2p0UWRyOVV3czVsTzhkeXBGQUJFQkFBSEN3RjhFR0FFSUFBa0ZB bDJKCmpSWUNHd3dBQ2drUUw5ODFmRXZEVEZXS2VBZ0FxRXN1QXJMZFprYXBvZDI3K2hpcHZZNUcr eVRLQW1NMApIVlhmQzJiMVdtNXQwQXhOVXVkMlJ1OTE1MHA3V09CRXpXYkxnNXdzOTc1M296dlZi cFpIQU9uVGZOeXoKUUR5QWhmZ1hNQjIvdzRERXEwT2tlQVBRNXhsQWtISDZpUW1hSkZiYy9FRjRX ZWZWeE92MnNRNDlRNks5Ci9Bb1FROG54RVh1RzRidXVrclEwTGVlTVAzNEdMWUhYK2JvWENHQmxI MGhiZm5kc3VQbEdqYnBnWVErdQplclJGTlB4N1JtSWtnQjJ0WmhwZkZ3VGtid1c2TVFmWDM5Z3F1 SitwVEVKUnA5UmpJVjFZU2txSjZJUkgKQkc4eFBocGgzT3huaWJyWkdlbGdtakpNM2QwM1k5OSs3 OXBvdTRlY09BeWYyTHMrMVVTY2NDTzA2YnI4CldlcjJ3cmI0WXc9PQo9aHJheAotLS0tLUVORCBQ R1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCg== -----------------------15bc216cb26317fb5357a5c81c6e52de-- --------d1f91577b4c5553b6a295d49d16d414027c81a99dd0d82e4ff1a6f595fc99c45 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: ProtonMail wsBzBAEBCAAnBYJlf6I8CZAv3zV8S8NMVRYhBFNfRF3t6Z4/pmFJQy/fNXxL w0xVAAD96wgAnr7oLmqHDUzqOCASS8Am5S5C6zchZ8/Nl+oyFvkfn33+BV/Z wR8pdqQOE+huEh5qeQKsJb/4aaxJuCoLbHaBZzpcXU3jTLcZ+BpTjseRbNZc yRjB0rxJrTsVtfMuwNKNb7b/AHcz95rvcfucA3Lz5+J5AZOma1R2ZExbON1a Gjypo/aP07IYFY6pKIx6DN1xcHGsTA86+C3jL0IfcqAQFRI+PHc/FQ0Osypg oz18OSUGG6PdovH7bYYzHmQezQs6Xw4hI26Y0BBOXh1NdiMTPmBK3zM6ephW 296PQ2tfpWIYZSLGLgS/dJ6fJRxXwy1fMWq1g1RrtYXB5GII20ocjA== =GjXv -----END PGP SIGNATURE----- --------d1f91577b4c5553b6a295d49d16d414027c81a99dd0d82e4ff1a6f595fc99c45--