về một giao dịch kỳ lạ mà tôi đã tạo ra

Bài viết này được dịch máy
Xem bản gốc

Tác giả: Vojtěch Strnad

Nguồn: https://stacker.news/items/600187

Lưu ý của người dịch: Bài viết này mô tả một giao dịch kỳ lạ tạo ra đặc biệt thể hiện sự phức tạp và linh hoạt của chính giao thức Bitcoin.

Nếu bạn tham gia Twitter hoặc Stacker News, bạn có thể nhận thấy mọi người đang thảo luận về một giao dịch Bitcoin kỳ lạ xuất hiện trên mạng chính:

https://mempool.space/tx/b10c0000004da5a9d1d9b4ae32e09f0b3e62d21a5cce5428d4ad714fb444eb5d

38308

Nó thu hút rất nhiều sự chú ý và mọi người háo hức muốn biết: Ai tạo ra thương vụ kỳ lạ này? Nó che giấu bí mật gì?

Hãy để tôi tiết lộ câu trả lời cho hai câu hỏi này.

thông tin:

 Transaction b10c0000004da5a9d1d9b4ae32e09f0b3e62d21a5cce5428d4ad714fb444eb5d was created by Vojtěch Strnad.

Địa chỉ:

 1J7SZJry7CX4zWdH3P8E8UJjZrhcLEjJ39

dấu hiệu:

 H6WHgwnYtggJH5yqVpeL9NRxWJ+8hqUW31Mc1J9e9Q3cZGEdDjixYT6jnPpIHM2FVHDbeEstP8KzDsj5U01BNSo=

Nếu bạn muốn tự mình xác minh chữ ký này (tôi thực sự khuyên bạn nên sử dụng), vui lòng không sử dụng Bitcoin Core hoặc Electrum trên Wi-Fi của khách sạn.

Sau khi giải quyết vấn đề này, chúng tôi sẽ tiết lộ mọi quả trứng Phục sinh trong thỏa thuận này. Hai điều cuối cùng trong đó , theo như tôi biết, chưa được ai chú ý đến khi viết bài này:

  • Giao dịch lần đầu tiên được xác nhận ở khối 850000.
  • Thời gian khóa của giao dịch này là dấu thời gian của Khối Genesis Bitcoin . (Lưu ý của người dịch: locktime là phương pháp thực hiện khóa thời gian tuyệt đối ở cấp độ giao dịch; ở đây, ý nghĩa của nó là giao dịch chỉ có thể được xác nhận sau khi Khối Genesis xuất hiện.)
  • Giao dịch này có TXID và WTXID rực rỡ. Bắt đầu của TXID là b10c0000004da5... , là trang chủ cá nhân của nhà phát triển Bitcoin 0xB10C Anh ấy đã từng tạo ra một giao dịch với TXID tương tự (xem: https://b10c.me/7 ). Phần đầu của WTXID là 0000000001d54... , là sê-ri số 0, giống như giá trị băm của khối.
  • Giao dịch này sử dụng mọi loại đầu vào và đầu ra tiêu chuẩn có thể có: P2PK, P2PKH, P2MS (đa chữ ký trần), P2SH, P2WPKH, P2WSH, P2TR, OP_RETURN và đầu ra SegWit v1 2 byte (sử dụng Tập lệnh mượn từ "neo tạm thời" giao thức). Một số loại được sử dụng lần trong đầu vào: P2SH được chia thành P2SH truyền thống, P2WPKH được đóng gói và P2WSH được đóng gói, trong khi P2TR được chia thành hai trường hợp: chi phí đường dẫn khóa và chi phí đường dẫn tập lệnh. (Lưu ý của người dịch: Trong mạng Bitcoin, nút sẽ truyền bá các giao dịch với các đặc điểm nhất định theo mặc định; và "đầu vào/đầu ra tiêu chuẩn" là một trong những đặc điểm đó. Loại đầu vào/đầu ra đề cập đến loại tiền được sử dụng để khóa nó "Mẫu " của tập lệnh; vì bản thân các quỹ khác nhau độc lập với nhau nên chúng tôi có thể áp dụng các quy tắc xác minh hơi khác nhau cho các tập lệnh sử dụng các mẫu khác nhau. Đây là nguồn gốc của cái gọi là khả năng "đóng gói" của nâng cấp soft fork Bitcoin . "P2WPKH/ P2WSH" là loại được thiết kế đặc biệt để làm cho tập lệnh Segregated Witness hoạt động như một tập lệnh P2SH nhằm tạo điều kiện cho các ví cũ chưa hỗ trợ tính năng Segregated Witness gửi tiền đến tập lệnh Segregated Witness trong Segregated Witness.)
  • Có nhiều tập lệnh đa chữ ký và tập lệnh liên quan đến kênh Lightning trong đầu vào: đầu vào đa chữ ký đơn giản sử dụng thiết bị đa chữ ký 2 trên 3, P2SH truyền thống là thiết bị đa chữ ký 3 trên 5 và P2WSH được đóng gói là HTLC Lightning Channel bị thu hồi, P2WSH là một kênh Lightning đảo ngược bị buộc đóng (thường được gọi là "giao dịch phạt") với độ trễ CSV ngắn bất thường (42 khối), trong khi đường dẫn tập lệnh P2TR sử dụng 5 trên 7 đa chữ ký (cả hai đều để tiếp tục mẫu số nguyên tố và để tham chiếu meme "5/7"). (Lưu ý của người dịch: CSV là khóa thời gian tương đối ở cấp tập lệnh).
  • Số tiền nhập vào có ý nghĩa đặc biệt: 6102 ám chỉ Sắc lệnh 6102 của Hoa Kỳ (Chú thích của người dịch: cấm tiết kiệm tư nhân bằng vàng), năm 1913 là thời điểm Cục dự trữ liên bang Hoa Kỳ(Fed) được thành lập, năm 1971 là thời điểm Hoa Kỳ bãi bỏ chính sách tiêu chuẩn vàng, và năm 2010 là Bitcoin dự kiến ​​sẽ giảm nửa lần cuối cùng (khi trợ cấp khối sẽ giảm xuống 0), 5139 đề cập đến CVE-2010-5139 (lỗ hổng tràn giá trị Bitcoin), 3220 đề cập đến CVE-2013-3220 (tai nạn trong fork năm 2013), 17144 đề cập đến CVE-2018-17144 (lỗ hổng lạm phát chưa được khai thác), 8149 đề cập đến số PR của Bitcoin để triển khai Segregated Witness, 9001 đề cập đến "hơn 9000!" gói, 19953 đề cập đến Đây là số PR của việc triển khai Taproot của Bitcoin Core.
  • Lượng đầu ra hiển thị ngưỡng bụi cho từng loại đầu ra: Đầu ra P2PK sử dụng khóa chung nén là 576 satoshi, P2PKH là 546 satoshi, đầu ra đa chữ ký trần 1 trên 1 sử dụng khóa chung nén là 582 satoshi và P2SH là 582 satoshis 540 Satoshi, đầu ra SegWit 20 byte (P2WPKH) là 294 Satoshi, đầu ra SegWit 32 byte (P2WSH và P2TR) là 330 Satoshi, đầu ra SegWit 2 byte là 240 Satoshi, OP_RETURN là 0 Satoshi.
  • Các số thứ tự được nhập có ý nghĩa đặc biệt: 20090103 đề cập đến ngày Khối Genesis được tạo, 20081031 đề cập đến thời gian xuất bản của Sách trắng, 19750504 đề cập đến ngày sinh được tiết lộ Satoshi Nakamoto và 16 đề cập đến BIP-16 ( nâng cấp P2SH ), 141 đề cập đến BIP-141 (nâng cấp SegWit), 0xdeadbeef là một con số ma thuật nổi tiếng (được sử dụng ở đây như một nhận xét về tính bảo mật 80-bit của P2WSH được đóng gói), 21000000 là con số mà tất cả chúng ta đều biết và yêu thích. Con số, 0xf9beb4d9 là con số kỳ diệu được sử dụng trong giao thức Bitcoin P2P, 341 đề cập đến BIP-341 ( nâng cấp Taproot) và 342 đề cập đến BIP-342 (Tapscript).
  • Giao dịch này sử dụng chữ ký ECDSA được mã hóa DER có độ dài khác nhau: 71 byte, 70, 69, 68, 67, 66, 65, 59, 58 và 57. Chữ ký thường dài 71 hoặc 72 byte, nhưng có thể thu được chữ ký ngắn hơn bằng cách thử lặp đi lặp lại; điều này được gọi là "nghiền chữ ký". Ba cái cuối cùng đặc biệt ngắn vì chúng sử dụng giá trị r ngắn đã biết trên đường cong secp256k1 .
  • Giao dịch này sử dụng tất cả các loại thẻ thở dài: SIGHASH_DEFAULT, SIGHASH_ALL, SIGHASH_NONE, SIGHASH_SINGLE, SIGHASH_ALL | SIGHASH_ANYONECANPAY, SIGHASH_NONE | (Lưu ý của người dịch: Thẻ thở dài cho phép chữ ký được liên kết với một phần cụ thể của giao dịch; việc thay đổi phần bị ràng buộc sẽ làm mất hiệu lực chữ ký, trong khi việc thay đổi phần không bị ràng buộc sẽ không ảnh hưởng đến tính hợp lệ của chữ ký. Ví dụ: SIGHASH_ALL Chỉ ra rằng chữ ký bị ràng buộc với tất cả các phần của giao dịch và việc thay đổi bất kỳ đầu vào/đầu ra nào sẽ làm mất hiệu lực chữ ký. Mặt khác, thở dài cho phép chúng tôi xác định xem giao dịch có phải là giao dịch mà người ký sẵn sàng ký hay không.)
  • Đầu ra OP_RETURN chứa các mã đẩy từ 0 đến 16 sau lần đẩy văn bản ban đầu. Đẩy lần không vi phạm bất kỳ quy tắc tiêu chuẩn nào, miễn là âm lượng đầu ra không vượt quá giới hạn.
  • Khóa chung không nén được sử dụng trong nhiều đầu vào và khóa chung được nén và không nén được trộn lẫn trong tập lệnh đa chữ ký. (Ghi chú của Người dịch: Khóa công khai là một điểm trên đường cong elip nên có 2 cách biểu diễn, một là tọa độ x và tọa độ y, một là tọa độ x, cộng với tính chẵn lẻ của giá trị y (hoặc Bổ sung thêm sắp xếp bắt buộc cho tính chẵn lẻ của giá trị y); dạng trước được gọi là dạng không nén và dạng sau được gọi là dạng nén. Bitcoin ban đầu sử dụng dạng không nén và sau đó dần dần bắt buộc phải ở dạng nén (có thể tiết kiệm không gian trên Chuỗi) . ). )
  • Trong P2MS, cũng như đầu vào P2SH truyền thống, các khóa chung đa chữ ký không được sử dụng là khóa chung coinbase của Khối Genesis, Key coinbase của khối 9 và khóa chung được Hal Finney sử dụng trong giao dịch Bitcoin đầu tiên . Hai khóa chung không được sử dụng trong thiết bị đa chữ ký chi tiêu tập lệnh P2TR là hai khóa chung từ giao dịch chi tiêu tập lệnh P2TR đầu tiên . Khóa công khai nội bộ trong chi tiêu tập lệnh P2TR là hàm băm SHA-256 của Sách trắng . Cuối cùng, giá trị băm 20 byte trong tập lệnh HTLC tương ứng với địa chỉ 17TASsYPbdLrJo3UDxFfCMu5GXmxFwVZSW, địa chỉ 0,5 BTC được sử dụng trong cuộc tấn công vẫn chưa được di chuyển cho đến nay.
  • Tập lệnh P2TR lấy đầu vào là Merkle trees có độ sâu 21, sâu hơn bao giờ hết (kỷ lục trước đó là 7 cấp). Giá trị nhánh Merkle được tiết lộ trong khối kiểm soát không phải là giá trị băm ngẫu nhiên mà là TXID của 21 giao dịch có tác động đáng kể đến lịch sử Bitcoin :
    • 2009-01-03 Giao dịch Coinbase trong Khối Genesis:
      4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
    • 2009-01-12 Giao dịch không phải coinbase đầu tiên (Satoshi Nakamoto gửi tới Hal):
      f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16
    • 16-01-2009 Giao dịch đầu tiên được gửi tới tập lệnh P2PKH:
      6f7cf9580f1c2dfb3c4d5d043cdbb128c640e3f20161245aa7372e9666168516
    • Giao dịch pizza của Laszlo Hanyecz 22-05-2010 (trị giá 10.000 BTC):
      a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d
    • 14-11-2010 Giao dịch đầu tiên có TXID chồng chéo (ngoại lệ đầu tiên đối với BIP-30):
      d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599
    • 15-11-2010 Giao dịch đầu tiên có TXID chồng chéo (ngoại lệ thứ hai đối với BIP-30):
      e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd81b84ee974b6585fb468
    • 16-11-2011 Giao dịch Bitcoin lớn nhất cho đến nay (550.000 BTC):
      29a3efd3ef04f9153d47a990bd7b048a4b2d213daaa5fb8ed670fb85f13bdbcf
    • 06-04-2013 Giao dịch có chứa Sách trắng Bitcoin hoàn chỉnh :
      54e48e5f5c656b26c3bca14a8c95aa583d07ebe84dde3b7dd4a78f4e4186e713
    • 2013-11-05 Giao dịch Rickroll:
      d29c9c0e8e4d2a9790922af73f0b8d51f0bd4bb19940d9cf910ead8fbe85bc9b
    • 2015-07-07 “Megatransaction” của F2Pool mất 25 giây để xác minh (xem blog do Rusty Russell viết để biết chi tiết):
      bb41a757f405890fb0f5856228e23b715702d714d59bf2b1feb70d8b2b4e3e08
    • 11-07-2015 Một giao dịch tương tự khác được thực hiện bởi F2Pool phối hợp với Greg Maxwell, sử dụng lỗi SIGHASH_SINGLE để dễ xác minh và cũng sử dụng thủ thuật giá trị r ngắn để có được chữ ký nhỏ hơn:
      9fdbcf0ef9d8d00f66e47917f67cc5d78aec1ac786e2abb8d2facb4e4790aad6
    • 26-04-2016 Giao dịch duy nhất có phí xử lý cao nhất cho đến nay (291 BTC):
      cc455ae816e6cdafdb58d54e35d4f46d860047458eacf1c7405dc634631c570d
    • 23/02/2017 Giao dịch lĩnh nhận thưởng va chạm SHA-1:
      8d31992805518fd62daa3bdd2a5c4fd2cd3054c9b3dca1d78055e9528cff6adc
    • 24-08-2017 Giao dịch chi tiêu SegWit đầu tiên:
      8f907925d2ebe48765103e6845c06f1f2bb77c6adc1cc002865865eb5cfd5c1c
    • 23-07-2021 0xB10C Giao dịch P2TR mà bất kỳ ai cũng có thể chi tiêu (xem chi tiết: https://b10c.me/7 ):
      b10c007c60e14f9d087e0291d4d0c7869697c6681d979c6639dbd960792b4d41
    • 2021-11-14 Giao dịch chi tiêu Taproot đầu tiên:
      33e794d097969002ee05d336686fc03c9e15a597c1b9827669460fac98799036
    • 2021-11-14 Giao dịch chi tiêu tập lệnh Taproot đầu tiên:
      37777defed8717c581b4c0509329550e344bdc14ac38f71fc050096887e535c8
    • 2021-12-07 Wang Chun tặng 1 BTC cho Luke Dashjr (thay đổi là 8999 BTC):
      fd456524104a6674693c29946543f8a0befccce5a352bda55ec8559fc630f5f3
    • 2022-10-09 Chi tiêu đa chữ ký 998 trên 999 của Burak, phá vỡ LND:
      7393096d97bfee8660f4100ffd61874d62f9a65de9fb6acf740c4c386990ef73
    • 2022-11-01 Burak lại phá vỡ thỏa thuận của LND:
      73be398c4bdc43709db7398106609eea2a7841aaf3a4fa2000dc18184faa2a7e
    • 23-11-2023 Giao dịch với mức phí cao nhất bằng tiền pháp định (86 BTC hoặc 3,13 triệu USD):
      b5a2af5845a8d3796308ff9840e567b14cf6bb158ff26c999e6f9a1f5448f9aa

Toàn bộ dự án mất hơn 1 năm để hoàn thành. Ban đầu, tôi chỉ muốn tạo ra một giao dịch bao gồm mọi loại đầu vào và đầu ra có thể làm giao dịch tham khảo để so sánh các tính năng của các trình khám phá khối khác nhau, nhưng khi tôi ngày càng nảy ra nhiều ý tưởng, độ phức tạp bùng nổ và cuối cùng nó trở thành thứ bạn thấy đấy. Tôi đã học được rất nhiều điều, không chỉ về giao thức Bitcoin mà còn về lịch sử của Bitcoin . Tôi đã viết mã để tạo giao dịch bằng TypeScript và BitcoinJS; một số phần nhạy cảm về hiệu suất sau đó được viết bằng Rust, một ngôn ngữ mà tôi đã học đặc biệt cho mục đích này.

Cảm ơn mononaut vì đã là người đầu tiên chú ý đến giao dịch của tôi , chỉ vài giờ sau khi tôi tạo nó và là người đầu tiên nhận thấy tầm quan trọng của TXID của nó. Super Testnet sau đó đã viết một bài đăng trên Stacker News liệt kê mọi quả trứng Phục sinh được biết đến vào thời điểm đó (và là người đầu tiên khám phá ra nhiều quả trứng Phục sinh trong số đó). Cuối cùng, xin cảm ơn những người khác cũng đã tìm thấy trứng Phục sinh: Sebastian Falbesoner, Rob Hamilton, Tom Honzik, iWarp, Jiří Jakeš, Portland.HODL, pycan, Gregory Sanders, Tomer Strolight và Peter Todd.

Xin gửi lời cảm ơn chân thành đến cộng đồng nhà phát triển Bitcoin, người viết kỹ thuật Bitcoin và bất kỳ ai đã trả lời các câu hỏi trên Bitcoin Stack Exchange. Dự án này sẽ không thể thực hiện được nếu không có tất cả mọi người. Tôi cũng rất biết ơn những người đã bày tỏ sự đánh giá cao đối với thương vụ này, nó có ý nghĩa rất lớn đối với tôi.

Nếu bạn vẫn còn thắc mắc, tôi rất sẵn lòng trả lời chúng. Nếu câu hỏi là câu hỏi mà người khác có thể trả lời, vui lòng cân nhắc việc đăng nó lên Bitcoin Stack Exchange, nơi nó sẽ có nhiều khả năng giúp ích cho những độc giả khác hơn.

(qua)

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận