Open Access

Protecting the intellectual property of built environment designs using blockchain technology


Cite

Fig. 1:

Example of GUIDs highlighted within an IFC entity.
GUID, global unique identifier; IFC, Industry Foundation Classes.
Example of GUIDs highlighted within an IFC entity. GUID, global unique identifier; IFC, Industry Foundation Classes.

Fig. 2:

Illustration of the main sections in a generic IFC file.
IFC, Industry Foundation Classes.
Illustration of the main sections in a generic IFC file. IFC, Industry Foundation Classes.

Fig. 3:

Example of CID DAG.
CID, content identifier; DAG, directed acyclic graph.
Example of CID DAG. CID, content identifier; DAG, directed acyclic graph.

Fig. 4:

NFT smart contract written in Solidity.
NFT, non-fungible token.
NFT smart contract written in Solidity. NFT, non-fungible token.

Fig. 5:

Transaction confirmation page for deploying the smart contract.
UTC, universal time coordinated.
Transaction confirmation page for deploying the smart contract. UTC, universal time coordinated.

Fig. 6:

Design information example formatted to comply with JSON schema.
JSON, JavaScript Object Notation.
Design information example formatted to comply with JSON schema. JSON, JavaScript Object Notation.

Fig. 7:

Brownie Python script to mint a design NFT.
NFT, non-fungible token.
Brownie Python script to mint a design NFT. NFT, non-fungible token.

Fig. 8:

Transaction input data show the URI of the minted NFT.
NFT, non-fungible token; URI, uniform resource identifier.
Transaction input data show the URI of the minted NFT. NFT, non-fungible token; URI, uniform resource identifier.

Fig. 9:

OpenSea listing for the minted NFT as proof of ERC-721 compatibility.
ERC, Ethereum Request for Comment; NFT, non-fungible token.
OpenSea listing for the minted NFT as proof of ERC-721 compatibility. ERC, Ethereum Request for Comment; NFT, non-fungible token.

Fig. 10:

Test design models: (a) original design; (b) derivative design.
Test design models: (a) original design; (b) derivative design.

Hash formula used to generate the entities hash list.

Parameter Value Parameter description
Hashing algorithm SHA256 Determine the desired hashing algorithm
Salt IFC Salt is a set of characters used to increase the complexity of the original hashed content
Iteration 1 Number of times that the hash should be rehashed
Length 64 The number of characters in the generated hashes

Examples of the input and output of the hashing function.

Input (entity) Output (SHA256 hash)
#12=IFCDIRECTION((1.,0.,0.)); “3d896c6580d86c5895a178d5bdb45ec3901cf3118881495c86caf38b70730a5b”
#14=IFCDIRECTION((-1.,0.,0.)); “fd7a34687b10e217a47657bd93c49340ed00fa59a2f8667a072453160aef9767”
#16=IFCDIRECTION((0.,1.,0.)); “8eeea131de37b45cc0057d63a7e115942257f3315791061adca5ff0704e7f9ea”
#18=IFCDIRECTION((0.,-1.,0.)); “69f375f1c87d560e5981d8168070afdcf6f85953cad3e9d9b6a7e8b218a0c327”

Fingerprint testing results.

Comparison aspects Original design Derivative design
Aspect 1: GUIDs
    Number of GUIDs 353 240
    Overlapping GUIDs 238
Aspect 2: Entity hashes
    Number of hashes 7,377 5,232
    Overlapping hashes 100
Aspect 3: IPFS CIDs
    Number of chunk CIDs 3 2
    Overlapping CIDs 0
eISSN:
1847-6228
Language:
English
Publication timeframe:
Volume Open
Journal Subjects:
Engineering, Introductions and Overviews, other