Bitcoin inscription – thứ nghệ thuật kì quặc của blockchain

Quan Nguyen

Bitcoin

Nếu bạn thấy Bitcoin chỉ để nhận và gửi quá nhàm chán…

Hôm nay mình sẽ viết kỹ về cơ chế của một hệ sinh thái mới nổi lên trong 2023, đó là Inscription.

Xuất phát từ Bitcoin (BTC), sau đó lan ra các altcoin khác, làm nghẽn mạng hay là đẩy mức phí giao dịch lên cực điểm.

Vậy inscription có nguồn gốc từ đâu, nó dùng để làm gì và hiện tại có những cái gì nên chú ý về nó.

BTC và mô hình Unspent Transaction Output (UTXO) – 2009


Cấu trúc các giao dịch của BTC.

Mỗi giao dịch BTC sẽ có 2 phần, INPUT và OUTPUT.

Trong đó:

  • OUTPUT là một đoạn mã để thực hiện logic của giao dịch
  • INPUT sẽ chỉ đến các giao dịch trước đó có liên quan đến các đồng BTC sẽ được sử dụng trong OUTPUT.

Chúng ta hãy tưởng tượng mỗi đồng BTC là 1 tờ tiền giấy, có số series, có mệnh giá. Mỗi người sử dụng BTC được thể hiện thông qua địa chỉ ví, và địa chỉ này được sinh ra dựa trên private key mà người đó giữ. Giả sử có các giao dịch (Tx) sau:

Tx1: Thợ đào (miner) X đào được 1 BTC
Tx2: X gửi 1 BTC cho Y
Tx3: Y gửi 0.5 BTC cho Z.

Tx1 khá dễ hiểu vì như chúng ta đã biết, khi miner tham gia POW tìm ra block, họ sẽ được thưởng 1 lượng BTC tương ứng gọi là BlockRewards.

Trong trường hợp này:

  • INPUT(Tx1) = NULL (không tham chiếu đến bất kỳ giao dịch nào trước đó)
  • OUTPUT(Tx1) = X nhận 1 BTC từ BlockRewards.

Khi X cần chuyển BTC cho người khác, X cần chỉ định rõ sẽ chuyển BTC nào, giống như hành động mở ví lấy 1 tờ tiền đưa cho người khác vậy.

INPUT của giao dịch, trong trường hợp này, sẽ được trỏ tới OUTPUT của giao dịch trước đó sinh ra tờ tiền trong ví.

Như vậy:

  • INPUT(Tx2) = OUTPUT(Tx1)
  • OUTPUT(Tx2) = Y nhận 1 BTC từ X.

Ở trường hợp thứ 3, tương tự chúng ta có:

  • INPUT(Tx3) = OUTPUT(Tx2)
  • OUTPUT(Tx3) = Z nhận 0.5 BTC từ Y.

Vậy còn 0.5 BTC thừa thì sao ?

Sẽ phải trả lại, thông qua:

  • OUTPUT(Tx3)’ = Y nhận lại 0.5 BTC.

Như vậy nếu Y muốn xài tiếp thì sẽ sử dụng OUTPUT(Tx3)’ để cho các giao dịch kế tiếp.

Việc chia nhỏ trả lại tiền thừa như vậy có thể diễn ra nhiều lần tiếp cho đến khi không thể chia nhỏ được nữa, Bitcoin quy định đơn vị nhỏ nhất có thể chia được là 0.00000001 (8 chữ số thập phân sau dấu phẩy), sau này được gọi là Satoshi, tương tự như VND thì đơn vị nhỏ nhất là 1 ĐỒNG.

Việc nối các giao dịch với nhau lại như vậy còn được gọi là mô hình Unspent Transaction Output (UTXO).

Cứ miễn là OUTPUT chưa được sử dụng (unspent) thì chúng ta có thể xài để tạo ra giao dịch kế tiếp.

Lúc này để biết 1 ví có bao nhiêu BTC chúng ta sẽ phải tìm tất cả các OUTPUT chưa được sử dụng của ví đó và … đếm như tiền giấy vậy.

Mô hình này khác hoàn toàn với mô hình “Tài khoản” (Account base) của Ethereum khi mà chỉ đơn giản là cộng trừ vào 1 tài khoản gốc, tương tự như digital banking.

Mô hình UTXO thực sự thì không ưu việt hơn Account Base, chỉ là với cách này chúng ta có thể mô phỏng chính xác cách mà tiền giấy hoạt động.

Từng “đồng” BTC có thể được tra soát on-chain từ lúc được sinh ra cho đến lúc đến ví người dùng.

Đây là một yếu tố quan trọng làm nền cho những phát kiến tiếp theo sau đó.

Transaction Script – 2009

Như vậy chúng ta có thể hiểu tất cả logic của giao dịch sẽ nằm ở phần OUTPUT.

Phần này được định nghĩa là các mã lệnh máy tính (Script) chứa logic mà các BTC client sẽ xử lý để xác nhận xem giao dịch có hợp lệ hay không.

Chúng ta đã biết là ban đầu BTC sinh ra có một mục đích duy nhất là để làm hệ thống tiền điện tử, không có mục đich khác nên các script này cũng được thiết kế đơn giản hết mức có thể để tránh bị lợi dụng để phá hoại các miner. Hầu hết chỉ dùng để kiểm tra chữ ký điện tử để xác thực giao dịch.

Colored Coin, bước đầu mang những tính ứng dụng mới lên Bitcoin – 2013

Có rất nhiều người muốn sử dụng Bitcoin vào những use case khác ngoài việc chỉ là tiền tệ vì Bitcoin có tính chất không thể sửa xóa được.

Một trong số đó là dùng để phát hành token cho các tài sản thế giới thực (RWA).

Cơ bản là làm sao để vẫn dựa vào cấu trúc hiện tại (UTXO, script) mà có thể tạo được token khác ngoài BTC.

Một khái niệm ra đời vào năm 2013 để làm việc này gọi là giao thức Colored Coin (Giao thức đồng tiền màu).

Một trong số những người tạo ra giao thức này chính là Vitalik Buterin – nhà sáng lập Ethereum sau này.

Có thể hiểu nôm nay thế này, chúng ta tìm cách nhét thêm thông tin vào 1 giao dịch BTC với nội dung:

Tx1: “X phát hành 1000 token màu hồng”

Tx2: “X chuyển 100 token hồng cho Y”

Để phát hành 1 token thì chúng ta cần 2 loại giao dich.

  1. Giao dịch đầu tiên khi token đó được sinh ra (tương tự mine ra BTC)
  2. Giao dịch chuyển token từ ví này sang ví khác.

Vì Bitcoin script khá hạn chế, không thể lập trình việc này được, người ta cần nghĩ ra các phương pháp khác để đánh dấu các giao dịch BTC đặc biệt ứng với các loại giao dịch token trên.

Cái này cũng như đang “tô màu” cho các giao dịch Bitcoin, nên còn gọi là Colored Coin.

Kỹ thuật để đánh dấu giao dịch phổ biến nhất là lợi dụnng trường thông tin không hay được sử dụng của Bitcoin (trường thông tin thứ tự của giao dịch), và nhét các thông tin được nén vào trong đó.

Colored Coin cũng đã từng khá thịnh hành với nhiều OG crypto tham gia như Yoni (CEO eToro), Vitalik.

Nhưng do sau đó với sự hạn chế về lập trình của BTC và sự ra đời của Ethereum với khả năng tạo token không giới hạn, kỹ thuật này không còn được sử dụng nữa.

OP_RETURN – 2014

Sự ra đời của Colored Coin và việc lợi dụng các trường thông tin của giao dịch BTC để lưu trữ những dữ liệu không liên quan tất nhiên là không được sự đồng ý của những Bitcoin Core Dev.

Do nó không đúng mục đích, làm cho Bitcoin trở nên nặng nề hơn và ảnh hưởng đến usecase chính là tiền tệ phi tập trung.

Nhưng dưới áp lực của cộng đồng, năm 2014, một giải pháp trung lập đã được triển khai.

Đó là thêm 1 trường thông tin gọi là OP_RETURN vào trong các giao dịch.

Nghĩa là khi tạo giao dịch BTC, ta có thể ghi thêm 1 dữ liệu bất kỳ vào vào chỗ OP_RETURN này.

Tương tự trường memo mà chúng ta hay sử dụng ở hệ Ethereum. Trường thông tin này rất nhỏ, chỉ 40 bytes (tương đương tầm 10-40 ký tự chữ in), tuy nhiên vậy là khá đủ cho mục đích của nó rồi.

Điểm khác biệt của OP_RETURN với phương pháp cũ là khi nhận giao dịch, Bitcoin node có thể quẳng luôn trường này đi không cần quan tâm do nó ko dính gì đến logic chuyển BTC.

Các node thực sự quan tâm sẽ ghi lại riêng. Điều này giảm tải cho các node Bitcoin nhiều hơn.

Tuy tiện lợi là vậy, OP_RETURN cũng vẫn khá hạn chế và cũng chỉ xài được để ghi note riêng chứ cũng không có nhiều ứng dụng rộng rãi.

Segwit, từ bản vá lỗi cơ bản đến khả năng mở rộng Bitcoin thần kỳ – 2015

Tuy Bitcoin chạy rất ổn định trong vòng nhiều năm, thực tế là vẫn có nhiều lỗi, thậm chí là nghiêm trọng đối với giao thức này.

Vào năm 2015, một lập trình viên huyền thoại Pieter Wuille đã đề cập đến một lỗi nghiêm trọng của Bitcoin đó là lỗi sửa giao dịch “Transaction Malleability”.

Hiểu nôm na như thế này, ta quay lại ví dụ ban đầu:

Tx3: Y gửi 0.5 BTC đến Z.

Bitcoin có một lỗi đó là khi Tx3 chưa được network công nhận, người ta có thể thay đổi ID của giao dịch thành Tx3.1 mà không ảnh hưởng đến nội dung chuyển tiền.

Như vậy Z trong trường hợp này sẽ lợi dụng đổi ID này và lừa Y rằng Tx3 không được mạng Bitcoin công nhận, mà thực tế là Tx3.1 đã được thực hiện, Y đã mất 0.5 BTC.

Nếu không cẩn thận kiểm tra mà gửi tiếp giao dịch ngay thì Yg đã bị lừa gửi 2 lần.

Như ta đã biết, OUTPUT của giao dịch Bitcoin sẽ có nội dung giao dịch và chữ ký của người gửi.

Phần chữ ký này còn goi là Witness ( Chứng kiến) .

Việc thay đổi ID xảy ra là do người ta có thể sửa được chữ ký này mà ko thay đổi nội dung giao dịch.

Để tránh tình trạng này xảy ra, Petier đề nghị tách luôn phần Witness ra ngoài để không ai sửa được nữa.

Kỹ thuật này gọi là Segregated Witness (Phân tách chữ ký), viết tắt là SegWit.

SegWit là phương pháp tách toàn bộ phần chữ ký của các giao dịch trong Bitcoin ra ngoài, chỉ giữ lại bản rút gọn (Root Hash) của phần chữ ký này trong Bitcoin block.

Phần tách này sẽ được lưu trữ ở các client khác hỗ trợ SegWit.

Còn các client Bitcoin thường (Legacy) sẽ không thấy các giao dịch này.

Segwit không chỉ chia tách chữ ký khỏi giao dịch mà còn chia luôn cả các giao dịch và các client Bitcoin thành 2 loại cùng tồn tại song song.

Legacy client chỉ chạy các giao dịch BTC thường, Segwit client chạy cả giao dịch Legacy lẫn Segwit.

Chính vì tính chất này nên mạng Bitcoin không cần nâng cấp toàn bộ mà chỉ cần ai chấp nhận Segwit thì chạy client mới.

Điều này là một bước tiến phi thường vì Bitcoin đã trở nên quá lớn, quá nhiều người lao vào làm các máy đào chuyên dụng nên bất kỳ thay đổi nào trong mạng cũng cực kỳ khó thực hiện.

Phương pháp này còn gọi là “Soft Fork” vì không ép tất cả mọi người thưc thi (soft).

Tuy vậy, vẫn có những người phản đối SegWit do việc nó tách 1 phần network ra xử lý bên ngoài và không giải quyết triệt để lỗi sửa giao dịch.

Những người này quyết định tách Bitcoin thành một nhánh khác, gọi là Bitcoin Cash (BCH), giữ nguyên kiến trúc cũ của Bitcoin.

Việc tách chữ ký ra khỏi block làm cho Bitcoin có nhiều chỗ hơn cho giao dịch, khiến cho mạng trở nên nhẹ hơn nhiều, và mở ra cánh cửa cho Bitcoin xử lý được nhiều giao dịch hơn gấp nhiều lần.

Điều này vô cùng quan trọng với tài sản điện tử phi tập trung này.

Sáng kiến vô tiền khoáng hậu nhưng dường như ngày nay không ai còn nhắc về Petier.

Bản nâng cấp Taproot và sự cải tổ được toàn bộ cộng đồng ủng hộ – 2021

Thành công của Segwit đã thôi thúc cộng đồng Bitcoin phát triển nhiều hơn vượt ra khỏi giới hạn của kiến trúc ban đầu Satoshi tạo ra.

Sau hơn 3 năm phát triển, bản nâng cấp Taproot (Rễ cọc) được công bố năm 2021 là một trong những bản update lớn nhất trong lịch sử Bitcoin.

Như cái tên của mình, Taproot biến Bitcoin thành cội rễ cho các phát triển mới như những rễ con toả ra từ nhánh chính.

Taproot đưa ra 3 thay đổi chính:

  1. Đưa vào sử dụng thuật toán chữ ký điện tử ưu việt hơn, cho phép gộp nhiều chữ ký lại giúp tiết kiệm chi phí và dung lượng, khiến giao dịch nhẹ hơn, rẻ hơn, và tăng tính riêng tư cho các giao dịch sử dụng đa chữ ký.
  2. Hệ thống Taproot, cho phép chia nhỏ script ra thành nhiều phần (các rễ nhỏ) và chỉ đưa 1 phần nhỏ vào trong Bitcoin để kiểm chứng về sau. Cải tiến này cho phép chúng ta đưa vào nhiều logic script hơn trước kia mà không phải lo gánh nặng lên mạng lưới.
  3. Đưa vào sử dụng ngôn ngữ script mới gọi là Tapscript, ưu việt hơn script cũ của Bitcoin.

Tapscript đơn giản hơn, dễ hiểu và được thiết kế cũng linh hoạt hơn để dễ dàng nâng cấp và viết các logic mới trên Bitcoin.

Việc lập trình trên Bitcoin trở nên dễ dàng hơn rất rất nhiều.

Script này có thể dùng để viết các smart contract dễ dàng hơn, khiến Bitcoin có khả năng mở rộng vô tận, cạnh tranh trực tiếp với Ethereum.

Taproot cũng đi theo hướng Soft Fork như Segwit, nhưng lại có một kết cục tốt hơn nhiều đó là toàn bộ mạng lưới đều ủng hộ, không bị tách thành BCH như bản trước.

Tuy không phải 100% các node Bitcoin hiện tại chạy Taproot nhưng bản nâng cấp này đã được đại đa số miner ủng hộ và nâng cấp theo.

Bitcoin đã chính thức bước sang một trang mới, có khả năng lập trình dễ dàng, khả năng mở rộng mạnh mẽ, và có một cộng đồng cùng chung một tiếng nói.

Ordinal, đế chế NFT khắc trên Bitcoin – 2023

Sau rất nhiều dẫn dắt, cuối cùng chúng ta cũng đến chủ đề chính.

Vào ngày 20-1-2023, lập trình viên Bitcoin Core, Casey @rodarmor giới thiệu giao thức Ordinals, NFT trực tiếp trên Bitcoin.

Chúng ta có thể thấy từ đầu Bitcoin đã trải qua rất nhiều nâng cấp, ban đầu là thêm trường dữ liệu nhỏ, cho phép phát hành tài sản khác, cho đến nhưng thay đổi vượt bậc gần đây để scale tốt hơn để xử lý nhiều giao dịch và giao dịch phức tạp hơn.

Tất nhiên khái niệm NFT trên Bitcoin không phải là mới.

Có nhiều giao thức Layer-2 trên Bitcoin như Stack, Rootstock cho phép viết smart contract nên có thể viết NFT từ trước, nhưng mãi cho đến Ordinal xuất hiện chúng ta mới có thể thấy văn hóa NFT thực sự được hình thành trên Bitcoin.

Vậy ordinal làm việc như thế nào ?

Đầu tiên, Ordinal (thứ tự) là một phương pháp sắp xếp các Satoshi theo một thứ tự nhất định để mang tính chất non-fungible đến, làm tiền đề cho NFT.

Giao thức ordinal quy định rằng mỗi Satoshi sẽ được đánh dấu dựa theo số thứ tự khi mà Satoshi đó được tạo ra.

Tương tự như chúng ta đánh số series cho từng đồng của VND vậy.

Satoshi đầu tiên chính là đồng Bitcoin đầu tiên được tạo ra từ block số 0 và cứ như thế đánh đến tận ngày hôm nay.

Số thứ tự này được giữ nguyên khi có các giao dịch phân tách Bitcoin thành các OUTPUT khác nhau. Chính số thứ tự này tượng trưng cho ID của các NFT.

Đối với bản thân Bitcoin, các số thứ tự của Satoshi không có nghĩa gì cả, vì đơn giản là Bitcoin không quan tâm.

Nhưng những người chơi Ordinal thì lại khác, họ làm ra các hệ thống để theo dõi các Satoshi (gọi tắt là Sats) này, tự đặt ra độ hiếm (theo số thứ tự trong block, theo các sự kiện như halving, upgrade, số đẹp, vân vân và mây mây) và tự quy định với nhau các quy tắc để diễn giải các số thứ tự này.

Tất cả để thỏa mãn cơn khát NFT trên Bitcoin.

Còn nội dung của NFT thì sao, đây là lúc các nâng cấp trước đây phát huy tác dụng.

Nếu như dân chơi NFT trên ETH thường quen với khái niệm URI, nơi mà art thực sự của NFT được đưa lên hệ thống lưu trữ như IPFS thì Ordinal NFT lại “khắc” thẳng nội dung của NFT đó vào trong Witness của giao dịch Bitcoin.

Vì là witness nên nó được đẩy sang Segwit. Nội dung này cũng được viết sử dụng Tapscript để các node chạy Taproot hiểu dược.

Đây chính là sự khác biệt lớn nhất của Ordinal với tất cả các loại khác khi mà từng NFT được “khắc” trực tiếp vào từng Sats trên Bitcoin, một thứ nghệ thuật cầu toàn kỳ quặc đến mức ám ảnh khiến cho một bộ phận người chơi phát cuồng vì nó.

Nghệ thuật khắc dựa vào witness này chính vì thế có tên là “Inscription”.

Ordinal đúng là đã mang nghệ thuật lên Bitcoin một cách tự nhiên.

Tuy nhiên nó cũng tạo nên rất nhiều sóng gió trong cộng đồng vì nó khiến người ta bỏ công đi đào Bitcoin kiếm các Sats có ID đặc biệt, làm cho mạng Bitcoin bị nghẽn, không thể giao dịch bình thường được.

Nhiều lập trình viên Bitcoin đã lên tiếng phản đối, nhưng thực sự thì cơn sốt này mang lại cho những thợ đào Bitcoin nguồn thu nhập khổng lồ, họ không dại gì mà từ chối cả.

BRC-20, RUNES và những mở rộng đáng chú ý khác – 2023

Sau sự ra đời của Ordinal, người ta lại quay lại thử nghiệm ngày xưa của Colored Coin, đó là việc phát hành các token fungible trên Bitcoin.

Nhưng tất nhiên lần này là bỏ qua sự cồng kềnh của Colored Coin. Đó là lúc BRC-20 ra đời.

Chúng ta đã quá quen với ERC-20, tiêu chuẩn token bên Ethreum cho phép định nghĩa các loại fungible token và chuyển qua lại.

Khái niệm tương tự được mang lên Bitcoin, cũng thông qua phương pháp inscription của Ordinals.

Thay vì metadata như NFT của ordinals, dữ liệu của BRC-20 là các chuỗi ký tự định nghĩa về token và cách tương tác với nó được khắc lên các Sats.

Cách làm thì hết sức đơn giản vì bây giờ chúng ta có thể lưu trữ nhiều dữ liệu hơn lên Bitcoin thông qua inscription rồi.

Tương tự Colored Coin, chúng ta có 2 loại giao dịch.

  1. Mint BRC-20 mới, đơn giản là tự khắc cho mình 1 đoạn ký tự miêu tả về đồng coin, tên và số lượng tương ứng.
  2. Để chuyển BRC-20 cho người khác, đơn giản là khắc các ký tự mô tả chuyển cho ai bao nhiêu vào Sats.

Như vậy các client như explorer hay ví chỉ cần theo dõi tất cả các giao dịch Sats để lọc ra các BRC-20 này và hiển thị là xong.

Ưu điểm của BRC-20 thì giống như là Colored Coin đã nói ở trên, còn nhược điểm so với ERC-20 thì vì nó không có hệ thống smart contract đằng sau như Ethereum, nó không thể sử dụng trực tiếp trong DEFI được.

Điều này rất hạn chế và hy vọng sẽ có những cải tiến trong tương lai.

BRC-20 đầu tiên, rất buồn cười, được đặt tên là ORDI, tượng trưng cho giao thức Ordinals.

Nhưng thực tế thì đồng ORDI này chả có liên hệ nào với Casey cả, mà chỉ vì nó viết bằng inscription nên tác giả … tự đặt là ORDI.

Tuy BRC-20 lấy ý tưởng tương tự ERC-20, nhưng thực tế là có rất nhiều hạn chế.

Nhưng tất cả không dừng ở đó, chủ nhân của Ordinal Casey Rodarmor lại vỗ gối đẻ ra một giao thức mới, tất nhiên đúng với phong cách của mình là tất cả phải Bitcoin native, giao thức này gọi là RUNES.

Các bạn nhớ Bitcoin là UTXO chứ ?

Như vậy để fungible token trên Bitcoin hoạt động … như Bitcoin thì token này cũng phải hoạt động trên nguyên tắc UTXO.

Đây là điểm khác biệt cực lớn giữa RUNES và phần còn lại.

Rune hoàn toàn không sử dụng Ordinal, mà dùng đúng cái chúng ta đã viết ở trên để làm: OP_RETURN.

Như vây Rune không phải inscription, cũng không phải ordinal, mà đơn giản là viết thẳng luôn vào trường dữ liệu của OUTPUT của 1 giao dịch Bitcoin.

Cách tạo ra RUNE thì cũng như ở trên thôi, cũng chọn tên và số lượng để mint.

Nhưng lúc chuyển Rune qua lại thì lại dùng chính UTXO của Bitcoin để chuyển, đơn giản là tạo 1 giao dịch khác và ghi vào muốn chuyển bao nhiêu Runes cho người nhận.

Điều này làm cho Rune trở thành một phần của chính cách Bitcoin hoạt động.

Đi kèm với BRC-20, Runes, thì một loạt các hệ ăn theo trend như DRC-20 trên Doge, ARC-20 dính luôn token vào từng Satoshi, và một vài hệ mới nổi khác.

Sẽ còn rất nhiều điều để nói về những hệ này trong tương lai.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Crypto logo

Trong thời đại số, tài sản của bạn cần được bảo chứng bởi Toán học & Mã hóa chứ không phải ngân hàng hay chính phủ.

Contact

Company Name

Address