Vieno patento suskaidymas į prekybines NFT „akcijas“ paverčia sudėtingą intelektinę nuosavybę tiesiai į likvidų turtą, kurį gali nusipirkti, parduoti ir valdyti jo suinteresuotieji subjektai. Sukurdami unikalius žetonus, kurių kiekvienas sudaro nedidelę išradimo dalį, išradėjai gali gauti nedelsiant finansavimą nesuteikdami kontrolės vienam rėmėjui. Šie žetonai apima metaduomenis, pvz., pretenzijų hashes, išradėjo decentralizuotus identifikatorius ir galiojimo pabaigos blokus, kurie aiškiai parodo patento kilmę ir detales.
Daugiabučių peržiūra naudojant žetonų valdymą labai skiriasi nuo tradicinio JAV patentų ir prekių ženklų biuro uždarojo egzaminatoriaus modelio. Vietoj kelių egzaminatorių, kurie per kelerius metus privačiai peržiūri paraiškas, daliniai patentų NFT leidžia decentralizuotai bendruomenei įdėti žetonus, išnagrinėti ankstesnį meną, pateikti atmetimus ir balsuoti dėl patentabilumo per nustatytą peržiūros laikotarpį. Reputacijos balai ir kvorumo slenksčiai pakeičia fiksuotus egzaminatorių paskyrimus, leidžiančius greitai susitarti arba pabrėžti nesutarimų sritis per skaidrius grandinės sandorius.
Tokenizuokite išradimo atskleidimą
Išradimo atskleidimo kaip frakcinio patento NFT kūrimas prasideda koduojant pagrindines jūsų patentinės paraiškos dalis, įskaitant jos pretenzijas, išradėjo duomenis ir peržiūros terminą, į grandinės metaduomenis.Naudojant ERC-1155 sutartį, kiekvienas patento „dalys“ pateikiamas kaip unikalus žetonų ID balansas.Žmonės, turintys tą žetonų ID kartu, turi atskleidimą ir dalyvauja peržiūros ir licencijavimo sprendimuose.
Koncepcijos paaiškinimas
Šiame modelyje kiekvienam išradimo atskleidimui sukuriamas naujas žetonų ID. Kiekvienas žetonų ID apima struktūrą, kurioje registruojamas patento pretenzijų kalbos kriptografinis hash, decentralizuotas išradėjo identifikatorius (DID) ir galiojimo pabaigos bloko numeris, po kurio negali prasidėti jokių naujų peržiūros raundų.Investuotojai perka žetonų likučius, kad finansuotų išradimą ir uždirbtų atlygį už dalyvavimą tarpusavio peržiūrose.Kadangi visi duomenys, įskaitant IP kilmę ir laiko apribojimus, saugomi grandinėje, jokia centralizuota šalis negali pakeisti informacijos atskleidimo ar apriboti prieigos prie peržiūros proceso.
Minting Syntax su suskaidymu ir paaiškinimu
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract FractionalPatent is ERC1155, Ownable {
struct Patent {
bytes32 claimHash;
string inventorDID;
uint256 expiryBlock;
}
mapping(uint256 => Patent) public patents;
uint256 private nextId = 1;
constructor(string memory uri_) ERC1155(uri_) {}
function mintDisclosure(
bytes32 claimHash,
string calldata inventorDID,
uint256 expiryBlock,
uint256 totalShares
) external onlyOwner returns (uint256 tokenId) {
tokenId = nextId++;
patents[tokenId] = Patent(claimHash, inventorDID, expiryBlock);
_mint(msg.sender, tokenId, totalShares, "");
}
}
Šiame skyriuje, ThemintDisclosure
Funkcija turi keturias įvesties.claimHash
yra keccak256 hash patento pretenzijos tekstas.inventorDID
yra unikalus identifikatorius, pvz., DID:example:1234, kuris sujungia grandinės įrašus su išradėju.expiryBlock
nustato bloko numerį, po kurio daugiau peržiūros sutartys negali naudoti šio atskleidimo.totalShares
nusprendžia, kiek frakcinių žetonų sukurti tam ID.patents[tokenId]
išsaugo nepakeičiamą informaciją būsimam naudojimui.
Metaduomenų laukų paaiškinimas
KiekvienasPatent
Struktūriniai laikikliai:
- claimHash: bytes32 keccak256 hash, užtikrinantis, kad grandinės įrašas atitiktų ne grandinės teiginių kalbą, neatskleidžiant viso teksto.
- inventorDID: eilutės rodyklė į išradėjo decentralizuotą tapatybę, leidžianti nepatikimą priskyrimą.
- expiryBlock: Unix stiliaus Ethereum blokų skaičius, virš kurio atskleidimas laikomas uždarytu naujiems peržiūros etapams.
Demonstracija su pavyzdžiu
Įsivaizduokite, kad Alisa parengė laikiną paraišką ir nori ją suskaidyti į milijoną akcijų.
const claimText = "A modular solar array with adaptive orientation…";
const claimHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(claimText));
Įsivaizduokite, kad ji dislokuojaFractionalPatent
Gavusi savo adresą, ji skambina:
await patentContract.mintDisclosure(
claimHash,
"did:example:alice123",
18_200_000, // expiryBlock ~ Ethereum block in six months
1_000_000 // total shares
);
Ši operacija sukuria token ID 1, registruoja Alisos metaduomenis ir monetuoja 1 000 000 akcijų į savo piniginę.Šios akcijos dabar gali būti perduodamos rėmėjams, įtrauktos į rinkas arba laikomos DAO iždo kasoje, kad būtų finansuojama plėtra, išlaikant saugų, netinkamą išradimo esminių detalių grandinės įrašą.
Pradėkite Crowd-Review ratą
Dalinio patento sistemoje, pradedant minios peržiūros ratą, žetonų turėtojai dalyvauja kaip aktyvūs peržiūrininkai. Jie užrakina akcijas, peržiūri atskleidimą ir uždirba atlygį už atitinkamo ankstesnio meno nustatymą arba patento unikalumo palaikymą. Šis peržiūros procesas yra valdomas grandinėje pagal protingą sutartį, kuri sieja su atskleidimo žetonų ID ir nustato taisykles dėl streiko, atmetimo laiko intervalų ir atlygio daugiklių, kad būtų skatinamos greitos ir išsamios peržiūros.
Koncepcijos paaiškinimas
Kai prasideda peržiūros ratas, peržiūros sutartis patikrina galiojimo pabaigos bloką nuo atskleidimo, kad įsitikintų, jog terminai yra prieš tą bloką. Tokenų turėtojai, norintys prisijungti, turi perkelti nustatytą patento akcijų sumą į peržiūros sutartį. Sudarydami statymą, recenzentai rodo, kad jie tiki savo išvadomis: jei jie randa galiojantį ankstesnį meną, kuris paneigia reikalavimą, jie gauna didesnį atlygį; jei jie negali palaikyti savo iššūkio, jie praranda savo akcijas. Kai atsisakymo laikotarpis baigiasi, sutartis automatiškai skaičiuoja statymus ir apdovanoja sėkmingus varžovus ir sąžiningus gynėjus, remdamasi
Kontraktų sintaksė su suskirstymu ir paaiškinimu
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
contract CrowdReview {
struct Round {
uint256 tokenId;
uint256 stakingAmount;
uint256 rebuttalEndBlock;
uint8 rewardMultiplier; // e.g., 150 for 1.5× payout
bool settled;
}
mapping(uint256 => Round) public rounds;
IERC1155 public patentToken;
constructor(address tokenAddress) {
patentToken = IERC1155(tokenAddress);
}
function startReview(
uint256 roundId,
uint256 tokenId,
uint256 stakingAmount,
uint256 rebuttalWindow,
uint8 rewardMultiplier
) external {
uint256 current = block.number;
rounds[roundId] = Round({
tokenId: tokenId,
stakingAmount: stakingAmount,
rebuttalEndBlock: current + rebuttalWindow,
rewardMultiplier: rewardMultiplier,
settled: false
});
}
function stakeAndSubmit(uint256 roundId, bool challengesClaim) external {
Round storage r = rounds[roundId];
require(block.number < r.rebuttalEndBlock, "Review closed");
patentToken.safeTransferFrom(msg.sender, address(this), r.tokenId, r.stakingAmount, "");
// Record submission choice—challenge or defend
}
function settleRound(uint256 roundId) external {
Round storage r = rounds[roundId];
require(block.number >= r.rebuttalEndBlock && !r.settled, "Cannot settle");
// Pseudocode: determine winners, calculate payouts
// payout = stakingAmount * rewardMultiplier / 100
r.settled = true;
}
}
Štai čia,startReview
sukuria naują ratą, nurodydamas atskleidimotokenId
MažiausiasstakingAmount
Kiekvienam dalyviui reikalingos akcijos, arebuttalWindow
Blokai ir arewardMultiplier
tai padidina mokėjimus už galiojančius iššūkius.stakeAndSubmit
funkcija užrakina žetonus ir registruoja, ar recenzentas ginčija ar gina reikalavimą.settleRound
gali būti iškviestas, kai pasibaigs atmetimo langas; jis apskaičiuoja apdovanojimus, perskirsto statymus ir pažymi ratą kaip išspręstą.
Paaiškinkite vėliavą
Kiekvienas peržiūros raundas remiasi trimis ekonominėmis vėliavomis. Lažybų suma nurodo, kiek patentų žetonų turi būti užrakinta, kad galėtų dalyvauti, atgrasant nuo nereikalingų pateikimų. Atsisakymų langas, išmatuotas Ethereum blokuose, nustato griežtą iššūkių ir kontrargumentų terminą, užtikrinant, kad procesas baigtųsi greitai. Apdovanojimų daugiklis nustato bendro sėkmingų iššūkių ar gynėjų išmokėjimo ir jų pradinio lažybų santykį, suteikiant stiprią paskatą atrasti svarbų ankstesnį meną arba pateikti tvirtą gynybą.
Darbo srauto demonstravimas su pavyzdžiu
Tarkime, kad Alisos dalinis patentas (token ID 1) ką tik buvo išleistas ir baigsis blokui 18,200,000.
await reviewContract.startReview(
42, // arbitrary round ID
1, // tokenId referencing Alice’s disclosure
100, // stakingAmount: 100 shares per reviewer
5000, // rebuttalWindow: ~5000 blocks (~19 hours)
150 // rewardMultiplier: 1.5× payout for winners
);
Per bloką 18,195,000, Bobas ir Carol kiekvienas naudojastakeAndSubmit(42, true)
Bobas pateikia nuorodą į išankstinį straipsnį, kuriame pateikiama technologija, o Carol, įsitikinusi savo naujove, naudojastakeAndSubmit(42, false)
Abi pusės į sutartį įtraukė 100 akcijų.
Kai pasieksite 18,200,000 bloką, kiekvienas gali paskambintisettleRound(42)
Sutartis patvirtina Bobo išankstinį citavimą per ne grandinės oraklį arba rankinę peržiūrą. Tada grandinės logika (arba valdymo oraklas) patvirtina, kad Bobo iššūkis yra galiojantis. Bobas gauna 150 akcijų (jo 100 akcijų akcijų ir 50 akcijų apdovanojimas), Carol praranda savo akcijas, o patentų savininkas atgauna Carol 100 akcijų už atlygio baseiną būsimiems raundams. Visas ciklas, nuo pradžios iki atsiskaitymo, baigiasi per mažiau nei vieną dieną, parodydamas, kaip žetonų pagrindu vykdoma visuomenės apžvalga pagreitina patikrinimo procesą, palyginti su USPTO daugiamečiais tvarkaraščiais.
Licencija ir monetizacijos frakciniai patentai NFT
Kai atskleidimas praeina tarpusavio peržiūrą, žetonų turėtojai gali konvertuoti savo dalines akcijas į nuolatines pajamas, įterpdami licencijavimo sąlygas ir licencijavimo sąlygas tiesiogiai į protingas sutartis. Vietoj derybų dėl neaiškių, vienkartinių licencijavimo sandorių, išradėjai ir investuotojai naudoja skaidrų grandinės protokolą, kuris automatiškai perduoda mokėjimus žetonų turėtojams remiantis iš anksto sutartomis sąlygomis ir apima grąžinimo mechanizmus, jei licencijos gavėjai nustoja veikti.
Koncepcijos paaiškinimas
Šioje konfigūracijoje licencijavimo sutartis naudoja patentų žetonų ID ir nustato mokėjimo planą, pvz., būsimų pardavimų procentą arba fiksuotą mokestį už naudojimą, kuris akcininkams siunčiamas reguliariai. Licencijos gavėjai į sutartį įdeda pinigus, kurie tada dalijasi su visais dabartiniais žetonų turėtojais. Jei licencijos gavėjas nemoka, „claw-back“ variantas gali sustabdyti būsimus mokėjimus, kol išleidimas bus fiksuotas, arba jis gali pradėti balsuoti dėl licencijos panaikinimo. Šis automatinis metodas pašalina tarpininkus, suderina patentų savininkų ir licencijos gavėjų interesus ir užtikrina, kad kiekvienas dalinis turėtojas gautų savo teisingą dalį
„Royalty Split Syntax“ su suskaidymu ir paaiškinimu
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
contract PatentLicensing is ReentrancyGuard {
IERC1155 public patentToken;
struct License {
uint256 tokenId;
uint256 ratePerSecond; // Wei streamed per share per second
uint256 lastUpdate; // Timestamp of last distribution
bool clawbackEnabled; // Pauses streaming on default
}
mapping(address => License) public licenses;
constructor(address _token) {
patentToken = IERC1155(_token);
}
function createLicense(
address licensee,
uint256 tokenId,
uint256 ratePerSecond,
bool clawbackEnabled
) external {
licenses[licensee] = License({
tokenId: tokenId,
ratePerSecond: ratePerSecond,
lastUpdate: block.timestamp,
clawbackEnabled: clawbackEnabled
});
}
function streamPayments(address licensee) external nonReentrant {
License storage lic = licenses[licensee];
uint256 elapsed = block.timestamp - lic.lastUpdate;
uint256 totalShares = patentToken.balanceOf(address(this), lic.tokenId);
uint256 payout = elapsed * lic.ratePerSecond * totalShares;
lic.lastUpdate = block.timestamp;
payable(licensee).transfer(payout);
}
function triggerClawback(address licensee) external {
licenses[licensee].clawbackEnabled = true;
}
}
Štai čia,ratePerSecond
apibrėžia linijinę išmokėjimo kreivę, išmatuotą Wei per akciją per sekundę, leidžiančią pajamas kaupti nuolat, o ne vienkartinėmis sumomis.streamPayments
funkcija apskaičiuoja laiką, praėjusį nuo paskutinio atnaujinimo, padaugina jį iš atsarginių akcijų skaičiaus ir perveda teisingą sumą žetonų turėtojams.clawbackEnabled
„Flag“ leidžia valdžiai sustabdyti transliaciją, jei licencijos turėtojas pažeidžia sąlygas.
Licencijavimo sandorio demonstravimas su pavyzdžiu
Tarkime, kad programinės įrangos kompanija BetaSoft nusprendžia licencijuoti Alisos saulės orientacijos patentą (token ID 1). Jie į licencijavimo sutartį įtraukė 10 ETH ir nustatė normą 1 gwei už akciją per sekundę.streamPayments(BetaSoft)
paskirstyti maždaug 0,0864 ETH visiems žetonų turėtojams, atsižvelgiant į jų akcijas.triggerClawback(BetaSoft)
sustabdyti mokėjimus, kol jie prideda daugiau lėšų.
Konfigūruoti valdymo patobulinimus
Laikui bėgant, žetonų turėtojai gali norėti koreguoti licencijavimo parametrus, pvz., Keičiant tarifus, pridedant naujas clawback sąlygas arba įtraukiant antrines licencijas.
Koncepcijos paaiškinimas
Atnaujinimai prasideda nuo grandinės pasiūlymų, kurie apima sutarties adresą, funkcijos atranką ir naujas parametrų vertes. Kiekvienas pasiūlymas turi laiko tarpą, suteikiant žetonų turėtojams laiko peržiūrėti pakeitimus.
Pasiūlymo sintaksės atnaujinimas su suskaidymu ir paaiškinimu
pragma solidity ^0.8.0;
contract Governance {
struct Proposal {
address target;
bytes data; // Encoded function call
uint256 eta; // Execution timestamp (after timelock)
bool executed;
}
uint256 public timelockDelay = 2 days;
mapping(uint256 => Proposal) public proposals;
uint256 private nextProposalId;
function proposeUpgrade(
address target,
bytes calldata data
) external returns (uint256 proposalId) {
proposalId = nextProposalId++;
proposals[proposalId] = Proposal({
target: target,
data: data,
eta: block.timestamp + timelockDelay,
executed: false
});
}
function executeUpgrade(uint256 proposalId) external {
Proposal storage p = proposals[proposalId];
require(block.timestamp >= p.eta, "Timelock not expired");
require(!p.executed, "Already executed");
(bool success, ) = p.target.call(p.data);
require(success, "Upgrade failed");
p.executed = true;
}
}
Šioje valdymo sistemoje,proposeUpgrade
pakuotės tikslinę sutartį ir koduojamus funkcijos duomenis, tada nustatoeta
Dideliems suinteresuotiesiems subjektams gali būti suteiktos veto privilegijos už grandinės ribų arba per reputacijos orakulus, o delegatų svoriai koreguoja kiekvieno balsavimo įtaką pagal investuotų reputacijos balus.
Balsavimo demonstravimas su pavyzdžiu
Įsivaizduokite, kad žetonų savininkai nusprendžia padidinti BetaSoftratePerSecond
nuo 1 gwei iki 2 gwei. DAO multisig skambina:
const data = licensingContract.interface.encodeFunctionData(
"createLicense",
[betaSoftAddress, 1, ethers.utils.parseUnits("2", "gwei"), false]
);
await governanceContract.proposeUpgrade(licensingContract.address, data);
Pasibaigus dviejų dienų laikotarpiui, bet kuris narys prašo:
await governanceContract.executeUpgrade(proposalId);
Tuo metu "BetaSoft" srauto greitis padvigubėja, o visi žetonų turėtojai iš karto pradeda uždirbti dvigubai pajamų per sekundę, o tai reiškia, kad nereikia perkelti lėšų ar perskirstyti licencijos sutartį.
Galutinės mintys
Dalinio patento NFT paverčia intelektinę nuosavybę į gyvybingą, į bendruomenę orientuotą turtą. Tokenizuodami išradimą, galite greitai rinkti pinigus, greitai gauti bendrų atsiliepimų ir automatizuoti licencijavimą bei pajamų pasidalijimą.
Tačiau vis dar kyla klausimų. ar teismai ir patentų biuras priims grandinės hashes ir žetonų pagrindu audito takelius kaip įrodymą? kaip sistema gali sustabdyti „priešistorinį šlamštą“ ir interesų konfliktus tarp žetonų turėtojų?
Tiems, kurie domisi, Pasaulio intelektinės nuosavybės organizacija (PINO) teikia tyrimus dėl greito patentų egzaminų ir skaitmeninių įrodymų standartų. Atviro kodo bibliotekos, tokios kaip „OpenZeppelin“ ERC-1155 ir platformos, tokios kaip „Kleros“, siūlo įrankius.